我使用以下命令制作了完整磁盘的图像:
$ 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 的配置文件),您还需要复制安全信息。