我正在使用 Ubuntu 上的实时 USB dd 命令将一个 1TB 驱动器克隆到另一个 1TB 驱动器。我一直通过在另一个终端中运行来监控进度:
sudo kill -USR1 $(pgrep ^dd)
一开始一切都很顺利,我以为一天多一点的时间就能完成复印。两天后我回来发现复印速度几乎停滞了。
1055628+0 records in
1055628+0 records out
69181636608 bytes (69 GB, 64 GiB) copied, 160488 s, 431 kB/s
1055629+0 records in
1055629+0 records out
69181702144 bytes (69 GB, 64 GiB) copied, 160491 s, 431 kB/s
我能做什么吗?
编辑:我使用的确切命令是:
sudo dd if=/dev/sdb of=/dev/sdd bs=64K conv=notrunc,noerror
没有出现任何错误或警告。我没有预料到会出现错误,因此没有使用任何其他命令提前检查磁盘,尽管事后看来这样做是明智的。考虑到这一点,现在最好的行动方案是什么?
编辑2:我运行了dmesg
,现在我发现它遇到了一些 I/O 错误,很可能是罪魁祸首。
我将取消dd
并安装和使用ddrescue
。谢谢您的帮助!
答案1
考虑使用ddrescue
。如果驱动器有一个或两个坏的(不可读的)区域,ddrescue 将首先跳过速度较慢的部分(确保您获得最多磁盘克隆速度足够快),并将在稍后阶段返回“刮擦”跳过的区域。但是,如果驱动器有许多坏扇区,无论您做什么,抓取仍然会花费很长时间(可能是几天)。
ddrescue /dev/sdb /dev/sdd /tmp/sdb-sdd.log
(可以使用来查看日志文件ddrescueview
。)