我正在尝试使用 dd 命令在新计算机上完成 Linux 映像的完整恢复。我有两个分区 sda1(主分区)和 sda2(扩展分区),我使用以下命令备份了 mbr 映像:
dd if=/dev/sda of=/mnt/sdb1/mbr_image bs=512 count=1
和 dbr 图像如下:
dd if=/dev/sda2 of=/mnt/sdb1/ebr_image bs=512 count=1
我还使用以下命令备份了主分区(我想要恢复的分区):
dd if=/dev/sda1 of=/mnt/sdb1/sda1_image
我用 slax cd 打开新系统,首先恢复我之前备份的 mbr 和 ebr 映像(我没有使用 446 字节,因为我也想恢复分区表)
dd if=/mnt/sdb1/mbr_image of=/dev/sda
dd if=/mnt/sdb1/ebr_image of=/dev/sda2
之后我恢复主分区:
dd if=/mnt/sdb1/sda1_image of=/dev/sda1
完成后,我使用以下命令集调整主分区的大小:
umount /dev/sda1
e2fsck -f /dev/sda1
resize2fs /dev/sda1 -p
此后,我重新启动计算机,希望一切恢复正常。不幸的是,当我在一台从未使用过硬盘的新计算机上执行此操作时,计算机卡在 grub 引导加载程序中,提示 GRUB...
我怀疑 mbr 映像中存在某些特定于机器的东西,因为如果我在备份的机器上运行相同的恢复过程,一切都会正常工作并且机器可以正常启动。
你能解释一下我过去两天做错了什么吗......
答案1
我知道这是一个迫使你从头开始做所有工作的解决方案,但我建议使用 Clonezilla 进行备份并将其恢复到新机器。特别是如果你需要在许多机器上恢复映像
答案2
我会尝试使用 partimage 来完成您要做的事情。dd 有点粗糙,逐字节复制。500 GB 的硬盘 = 500 GB 的图像。使用 partimage 不会出现此问题。
另外,运行 partimage 服务器还允许您在多台计算机上快速恢复该映像。
希望这能有所帮助。我知道这不是一个 dd 答案。
答案3
您是否尝试过将 grub 重新安装到新的 sda?
新旧磁盘大小是否相同?如果相同,则 dd 整个磁盘,这样应该就可以了。
如果没有,您可以使用 rsync 或 tar 传输文件,然后使用 livecd 重新安装 grub。