我有一块 250 GB 的 HDD 和一块 240 GB 的 SSD。我想将数据从 250 GB 的 HDD 传输到 240 GB 的 SSD。我尝试了各种方法,但都没有成功:(请记住,我可以从 HDD 完美启动,并且在 Windows 中没有任何问题)
当我使用英特尔传输实用程序(由 Acronis 制造)时,在 140 GB 左右时会失败,因为“无法从扇区读取”
如果我使用 Windows 备份来制作系统映像,然后使用 Windows 安装 DVD 或系统还原盘,则还原失败。
对于下面的其余部分,我使用 gparted 来调整分区大小,以便最后有 230 gb 的数据和 20 gb 的未分配空间。
当我使用时dd if=/dev/sdc of=/dev/sda bs=1M
,在~140 gb 时再次出现 I/O 错误,然后它退出。
当我使用时dd if=/dev/sdc of=/dev/sda bs=1M conv=noerror,sync
。它永远不会完成。当我运行“sudo kill -usr1 (dd process)”时,它似乎正在运行,但没有数据传输,并且它会发出 i/o 错误。
如果我使用 clonezilla,基本模式会失败,因为 hdd 比 ssd 大。
如果我进一步使用逐块复制和“救援”来忽略错误,它仍然会引发很多错误并且变得完全不连贯,例如:
我是否遗漏了一些明显的东西,还有其他方法吗?有没有办法不使用克隆工具来克隆文件(例如在 Linux 中使用 rsync 或 cp)?
答案1
dd 并非为处理有坏扇区的系统而设计的。调整驱动器大小是一个错误,您需要一个足够大的驱动器来容纳所有数据,但希望这不会阻止您使用正确的工具制作映像。获得更大的硬盘用于备份是一个非常非常好的主意。
启动 ubuntu 的 livecd 并在其中安装 gddrescue - 它是 DD 的以恢复为中心的变体,应该有助于获取尽可能多的数据。使用它 - 它和 ddrescue input_device output_file 一样简单(但无论如何都要检查说明),它将尽可能多地对驱动器进行映像。然后,您可以像平常一样循环安装映像。如果您对根设备(/dev/sdX 而不是 /dev/sdXx)进行映像,那么您可以使用 kpartx 来安装它。
答案2
在再次尝试之前,您可能需要在硬盘上运行 Gibson spinrite 程序,并设置为最高恢复模式。它将刷新扇区并尝试从“坏”扇区获取尽可能多的信息。完成后,您可以再次尝试 dd。对于有问题的磁盘,这种方法已经多次奏效,而且 Gibson 软件在许多情况下使一些坏扇区变得可读,具体取决于磁盘的损坏程度。