ddrescue 只遇到读取错误,根本没有好的读取

ddrescue 只遇到读取错误,根本没有好的读取

我尝试使用以下方法恢复通过 USB 连接到 Linux 机器的磁盘:GNU 救援,但在运行了前 2 GB 后,它无法挽救任何东西,而只报告读取错误。为了避免进一步的磁盘损坏,我中断了该过程:

$ sudo ddrescue /dev/sdb hdimage mapfile
GNU ddrescue 1.25
Press Ctrl-C to interrupt
     ipos:    2028 MB, non-trimmed:    2035 MB,  current rate:       0 B/s
     opos:    2028 MB, non-scraped:        0 B,  average rate:       0 B/s
non-tried:  998169 MB,  bad-sector:        0 B,    error rate:    262 kB/s
  rescued:        0 B,   bad areas:        0,        run time:      4m 24s
pct rescued:    0.00%, read errors:    31158,  remaining time:         n/a
                              time since last successful read:         n/a
Copying non-tried blocks... Pass 5 (forwards)^C
  Interrupted by user

该磁盘包含三个分区,其中第二个分区是仍可挂载的 HFS+ 分区,但访问它会导致 I/O 错误:

sd 2:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sd 2:0:0:0: [sdb] tag#0 Sense Key : Medium Error [current] 
sd 2:0:0:0: [sdb] tag#0 Add. Sense: Unrecovered read error
sd 2:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 1c f1 78 00 00 08 00
print_req_error: critical medium error, dev sdb, sector 1896824
Buffer I/O error on dev sdb2, logical block 185898, async page read

在对损坏的磁盘进行操作之前,我使用健康的磁盘测试了我的设置,并且我可以ext4使用同一台机器和同一个 USB 端口上的相同命令挽救分区的所有 80 GB。

这是否意味着磁盘已经坏了,还是我做错了什么?也许我应该继续ddrescue运行,看看后续阶段是否会有所改善?我还能尝试什么而不冒进一步数据丢失的风险?

答案1

是的,这(尤其是日志错误)表明磁盘已损坏。您没有做错任何事,而且这不是 ddrescue 错误。

我接下来可能会尝试重新插入磁盘(确保您识别新的 sdX 号码,因为这些号码可能会发生变化),然后尝试使用以下语法反向运行 ddrescue:

 sudo ddrescue -R /dev/sdX hdimage mapfile

只要您有时间,您就可以尝试此操作(正向和反向) - ddrescue 将尽力而为。

答案2

但我最大的担心是每次读取都可能造成新的损害。真的是这样吗?

是的。

也许将磁盘交给一家做数据恢复的公司会是一个更安全的选择?他们能比有价值的 ddrescue 做得更好吗?

是的,因为他们可以检查硬件的状况,而不仅仅是尝试读取扇区。

相关内容