我使用 ddrescue(通过 gddrescue 包)创建了一个包含多个分区的 1.5TB 完整驱动器的磁盘映像。使用起来很顺利。
ddrescue --no-split /dev/sd{X} /path/to/drive.img /path/to/drive.log
我可以通过 fdisk 对 img 查看两个分区:
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb65b52a6
Device Boot Start End Sectors Size Id Type
DiskImg.img1 * 2048 1933981695 1933979648 922.2G 7 HPFS/NTFS/exFAT
DiskImg.img2 1933981696 2930272255 996290560 475.1G 7 HPFS/NTFS/exFAT
我还能够安装分区并查看驱动器上的文件,并且在安装时使用偏移选项不会出现问题。
我遇到的问题是,在尝试将文件从映像复制到新驱动器时,该过程在某个时候完全停止。我推测坏扇区在旧驱动器上的位置。
我知道坏扇区/丢失扇区在某种意义上是被复制的,但我认为我可以轻松获取没有坏扇区/丢失的数据。事实并非如此吗?我在复制命令中找不到任何可以跳过错误等的选项,而 rsync 中的选项 --ignore-errors 似乎没有任何作用。
是否有一个实用程序可以让我复制所有可用的文件,而不会在文件遇到坏扇区时锁定所有内容?我真的不想使用 safecopy 之类的东西将我创建的映像复制到新映像,因为我必须在已有的驱动器上购买另一个驱动器才能恢复这些数据。
到目前为止,看来以下方法可能有效:
rsync -avP --stats --block-size=512 --timeout=10 /path/to/src /path/to/dest
尽管超时时间似乎比 10 秒长很多。