使用 dd 恢复映像后出现 Initramfs 错误

使用 dd 恢复映像后出现 Initramfs 错误

我需要创建 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/

相关内容