Linux镜像恢复的实用步骤
一、先确认镜像类型与恢复方式
- 镜像类型通常分为两类:
- 磁盘/分区镜像(由 dd、ddrescue 生成,包含分区表、引导区与数据);
- 文件系统/目录级备份(由 tar、rsync 生成,仅包含文件与目录)。
- 选择恢复方式:
- 磁盘/分区镜像 → 用 dd/ddrescue 写回整盘或分区;
- 文件系统/目录备份 → 挂载目标分区后 tar/rsync 解包或同步;
- 需要省心的图形化整机还原 → 使用 Clonezilla 等工具进行分区/磁盘克隆或镜像恢复。
二、方法一 使用 dd 或 ddrescue 恢复整盘或分区镜像
- 适用:恢复由 dd/ddrescue 制作的 .img/.dd 镜像到目标磁盘/分区。
- 步骤:
- 启动到 LiveCD/救援系统(如 Ubuntu 安装介质“Try Ubuntu”),确认设备名:
- 查看磁盘:lsblk、sudo fdisk -l;目标盘常见为 /dev/sda、/dev/vda。
- 备份重要数据(若目标盘有在用数据,先全盘备份)。
- 写回镜像(示例):
- 整盘恢复(覆盖目标盘所有内容):
- 精确容量镜像:
- sudo dd if=/path/image.img of=/dev/sda bs=1M status=progress conv=noerror,sync
- 镜像小于目标盘(自动填充):
- sudo dd if=/path/image.img of=/dev/sda bs=1M status=progress; sudo parted /dev/sda mklabel gpt; sudo partprobe
- 分区镜像恢复到某分区(如镜像只包含单个分区):
- sudo dd if=/path/part.img of=/dev/sda2 bs=1M status=progress
- 有坏扇区/读取不稳时优先用 ddrescue:
- 安装:sudo apt-get install gddrescue
- 恢复:sudo ddrescue -d -f /path/image.img /dev/sda /path/logfile.log
- 同步缓存并关机:sync && sudo poweroff。
- 启动目标机器,检查分区与引导是否正常。
- 注意:
- of= 必须是目标磁盘/分区设备,切勿写成已挂载目录;
- 目标盘容量小于镜像会失败;大于镜像时可用后续分区扩容工具调整;
- 写盘会破坏目标盘原有数据,务必核对设备名与镜像来源。
三、方法二 使用文件系统/目录级备份恢复(tar 或 rsync)
- 适用:恢复由 tar/rsync 备份的系统或数据目录。
- 步骤:
- 启动到 LiveCD/救援系统,分区并格式化目标根分区(如 /dev/sda2),然后挂载:
- sudo mkfs.ext4 /dev/sda2
- sudo mount /dev/sda2 /mnt
- 若是 tar 包:
- sudo tar xvpfz /path/system_backup.tar.gz -C /mnt
- 若是 rsync 备份:
- sudo rsync -aAX --info=progress2 /path/backup_2025XXXX/ /mnt/
- 绑定挂载必要目录并 chroot:
- sudo mount --bind /dev /mnt/dev && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys
- sudo chroot /mnt
- 修复 /etc/fstab:将根分区 UUID 改为当前实际分区(可用 blkid 查看),文件系统类型保持一致;
- 安装/修复引导(以 GRUB 为例):
- BIOS:grub-install /dev/sda && update-grub
- UEFI:grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB && update-grub
- 退出并卸载:
- exit
- sudo umount /mnt/{dev,proc,sys,}; sudo umount /mnt
- 重启:sudo reboot。
- 提示:
- 若镜像来自不同机器,网络配置(如 /etc/netplan/、/etc/sysconfig/network-scripts/)需按新环境调整;
- 使用 rsync 时建议排除 /dev、/proc、/sys、/run、/mnt、/media 等虚拟或临时文件系统目录。
四、方法三 使用 Clonezilla 进行整机镜像恢复
- 适用:无需命令行,图形化选择镜像与目标磁盘/分区进行克隆或还原。
- 步骤:
- 下载 Clonezilla 稳定版 ISO,制作 U 盘启动;
- 启动选择 device-device(设备到设备)或 device-image(镜像到设备)模式;
- 选择源镜像或源磁盘,再选择目标磁盘/分区,确认写入;
- 等待完成后重启,进入系统检查分区与引导。
五、常见问题与排错要点
- 启动失败提示 GRUB Error 15 / file not found:检查 /boot 分区是否挂载、内核与 initramfs 是否存在、/etc/fstab 的 UUID 是否正确。
- 出现 dracut: don’t know how to handle root=UUID=…:临时改用 root=/dev/sdaX 启动,进入系统后修正 /etc/fstab 与 GRUB 配置。
- 文件系统报错(如 GConf 检查失败):检查 /tmp 权限,必要时执行 chmod 1777 /tmp。
- 镜像容量与目标盘不匹配:镜像大于目标盘会失败;小于目标盘可恢复后在系统内扩容分区与文件系统。
- 恢复后网络异常:核对 /etc/network/interfaces、/etc/netplan/ 或 NetworkManager 配置,确保网卡名称与 UUID 一致。