Linux 服务器磁盘映像备份与恢复实战指南
背景
在服务器运维中,磁盘健康度下降可能导致数据丢失风险,特别是在未配置 RAID 的情况下。针对这种情况,备份磁盘数据并恢复到新设备是确保数据安全的关键。本文记录了使用 dd
命令通过 NFS 实现全盘映像备份,并将备份恢复到另一台服务器的裸盘(/dev/sdb
)的完整流程。恢复后,系统进入 initramfs
紧急模式,通过 fsck
修复文件系统问题,最终成功启动系统的操作步骤。
本文适用于以下场景:
- 系统:Ubuntu(本文基于 Ubuntu 22.04,内核 6.2)
- 需求:全量备份磁盘数据,并在另一台服务器上恢复,保持系统和数据完整
- 环境:源服务器磁盘健康度低,目标服务器使用裸盘,无 RAID 配置
环境准备
-
源服务器
:
- 系统:Ubuntu 22.04(或其他版本)
- 磁盘:
/dev/sda
(待备份磁盘,健康度不足 1%) - 网络:可访问 NFS 服务器
-
目标服务器
- 系统:Ubuntu 22.04(或其他版本)
- 磁盘:
/dev/sdb
(裸盘,用于恢复映像) - 原系统盘:
/dev/sda
(恢复后移除)
-
NFS 服务器
- 提供充足存储空间,用于存放备份映像
-
工具
dd
:用于全盘映像备份和恢复fsck
:用于修复文件系统nfs-common
:用于挂载 NFS
-
其他
- Ubuntu Live USB(用于修复或验证)
- 网络配置确保两台服务器与 NFS 通信正常
操作步骤
1. 确认磁盘健康状态
在源服务器上,检查磁盘健康状态以评估备份的紧急程度。
sudo apt update
sudo apt install smartmontools
sudo smartctl -a /dev/sda
- 查看
SMART
输出中的Reallocated_Sector_Ct
、Wear_Leveling_Count
等指标,确认磁盘健康度。 - 如果健康度低于 1%,立即停止不必要的写操作,进入备份流程。
2. 挂载 NFS 并备份磁盘映像
为确保备份安全,将磁盘映像存储到 NFS 服务器。
2.1 配置 NFS 客户端
安装 NFS 客户端工具并挂载 NFS 共享目录:
sudo apt install nfs-common
sudo mkdir /mnt/nfs
sudo mount -t nfs <NFS_SERVER_IP