这可能是一个愚蠢的问题,但我有一个快要报废的外部硬盘,上面只有一个 NTFS 分区。
我可能很天真,但我认为最好使用 ddrescue 来拯救分区而不是整个磁盘:
sudo ddrescue -v -r 2 /dev/disk3s2 /Volumes/HDD/rescue.img dd.log
效果非常好:
current pos: 512 B, current status: finished
mapfile extent: 1000 GB, in 23 area(s)
non-tried: 0 B, in 0 area(s) ( 0%)
rescued: 1000 GB, in 11 area(s) ( 99.99%)
non-trimmed: 0 B, in 0 area(s) ( 0%)
non-scraped: 0 B, in 0 area(s) ( 0%)
bad-sector: 60928 B, in 12 area(s) ( 0.00%)
显然不是 100%,但 99.99% 对我来说听起来不错!
但现在我有一个假定分区的映像。但它被检测为 RAW 并且无法安装。
从我在网上找到的信息来看,处理磁盘映像比处理分区映像更好、更容易。对于 chkdsk 或 testdisk。
所以我想知道是否有可能将剩余的磁盘数据挽救到现有映像中?或者是否需要从头开始重新运行整个 ddrescue 过程(存在故障硬盘因我要求的繁重工作而损坏的风险)。这样的命令是否可以使用现有映像和现有日志?
sudo ddrescue -v -r 2 /dev/disk3 /Volumes/HDD/rescue.img dd.log
答案1
这可能是一个愚蠢的问题,但我有一个快要报废的外部硬盘,上面只有一个 NTFS 分区。
我可能很天真,但我认为最好使用 ddrescue 来拯救分区而不是整个磁盘:
sudo ddrescue -v -r 2 /dev/disk3s2 /Volumes/HDD/rescue.img dd.log
这个问题并不愚蠢,这个做法也不幼稚:如果你觉得你的驱动器快要坏了,而主要恢复目标是那个分区,那么你只需复制分区就可以减少磁盘压力。否则,在复制整个磁盘时,你的磁盘可能在到达最重要的位置之前就坏了!
这样的命令是否可以利用现有图像和现有日志来工作?
sudo ddrescue -v -r 2 /dev/disk3 /Volumes/HDD/rescue.img dd.log
不,那会失败。
假设你的磁盘只有 10 个扇区:
1234567890
您恢复了分区。假设它从扇区 4 开始。这会为您带来一个恢复的分区,文件内容为 4567890。当您将整个磁盘恢复到现有文件中时,文件将包含(每行显示一个扇区复制操作后文件的内容:
4567890(开始复制操作之前)
1567890
1267890
1237890
1234890
1234590
1234560
1234567
12345678
123456789
1234567890
您的分区将在开始时被覆盖,文件最终将被扩展。如果您的磁盘在此过程中坏了,您最终会得到一个仅包含主要恢复目标分区中可能无用部分的文件。
在 1234567890 中您得到 4567890。
因此,您必须挽救磁盘的开头,即前三个扇区:
123
之后,您可以将两部分连接成一个更大的文件:“123”和“4567890”得到“1234567890”。
=> 您需要将光盘复制到不同的文件中!
您需要找出 /dev/disk3 的扇区号。您需要将磁盘副本限制为 /dev/disk3 之前的扇区数。
ddrescue 提供参数 -s:
-s bytes --size=bytes 救援域的最大大小(以字节为单位)。它指的是原始文件中的大小。
来源: https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html
您将结束复制操作,包括分区之前的扇区。