ddrescue 完成后你要做什么?

ddrescue 完成后你要做什么?

这似乎是一个简单的问题,但即使是手册似乎也没有解决它。救援完成,有 24 个坏区。我访问目标驱动器,但它显示“文件夹为空”。据推测,ddrescue 操作会产生一些可用于确定原始驱动器内容的东西,但是什么呢?我该如何处理目标?我刚刚浪费了 2 天时间等待这个过程完成吗?

我只将 500GB 源驱动器的主分区(据说是 ext4 格式)恢复到 1TB 目标驱动器(也是 ext4 格式)。我原以为结果会是一个包含可读文件或 *.img 文件之类的分区。但我不知道该怎么做,呃……什么都没有。

好的,根据要求,这是我用来调用 ddrescue 的命令行:

sudo ddrescue -d -r3 -f /dev/sdn4 /dev/sdk rescueupdata.log

/dev/sdk是我刚购买的、从未使用过的 1TB SSD。

我曾将终端输出复制到剪贴板,但当时分心了,没有意识到我没有将其复制到文档中。我记得在完成 3 次尝试后还剩下 24 个坏区,而且我确实有地图文件。以下是其中的内容。抱歉,结果似乎没有以非常友好的方式格式化,但我真的不知道如何使用这个论坛的编辑器。它只是做它想做的事。

另外,我应该提到我正在运行 gpart 以查看它是否可以恢复目标磁盘上的文件结构。这可能需要一段时间,但直觉上这似乎是正确的下一步。无论如何,这是 mapfile:

Mapfile. Created by GNU ddrescue version 1.23
# Command line: ddrescue -d -r3 -f /dev/sdn4 /dev/sdk rescueupdata.log
# Start time:   2021-11-10 18:39:56
# Current time: 2021-11-12 15:38:16
# Finished
# current_pos  current_status  current_pass 0x6B0B5D6000     +               3
#      pos        size  status 0x00000000  0x201370C200  + 0x201370C200  0x00000200  - 0x201370C400  0xF1CC84A00  + 0x2F30390E00  0x00000200  - 0x2F30391000  0x138B31C00  + 0x3068EC2C00  0x00000200  - 0x3068EC2E00  0x1FB989200  + 0x326484C000  0x00000200  - 0x326484C200  0x00000C00  + 0x326484CE00  0x00000200  - 0x326484D000  0x3C3F67000  + 0x36287B4000  0x00000200  - 0x36287B4200  0x27F80000  + 0x3650734200  0x00000200  - 0x3650734400  0x2A4F2F600  + 0x38F5663A00  0x00000200  - 0x38F5663C00  0x8C39DE00  + 0x3981A01A00  0x00000200  - 0x3981A01C00  0x441A79E00  + 0x3DC347BA00  0x00000200  - 0x3DC347BC00  0x35B9B9400 
+ 0x411EE35000  0x00000200  - 0x411EE35200  0xE7020E00  + 0x4205E56000  0x00000200  - 0x4205E56200  0x5CA65E00  + 0x42628BC000  0x00000200  - 0x42628BC200  0xE44DF400  + 0x4346D9B600  0x00000200  - 0x4346D9B800  0x6FC12AA00  + 0x4A42EC6200  0x00000200  - 0x4A42EC6400  0x57C175A00 
+ 0x4FBF03BE00  0x00000200  - 0x4FBF03C000  0x133A90C00  + 0x50F2ACCC00  0x00000200  - 0x50F2ACCE00  0xD0616C600  + 0x5DF8C39400  0x00000200  - 0x5DF8C39600  0xB28D2C00  + 0x5EAB50C200  0x00000200  - 0x5EAB50C400  0x5B3B3E00  + 0x5F068C0200  0x00000800  - 0x5F068C0A00  0x00033000  + 0x5F068F3A00  0x00000800  - 0x5F068F4200  0x1893D0600  + 0x608FCC4800  0x00000200  - 0x608FCC4A00  0x815505800  + 0x68A51CA200  0x00000200  - 0x68A51CA400  0x26640BC00  + 0x6B0B5D6000  0x00000200  - 0x6B0B5D6200  0x950B29E00  +

答案1

好的,经过更多研究,我将尝试回答我自己的问题。显然,如果您使用 ddrescue,它不会自动创建驱动器映像,除非您告诉它生成特定文件,例如mydrive.img在您正在写入的驱动器(目标)内。

完成后,您可以使用 lzip 或 lziprescue 之类的工具来提取您正在寻找的实际目录和文件。

但是,我仍然不清楚您是否可以挽救故障驱动器中的单个目录,还是必须挽救整个分区。如果我能弄清楚,我会将其添加到此答案中。

另外,在提取图像文件之前,您可能必须对图像文件执行更多操作,但我不知道您会用什么来执行这些操作。

答案2

我会给你三条提示,这些提示应该可以帮助你成功完成未来的请求。但是我不会回答你最初的问题,因为你的负面评论我认为很幼稚,不值得我给出解决方案。

1. mapfile optics 故障

不幸的是,unixoid 世界中的行尾标记与 windows 世界中的行尾标记不同。要了解此问题,请阅读本文:

在 Linux 和 Windows 上,\n 和 \r 的处理有何不同?

使用 pe Notepad++ 或十六进制编辑器检查线端如何标记。它们通常支持线端标记的转换。这将帮助您保留原始光学元件并将文件导入 excel,使您能够计算位置和长度的十进制等值,以了解未恢复/无法读取的“黑洞”的大小。

2. 问题描述不好

好的描述包含事件前后情况的描述。“ddrescue 完成后你会做什么?”不是一个好的标题。我个人使用 ddrescue 作为复制驱动器的更好的 dd 替代方案。使用 ddrescue 后,工作就完成了。

如果您谈论的是数据恢复,那么问题就完全不同了。

例子:

我正在使用名为 WD40SMRC 的 Western Digital 硬盘作为我的猫视频的下载存储位置。我使用的是 Linuxmint 19.2,半年前用 GPT 对驱动器进行了分区,一个 ext4 分区占满了整个驱动器。一周前我无法安装该分区。Gparted 没有显示任何内容。驱动器现在不断发出咔嗒声。出于对数据丢失的担忧,我尝试使用 ddrescue 复制我的分区,以免驱动器以某种方式降级。但现在我不知道如何继续。

关键问题是,当我看到我认为糟糕的描述时,我不会费心去帮助,因为我认为沟通会很困难,而且会涉及无休止的问题,这破坏了我的乐趣。你的帖子开头是你的名片,它显示了你为解决问题付出了多少努力!

3. ddrescue 文档

使用 ddrescue 时,不仅 mapfile 很有趣。主窗口的屏幕截图提供了很多无法从 mapfile 中提取的简明信息。

相关内容