不清楚分区表和使用 dd 复制整个磁盘

不清楚分区表和使用 dd 复制整个磁盘

我不明白 dd 在复制完整磁盘时如何处理分区表。

我使用以下方法备份了整个磁盘(有多个分区)sudo dd if=/dev/sdb conv=sync,noerror bs=64K | gzip -c > /media/notsdb/backfile.img.gz

现在我有一个没有分区表的全新磁盘,我想将这些分区放到上面。反向命令应该是gunzip -c /media/notsdb/backfile.img.gz | sudo dd of=/dev/sdb conv=sync,noerror bs=64K。这有意义吗?我是否必须先将分区表放到磁盘上?(该操作需要 10 个小时,因此我想在执行之前了解情况)

谢谢,克雷格

答案1

将其复制过去,然后使用gparted(或类似方法)来调整大小/移动分区 -dd将简单地重新创建旧的分区方案,因为它是按位复制并且不对操作应用任何“智能”。

这仅当新磁盘大小相同或更大时才有效!

答案2

正如马克·威廉姆斯所说,dd您指定的命令将复制旧的分区表,然后您可以根据需要对其进行修改。

但需要注意的是:如果磁盘使用GUID 分区表 (GPT),就像现代计算机上的大多数磁盘一样,分区表会在磁盘的开始和结束处进行复制。如果目标磁盘不是确切地与原始磁盘大小相同,因此恢复后的磁盘可能需要进行小修。如果我没记错的话,、partedGParted 和类似工具会注意到新磁盘是否比原始磁盘大,并提出修复建议。如果您使用我自己的 GPT fdisk(gdisksgdiskcgdisk),您可以手动修复问题,方法是键入x以转到专家菜单,键入e以将备份数据结构重新定位到磁盘末尾,然后键入w以保存更改。

如果新磁盘更小如果 GPT 磁盘上的备份分区表比原始分区表大,则 GPT 磁盘上的备份分区表将丢失,需要执行类似的恢复过程。更糟糕的是,无论是 GPT 磁盘还是 MBR 磁盘,最终分区(甚至多个分区)都可能损坏或完全丢失。实际上,对此无能为力;最好的情况是,您可以调整最终分区的大小以适应,然后执行文件系统修复(使用fsck)以尝试恢复尽可能多的数据。

请注意,即使磁盘大小只相差一个扇区,这些大小问题也会出现。市面上标称大小相同的磁盘(例如 2TB)彼此之间的大小差异可能远不止这个。如果您打算购买与原磁盘“相同”大小的替换磁盘,请检查第一个原磁盘的大小精准到行业并查看任何潜在替代品的技术规格,以确保其与原来的一样大或更大。

相关内容