我无法恢复我最初要求的其他帐户问题,所以我希望我可以在这里问一些后续问题
我希望使用 ddrescue 克隆我用来启动的故障驱动器,以便恢复我拥有的所有应用程序/设置等。我计划在 ubuntu live usb 上运行 ddrescue,将故障驱动器连接到计算机的 SATA 接口,然后通过 USB 外壳将所有内容复制到新驱动器
从 @Kamil Maciorowski 的回答来看,似乎存在一些微妙的问题,但是 USB 外壳可能会报告错误的物理扇区大小。如果当我通过 USB 附件写入新磁盘时发生这种情况,那么我可能无法从它启动,因为
副本中的分区表与目标磁盘使用的逻辑扇区大小不对应。
如果是这种情况,建议我将故障驱动器复制到新驱动器分区中的映像文件,而不是将故障驱动器直接克隆到新驱动器上。如果我这样做,那么即使目标磁盘的逻辑扇区大小与分区表中列出的不同,我仍然可以挂载映像文件
我的问题是
如果我要克隆到映像文件,在挂载映像后,我可以创建一个新的可启动分区并将映像文件写入其中,以便可以从该分区启动吗? (因此,如果我直接写入磁盘,则可以解决分区表的问题)。或者,有什么方法可以启动映像文件吗?
有没有办法检查/进行测试,看看 USB 外壳是否有报告错误物理扇区大小的怪癖?
如果在启动时通过 SATA 电缆连接源磁盘,如何在启动时保持源磁盘卸载
对于与 ddrescue 一起使用的簇大小有什么建议吗?
还提到,如果我要直接复制到目标驱动器(而不是复制到映像文件),那么我可能需要在之后修复辅助 GPT
如果是 GPT,那么您将需要修复辅助 GPT。源磁盘中的辅助 GPT 副本现在位于目标磁盘中间的某个位置;通常应该在最后。可能有一个来自 /dev/sdc 的旧辅助 GPT,与副本无关。
仅当目标硬盘驱动器不是全新的并且恰好已经有辅助 GPT 时才会发生这种情况吗?如果我使用新买的目标驱动器,我就不必担心这个问题吗?
答案1
关于辅助 GPT:是的,即使新驱动器尚未包含现有 GPT,问题仍然存在,除非新驱动器的大小与源驱动器完全相同,但这种情况不太可能发生。辅助 GPT 必须位于驱动器的末尾,如果将源驱动器的映像复制到较大目标驱动器(包括辅助 GPT)的开头,它不会最终位于驱动器的末尾。
创建映像文件是解决逻辑扇区大小不同问题的一种方法。这是另一个想法:在开始复制之前,使用 fdisk 或 gdisk 在目标设备上重新创建分区表。您不必进行精确的复制,制作一个与要复制的分区大小相同的单个分区就足够了,并且磁盘上的位置(起始扇区)也并不重要。然后,无需复制整个磁盘,只需将源分区内的数据复制到目标分区即可。
例如,假设源磁盘是/dev/sda
,要复制的分区是/dev/sda1
。如果框内的目标磁盘为/dev/sdb
,则创建分区表和大小/dev/sdb1
相同的分区/dev/sda1
。然后,不要尝试复制 from /dev/sda
to /dev/sdb
,而是复制 from /dev/sda1
to /dev/sdb1
。
编辑:此解决方案消除了辅助 GPT 的问题,并且您不需要处理图像文件。然而,逻辑扇区大小不匹配的潜在问题仍然存在。分区表的结构取决于扇区大小。如果存在不匹配,则在机箱中分区的磁盘在从机箱中取出时将无法使用,反之亦然。您可以在机箱内对磁盘进行分区,并将文件复制到分区中(包括前面提到的镜像文件),但如果不重新分区,磁盘在机箱外就无法使用。
您可以使用 检查磁盘的扇区大小sudo blkid /dev/XXX -o NAME,LOG-SEC
。