AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1168620
Accepted
Jonathan Gilbert
Jonathan Gilbert
Asked: 2024-12-07 21:08:40 +0800 CST2024-12-07 21:08:40 +0800 CST 2024-12-07 21:08:40 +0800 CST

列出与 exFAT 卷上的文件关联的扇区

  • 772

我有一个设备出现故障。使用ddrescue,我已恢复了 83 个区域中除约 500 KB 之外的所有数据。映射文件告诉我每个丢失区域的原始偏移量和长度。我想找出受影响的文件。如何获取与 exFAT 卷上的文件关联的物理扇区偏移量列表?

exfat
  • 2 2 个回答
  • 321 Views

2 个回答

  • Voted
  1. Best Answer
    Jonathan Gilbert
    2024-12-07T23:08:39+08:002024-12-07T23:08:39+08:00

    我最终编写了自己的实用程序。我找不到任何预先存在的东西。它是用 C# 针对 .NET 8+ 编写的,源代码在这里:

    https://github.com/logiclrd/FindAffectedFilesExfat

    截屏

    • 6
  2. mkay
    2024-12-10T05:57:18+08:002024-12-10T05:57:18+08:00

    就付出的努力而言,我认为有比问题标题中建议的更好的方法来解决核心问题(列出卷的扇区并尝试确定每个扇区属于哪个文件)。核心问题似乎如下:

    我的设备出现故障。 [...] 我想找出哪些文件受到了影响。

    如果您只想获取受设备故障影响的文件列表,则无需收集设备上文件位置的扇区映射。由于您已将故障驱动器的内容映像到另一台设备或映像文件,并保留了在此ddrescue过程中生成的映射文件,因此您可以使用的填充模式ddrescue,用故障磁盘上任何文件中都没有出现的字符串标记映像上所有未恢复的扇区,然后将映像安装为文件系统并grep -r -l 'your_unique_marker_string'对其进行简单覆盖。这将为您提供损坏文件的干净列表,而不会提供任何其他内容;由于实际的文件搜索是在文件系统级别进行的,因此任何不对应于任何文件的未恢复扇区都会被方便地忽略,您无需付出任何努力。

    要ddrescue在此模式下调用,您可以执行以下操作:

    ddrescue --fill-mode=l- marker_string.txt image_file.img map_file.map
    

    其中marker_string.txt,文件包含要用来填充未恢复扇区的唯一字符串。请注意,您不能直接在命令行中指定字符串。

    该--fill-mode选项将要填充的扇区的状态字符作为参数,如映射文件中所示。如果映射文件包含除+(成功读取)和-(已知坏扇区)以外的状态的块,您需要将这些块添加到填充模式列表中(当然不是+!)。

    l该选项参数中的字母--fill-mode输出每个标记扇区的开头的位置数据(扇区号)。它是可选的,但几乎没有理由忽略它;例如,您可以使用位置数据构建域映射文件,以将进一步的救援尝试限制在包含文件数据的扇区中,如果故障驱动器有大量未使用的空间现在显示为坏扇区,这可能会很有用。

    我发现这种方法最有效,并且已经多次使用,效果很好。它有一个显著的优势,即它独立于所使用的文件系统。它确实依赖于文件系统是否足够健康,能够被挂载(即,足够的文件系统结构已被挽救);我的经验来自 NTFS,我发现 Windows 的本机修复工具CHKDSK在将其修复为可挂载状态方面非常有效。我希望任何现代日志文件系统及其本机修复工具都能产生同样的结果。

    • 1

相关问题

  • 对于连接到 Raspbian 上的家庭 NAS 服务器的 USB3 HDD,exFAT 文件系统是一个不错的选择吗?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve