Chl*_*loe 4 windows hard-drive bad-sectors
我用 Clonezilla 和--rescue
选项克隆了我失败的硬盘,它列出了许多坏扇区。一些坏扇区是 3194529280、3194529792、3194530304、3194530816。我如何找出这些坏扇区中有哪些文件?
我期待像这样的答案
> whichfileisatsector.exe 3194529280
c:\Users\Chloe\Pictures\cat.jpg
Run Code Online (Sandbox Code Playgroud)
我看到一个博客,其中提到nfi.exe
了一个指向 Microsoft 的链接,但它不再可用并且该链接已失效。
视窗 8.1
Gab*_*elB 11
– 你会在这里找到nfi.exe:
http ://www.jumpjet.info/Application-Software/Windows/win2k.htm
下载“oem3sr2.zip”,它就在那里。命令是:
nfi X: [sector number]
(Replace "X:" with the relevant drive letter.)
Run Code Online (Sandbox Code Playgroud)
如果您不指定扇区号,您还可以获得给定分区上所有文件的完整列表:
nfi X: >"D:\nfi listing.txt"
(Replace "X:" with the relevant drive letter. Adjust the name/path of the output file.)
Run Code Online (Sandbox Code Playgroud)
(如果分析的分区上有很多文件,生成的文本文件可能会很大。对于我目前正在处理的 3TB 硬盘,它提取了一个 425MB 的列表文件。)
– 原生存在于 Windows(至少 Windows 7)上的 fsutil 工具也可以提供此功能等。命令是:
fsutil volume querycluster X: [cluster number]
(Replace "X:" with the relevant drive letter.)
Run Code Online (Sandbox Code Playgroud)
这里输入必须在集群中,因此您必须将扇区数除以每个集群的扇区数,对于常见的 4KB 集群大小,通常为 8。结果的呈现比nfi.exe更加精简,如果一个文件有很多碎片,会造成混淆(显然一个文件可以在MFT中呈现为多个文件号,而nfi只显示其中一个部分,我还没有完全理解它是如何工作的);此外,它可以给出短名称而不是全名,因此需要额外的步骤来确定该文件(例如,我得到了“2017_0~3.MP4”,在一个充满视频文件的文件夹中,全名开头为“2017_0”)。使用 fsutil,您可以获得一行,可靠地提供您需要的信息:
Cluster 0x000000001ec1ba42 utilisé par ----D \fichiers corrompus\2017_07_2122_49 - Arte - 101 - Depeche Mode.mp4::$DATA
Run Code Online (Sandbox Code Playgroud)
(簇号始终以十六进制格式显示,但您可以以十进制格式键入它;在这里,我请求了簇 516012610。它是法语,因为我在法国!:^p)
使用这两种工具,您必须提供逻辑扇区或簇号以获得正确的结果,所以如果 Clonezilla 给你一个绝对或物理的列表扇区号(可能是这种情况,即使我还没有尝试过,因为克隆软件旨在复制所有内容而不考虑分区方案)您必须删除分区的偏移量。例如,对于我正在处理的 3TB 硬盘,只有一个分区从扇区 264192 开始,所以如果我有一个坏扇区的绝对数量(例如由 HD Sentinel 提供 - 见下文),假设为 4128365072,想知道它属于哪个文件,我必须用 nfi.exe 输入 4128365072 - 264192 = 4128100880,用 fsutil 输入 4128100880 / 8 = 516012610。
我知道的其他工具可以提供这种信息:
– Hard Disk Sentinel(不是免费的,但它是我所知道的最好的硬盘驱动器健康评估软件)提供绝对或物理扇区号(相对于完整的物理设备而不是给定的分区)。当您运行表面扫描时,单击给定的块,它将显示该块的第一个扇区的十六进制表示,然后您可以通过单击“转到”转到任何其他扇区(您还必须指定绝对扇区号),如果您单击“检测扇区的文件信息”框,它将显示哪个文件占用该扇区,以及该文件占用的扇区的完整列表。但是,它有一个警告:它会尝试实际读取以这种方式请求的每个扇区(以显示其内容),这可能会不必要地强调已经损坏的区域并扩展它,不会像克隆软件那样恢复任何东西。(我有一个类似的问题要处理现在; 在我的情况下,当我尝试这种方法时坏扇区的数量增加了,即使我试图通过访问附近的扇区而不是直接请求已经识别为坏的扇区来识别受影响的文件)。
– Recuva 在“信息”选项卡中提供每个文件的逻辑簇编号列表。它不直接执行您在这里需要的操作:它提供给定文件占用的簇列表,但它不允许查找哪个文件位于哪个扇区。尽管如此,Recuva 的这个鲜为人知的功能可以与上述工具结合使用:一旦您知道哪个文件占用了给定的坏扇区,那么了解该文件也占用了哪些扇区以查看它是否被记录会很有用例如,顺序或严重碎片化(在我的情况下,几个受影响的文件严重碎片化,因此我实际上无法从没有文件系统信息的相关扇区范围的部分 ddrescue 恢复中提取它们,正如我最初打算的那样)。
确保运行快速扫描(默认方法),这足以解析 MFT 并获取当前分配文件的索引,并且如果损坏区域位于更远的位置,它不会通过完全解析硬盘驱动器(就像我的情况一样:所有坏道在 2TB 左右)。如果包含坏道的文件足够大并且坏道在开始时不正确,则应该是无害的,但是对于小文件或坏道恰好在开头,只需单击它们即可获取列表它们占据的集群可能会增加损坏,因为 Recuva 将尝试显示预览或至少显示标题。
– 来自 Piriform(开发 Recuva 的同一家公司)的 Defraggler:当单击卷映射上的给定块时,它将显示包含在同一块中的文件列表(甚至是非碎片文件)。在“文件列表”选项卡(仅显示碎片文件)中单击文件名时,它将突出显示包含至少一个属于该文件的扇区的所有块。不幸的是,没有偏移/扇区/簇间隔的数字指示。(我写它们是为了请求一些增强功能,这将使这个强大的功能更实用。)
– R-Studio(也不是免费的,但它是我尝试过的最好的恢复软件之一)可以显示恢复树中任何文件占用的扇区(即使是当前未分配但已雕刻的“额外找到的文件”中的扇区)根据它们的页眉/页脚结构)通过打开十六进制查看器并单击“扇区”选项卡 - 但它目前无法导出该列表(您可以使用 CTRL+C 逐个复制值,但不要全部选择它们; 使用 Recuva 或 HD Sentinel 可以复制整个列表以供进一步调查)。
您还可以使用此方法识别给定扇区上的文件:
1) 从恢复树中,单击文件 =>“在 HexEditor 中显示文件”。
2)然后返回设备视图选项卡,右键单击您正在检查的卷,然后“查看/编辑”:这将打开十六进制编辑器(它更像是一个十六进制查看器,默认情况下处于只读模式,因为它应该用于数据恢复目的)。在这里您可以输入一个扇区号并显示它以及获取它所属文件的名称。但是有一个不一致之处:要显示扇区的内容,您必须键入其逻辑编号,但要获取它所属的文件的名称,您必须键入其绝对编号,添加或删除分区偏移量。
同样,在出现故障 HDD(硬件故障)的情况下,此方法存在风险,因为软件将尝试访问有缺陷的扇区。
– 使用 ddr_utility 工具集中的一个工具 ddru_ntfsfindbad,您可以获得占用 ddrescue(专为从故障存储单元恢复数据而设计的命令行克隆程序)无法读取的扇区的文件列表。它与 ddrescue 生成的日志文件一起使用。在这种情况下,您已经使用 Clonezilla 克隆了发生故障的 HDD,但是如果只有几个坏扇区,仍然可以从模板创建自定义日志文件,而无需重新进行克隆过程。它的优点是提供详细信息,最显着的是每个受影响文件的损坏数据的大小。不过,它在 Linux 上运行,这是另一个警告,因此在您的情况下它不是最简单的解决方案,但它可能会帮助其他使用 ddrescue 进行恢复的人。
归档时间: |
|
查看次数: |
3702 次 |
最近记录: |