这似乎是一个简单的问题,但即使是手册似乎也没有解决它。救援完成,有 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 中提取的简明信息。