使用 dd 恢复磁盘映像

使用 dd 恢复磁盘映像

我使用以下命令制作了完整磁盘的图像:

$ sudo dd if=/dev/sdc | gzip -c > my_image.dd.gz

当我用以下方法恢复它时:

$ gunzip -c my_image.dd.gz | sudo dd of=/dev/sdc

当我输入时出现错误:

$ sudo sfdisk -l

sfdisk 的输出:

磁盘 /dev/sdc : 1022 个圆柱体, 247 个头, 62 个扇区/雪道
单位= 7840768 个八位字节的圆柱体、1024 个八位字节的块,从 0 开始压缩

   爱的边界 结束于 #cyls #blocs Id Système
/dev/sdc1 * 0+637-638-4881408 83 Linux
                首次亮相 : (c,h,s) 出席 (0,33,3) 发现 (0,32,33)
                fin : (c,h,s) 找到 (637,158,50) 找到 (607,212,53)
/dev/sdc2 637+ 892- 256- 1952768 83 Linux
                首次出现 : (c,h,s) 已观看 (637,158,51) 已找到 (607,212,54)
                fin : (c,h,s) 找到 (892,166,20) 找到 (850,240,30)
/dev/sdc3 892+ 1022- 130- 995328 82 交换分区 Linux / Solaris
                首次亮相 : (c,h,s) 出席 (892,166,21) 找到 (850,240,31)
                fin : (c,h,s) 已找到 (1022,163,42) 已找到 (974,218,12)
/dev/sdc4 0 - 0 0 0 视频

对于非法语人士:début = beginning, fin = end, attendanceu = expected, trouvé=found, vide=empty, amor(çable)=bootable

我认为这是因为我忘记使用 dd 选项conv=无错误,notrunc,同步当我创建图像时,文件系统中的数据对齐就混乱了。

我手头没有原始磁盘。如何将映像恢复到新磁盘?

答案1

好的,我修好了。这两个磁盘大小相同,但每个磁道的扇区数不同。由于我可以通过互联网访问源机器,因此我可以保存分区表:

$ sudo sfdisk -d /dev/sda > smps02_partitions

一旦传输到本地电脑,我就会将分区表应用到新磁盘:

$ sudo sfdisk --force /dev/sdc < smps02_partitions

最后,我可以启动系统了。

答案2

您的新磁盘的大小与映像的大小不同。

使用 dd 应用映像后,您可以使用一些第三方磁盘管理工具(例如 gparted,也可用作可启动 USB 棒)并尝试调整大小/修复分区以使其适合新磁盘。

另一种方法是以某种方式安装磁盘映像并仅提取所需的分区内容。

编辑:以防其他人遇到这个问题,这里有一个更优雅的解决方案。您可以在 dd 映像中挂载分区,有关此操作的说明可在本帖中找到 https://askubuntu.com/questions/69363/mount-single-partition-from-image-of-entire-disk-device 然后像往常一样对新硬盘进行分区,并将已安装映像中的文件复制到新驱动器上。

在您的情况下,您还需要从 gzip 文件中提取它。

我假设您在分区中只有用户数据,如果它的系统文件(如来自 /etc 的配置文件),您还需要复制安全信息。

相关内容