我需要创建 Ubuntu 系统的备份,以便能够轻松恢复数据和系统,因为它处于随时可用的状态。因此,我决定dd
创建整个 HHD 映像。
我创建的图像如下:
dd if=/dev/current_drive of=/dev/backup_drive/backup.img conv=sync status=progress
镜像制作完成,没有错误。之后,我决定将镜像恢复到测试新驱动器:
dd if=/backup_drive/backup.img of=/dev/new_drive conv=sync status=progress
到目前为止一切顺利。映像恢复没有错误。但是当我尝试从恢复了映像的新硬盘启动时,遇到了initramfs
错误:
因此,手动清除错误后fsck
,我能够从新硬盘启动。但我尝试了几次将映像恢复到驱动器的过程,每次我都遇到了启动问题。根据
sudo fdisk -l
:
/dev/sda/
是新硬盘。
/dev/sdb/
是创建该图像的原始图像。
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf11c2eb5
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 455024639 455022592 217G 83 Linux
/dev/sda2 455026686 488396799 33370114 15.9G 5 Extended
/dev/sda5 455026688 488396799 33370112 15.9G 82 Linux swap / Solaris
Disk /dev/sdb: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf11c2eb5
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 455024639 455022592 217G 83 Linux
/dev/sdb2 455026686 488396799 33370114 15.9G 5 Extended
/dev/sdb5 455026688 488396799 33370112 15.9G 82 Linux swap / Solaris
那么,您知道我做错了什么吗?为什么在映像恢复后会出现启动错误?我不想在实际情况下因为原来的硬盘出现故障而不得不修复最终的新硬盘。
顺便说一句,原来的驱动器是 SSD,而新的驱动器是 HDD(如果这很重要的话)。
答案1
是的,dd
无法制作一个连贯的活体系统映像。图像开头复制的字节与结尾的字节来自不同的时刻。换句话说,它不是快照。这就是fsck
抱怨的原因。
我在这里看到了使用最简单的工具策略,这很好,因为你可以更好地预测结果。我建议准备相同的文件系统,然后逐个文件复制rsync -aHAXE --delete-during source destination
这也不是一个快照,但至少fsck
不会抱怨。
为了保持 rsync 的可启动性,您需要grub-install
一个新磁盘,强制使用新的根位置。粗略地说,它将新引导扇区与新内容链接起来/boot/