ddrescue 成功救援,但输出中没有救援文件

ddrescue 成功救援,但输出中没有救援文件

我正在尝试从具有多个损坏扇区的磁盘中恢复数据。损坏的分区(Windows 分区,sdb2)不再可挂载(这需要很长时间,有时会导致 Ubuntu 文件资源管理器崩溃/一切都变得滞后),所以我尝试使用 ddrescue 来恢复其数据。

我将另一个磁盘(比损坏的分区大 2 倍)格式化为 FAT(sda1),并打算将其用作救援磁盘。

我运行这个命令:

sudo ddrescue -B -v -n --force /dev/sdb2 /dev/sda1 récupérationLog2.log

经过 9 个小时的紧张工作,控制台输出看起来相当不错,因为它提到已挽救 953525 MiB 的数据(在 1TB 分区上):

*GNU ddrescue 1.19
About to copy 953668 MiBytes from /dev/sdb2 to /dev/sda1.
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors       Initial skip size: 128 sectors
Sector size: 512 Bytes
Press Ctrl-C to interrupt
rescued:  953525 MiB,  errsize:   142 MiB,  current rate:     3072 B/s
   ipos:  904228 MiB,   errors:     513,    average rate:  29903 KiB/s
   opos:  904228 MiB, run time:    9.07 h,  successful read:       0 s ago
Finished* 

一切似乎都很好,但是当我挂载救援分区 sda1 时,似乎根本没有文件。一切都是空的。当然,它尝试使用 列出隐藏文件ls -a,但那里什么也没有。

这是我第二次成功恢复,但没有得到任何输出文件。我做错了什么吗?或者还有其他可以尝试的吗?

日志文件摘录

# Rescue Logfile. Created by GNU ddrescue version 1.19
# Command line: ddrescue -B -v -n --force /dev/sdb2 /dev/sda1 récupérationLog2.log
# Start time:   2017-04-18 09:47:59
# Current time: 2017-04-18 18:52:11
# Finished
# current_pos  current_status
0xDCC247D000     +
#      pos        size  status
0x00000000  0x0160C000  +
0x0160C000  0x00000200  -
0x0160C200  0x02B5FC00  /
0x0416BE00  0x00000200  -
0x0416C000  0x14B94000  +
0x18D00000  0x00000200  -
0x18D00200  0x003FFC00  /
0x190FFE00  0x00000200  -
0x19100000  0x4F570000  +
0x68670000  0x00000200  -
0x68670200  0x00005C00  /
0x68675E00  0x00000200  -
0x68676000  0x00094000  +
0x6870A000  0x00000200  -
0x6870A200  0x00001C00  /
0x6870BE00  0x00000200  -
0x6870C000  0x008E0000  +
0x68FEC000  0x00000200  -
0x68FEC200  0x00002C00  /
0x68FEEE00  0x00000200  -
0x68FEF000  0x0000A000  +
0x68FF9000  0x00000200  -
0x68FF9200  0x00006C00  /
0x68FFFE00  0x00000200  -

我必须添加参数--force,因为每次我尝试使用 ddrescue 时,它​​都会说由于 ouputlog 文件已经存在而无法启动,即使我每次都尝试不同的、不存在的文件名。

答案1

我将另一个磁盘(比损坏分区大 2 倍)格式化为 FAT(sda1)

[...]

sudo ddrescue -B -v -n --force /dev/sdb2 /dev/sda1 récupérationLog2.log

这是不知道它是如何运作的。以下是你目前正在做的事情:

  • 您正在复制的内容/dev/sdb2 超过 /dev/sda1
  • 您已在分区表中将后者标记为 FAT,但您正在用 NTFS 文件系统进行覆盖
  • 当你尝试“挂载”时,/dev/sda1它不起作用,因为那不是 FAT 文件系统,当然

附带说明一下,使用 进行mount数据恢复通常不是一个好方法,特别是如果您不能确保它是只读的。另外,不要在终端中向文件名添加重音符或特殊字符。

你应该做的是:

  • 创建新分区来保存图像文件故障分区。请注意,FAT 不是一个可接受的选择,因为您无法存储大于 4GB 的 FAT 文件。NTFS 或 exFAT 是可以的。
  • 挂载所述分区并将驱动器复制到文件中,例如:

    ddrescue /dev/sdb2 /media/user/External/copy.img /media/user/External/copy.log
    
  • 按照以下说明对副本执行数据恢复恢复损坏或删除的 NTFS 分区

相关内容