如何使用不可读扇区进行磁盘复制?

maa*_*nus 0 linux partition dd disk-image

我想按字节克隆整个磁盘,例如

dd if=/dev/$SRC of=/dev/$DST bs=65536 count=$count
Run Code Online (Sandbox Code Playgroud)

有更好的工具可以完成这项工作,它们了解文件系统 (Windows) 并且工作得更快(我不在乎),但是由于旧源磁盘上的扇区不可读,它们失败了。

实际上我必须跳过一个无效块。所以我想过dd多次使用

dd if=/dev/$SRC of=/dev/$DST bs=65536 count=...
dd if=/dev/zero of=/dev/$DST bs=65536 count=... skip=... seek=...
dd if=/dev/$SRC of=/dev/$DST bs=65536 count=... skip=... seek=...
Run Code Online (Sandbox Code Playgroud)

用零替换损坏的扇区数据。这是一种有效的方法吗?我发现了这个让我困惑的问题

Kam*_*ski 5

不要重新发明轮子。使用ddrescue.

GNU ddrescue 是一个数据恢复工具。它将数据从一个文件或块设备(硬盘、cdrom 等)复制到另一个文件或块设备,尝试在读取错误的情况下首先抢救好的部分。

不要相信 dd conv=sync,noerror,除非你真的知道它是如何工作的。