我妻子的 Windows 7(64 位)机器突然出现 SMART“磁盘坏了”状态。我试图 :(
通过网络创建系统映像到另一台机器来复制所有内容(请不要警告我缺乏备份方案,我已经知道了),但它到了一定程度,开始永远耗时。执行此操作后chkdsk
发现,某些文件由于有许多坏块(例如,如果事件日志有任何迹象的话,有数十万个坏块连续出现)而导致系统执行其标准的尝试恢复和重新定位访问操作,从而导致这种情况。
但这花了太长时间,我担心磁盘会完全损坏,然后我才能复制完这个该死的东西。不过,到目前为止,几个文件都是她在其他地方有副本的,所以我可以在重试备份之前删除它们,以大大加快速度。
那么:是否有某种工具或程序可以尝试读取每个文件,并在遇到坏块时告诉我并跳到下一个文件?这样我就能知道哪些文件可以转储,哪些文件需要让它尝试恢复?
答案1
由于没有人真正回答过您的问题,以下并不完全是闪电般快速的方法可能是获得您所寻找内容的最快方法。
您需要的实用程序在 Linux 下运行,因此您首先需要创建一个 USB 密钥或 CD,以使用它来启动 Linux(或将磁盘连接到 Linux 机器)。
然后,您需要
ddrescue
从 Gnu ddrescue 包运行。这将创建一个“mapfile”,它基本上是磁盘上坏扇区的列表。有许多不同的选项ddrescue
,其中包括从坏扇区读取/恢复数据的难度。如果您想将任何出现问题的扇区视为“坏扇区”,并且不想真正使用 ddrescue 恢复任何内容,您可以使用选项-n
并指定/dev/null
为目标,这将非常快(ddrescue 将按顺序读取磁盘的所有扇区一次,mapfile 输出将包含读取失败的扇区的列表)。然后,您需要
ddru_ntfsfindbad
在 mapfile 和磁盘上运行一个名为的实用程序,它将输出您想要的内容:磁盘上有坏扇区的文件列表。
但请注意:
如果驱动器出现故障,读取它很可能会使它更糟。因此,很有可能(有些人会说“几乎肯定”)一些/很多/很多扇区在您通过该过程读取磁盘两次之前是好的,现在却坏了。明智的做法是使用一个好的驱动器并执行上述两个步骤来实际恢复数据。当然,如果您这样做,您可能需要使用 的
ddrescue
能力来加倍努力地从难以读取的扇区中获取数据。ddru_ntfsfindbad
手册上说,除非文件系统是 NTFS,否则您无法在原始坏驱动器上运行它。所以您这种情况没问题,但如果您在 ddrescue 恢复的驱动器上运行它,而不是原始驱动器,它几乎肯定会更快。如果坏扇区位于某些文件系统元数据中,您确实需要这样做。
我意识到原始问题已经很老了,但我最近遇到了这个问题,并认为其他人可能想知道原始问题的答案。
答案2
当谈到磁盘上的坏扇区时,如果没有备份,那么我会使用名为 Drive Snapshot 的工具获取它的备份映像:
驱动器快照
http://www.drivesnapshot.de/
当此工具遇到坏扇区时,它会在单独的文本文件中跟踪它们(每行一个坏扇区,因此您只需计算文件中的行数即可确定坏扇区的总数),这也用作交叉引用以找出哪些文件使用了这些扇区。
答案3
我也有同样的疑问并做了一些研究:http://www.disktuna.com/finding-out-which-file-is-affected-by-a-bad-sector/。
我假设是 Windows 操作系统和 NTFS 文件系统。
因此,坏扇区可能是以下情况的一部分:
未分配的空间。我们可以忽略它。
文件系统结构。通常,chkdsk 应该可以处理这个问题。根据文件系统损坏的位置,chkdsk 可能根本不会运行。在这种情况下,您需要对硬盘本身进行表面扫描。
受影响的系统文件:您可以使用 Windows 系统文件检查器 (SFC.exe)。在命令提示符下,键入以下命令,然后按 ENTER:sfc /scannow。
用户数据:可以使用 Microsoft 支持工具 NFI.exe 将 LBA 扇区地址转换为文件路径。这样,您就可以确定扇区重新分配后需要从备份中恢复哪些文件。
例子:
C:\Users\admin\Downloads>nfi \Device\Harddisk0\DR0 28521816 NTFS File Sector Information Utility. Copyright (C) Microsoft Corporation 1999. All rights reserved. ***Physical sector 28521816 (0x1b33558) is in file number 5766 on drive C. \IMAGES\win7HDD.vhd
最简单的方法可能是高清哨兵. 运行表面扫描后,HD Sentinel 将显示受坏扇区影响的文件列表。
答案4
这取决于您对数据的渴望,以及您希望不付出任何代价就能得到什么。
我最近评论了 CBL 的新数据恢复软件尽管从技术上来说该驱动器仍在运行,但我认为值得一提的功能之一是能够选择针对坏扇区的重试次数。
在这种情况下,您可以将重试次数设置为 3 次,而不是默认的 20 次或 30 次,我认为。通过将其调整为 3 次,您仍然可以捕获驱动器薄弱部分的所有数据,而不会在可能已经无法通过软件恢复的文件上浪费宝贵的时间。然后,当您捕获了该轮次后,返回并仅选择第一次尝试失败的文件,然后重试几次,逐渐将重试次数增加到 10、20、50 次,直到您获得所有内容或驱动器完全平坦。
或者,在第一遍之后,您可以按照 happy_soil 的建议尝试 spinrite,看看它是否可以刷新坏扇区,但首先快速获取大部分数据,因为这种级别的故障通常是由驱动电路中的磁头、前置放大器或缓存故障引起的。如果是这种情况,并且故障不在媒体中,则 ru 时间的每一秒都很重要。
CBL 的软件比同类竞争对手的软件贵一点,大约 100 美元,但它是我见过的唯一一款具有如此精细控制的商业软件,而且如果你需要一些帮助来完成设置,它还能提供不错的支持。