即使 Windows 资源管理器被炸毁,是否可以读取损坏的媒体(cd、hdd、dvd...)?
我的意思是,是否有一组 API 或其他东西可以在非常低的级别(在资源管理器之下?)访问磁盘并读取可以检索到的任何内容,即使它只是部分内容,特别是如果你仍然可以看到该文件来自资源管理器,但无法对其执行任何操作,因为它以某种方式损坏(CD 上的划痕等)?
Windows Explorer 的主要问题是它不支持在读取错误后恢复复制。例如,大多数表面划伤的 CD 每次弹出并重新插入时都会在磁盘的不同区域出现故障。
因此,使用支持恢复复制操作的实用程序,可以通过执行几次“弹出/重新加载/恢复”来读取损坏 CD 的全部内容。
事实上,这就是我编写的实用程序所做的,而且我从来不需要任何更高级的东西来读取划痕的磁盘。(它只是使用 ReadFile 和 WriteFile。)
低一级是通过将诸如“\.\F:”之类的字符串(注意:这里的斜杠是字面意思)传递给 CreateFile 来打开原始分区(即磁盘映像)。它可以让你从驱动器中读取原始扇区,但是从这些数据中重建文件会很困难。
事实上,“\.\”语法允许您在“\GLOBAL??”中打开设备。Windows 对象管理器命名空间的分支,就好像它们是文件一样。这与使用 /dev/x 作为参数调用 dd 没有什么不同。还有一个“\Device”分支,但只能通过 DeviceIoControl()(即 ioctl())访问,这意味着没有简单的 ReadFile()/WriteFile() 接口。
我猜,任何低于该级别的都将是特定于设备的;就像某些 CD 刻录程序那样读取原始 CD-ROM 数据(包括 ECC 位)。您必须对特定媒体(CD、闪存、DVD)以及您的硬件允许您在它们上执行的操作进行一些研究。
注意:反斜杠似乎在访问网页的过程中丢失了;您需要将“反斜杠点反斜杠设备名称”传递给 CreateFile。当然,您也需要逃脱它们。
第一步是dd_rescue。之后,您可以自由尝试任何方法来重建数据。
如果您想这样做,请从 Linux 端进行 - 请参阅:http : //sourceforge.net/projects/monkeycity/opensource
或现成的应用程序和免费软件:http ://www.theabsolute.net/sware/dskinv.html
GNU ddrescue 是一个数据恢复工具。它将数据从一个文件或块设备(硬盘、cdrom 等)复制到另一个,试图在读取错误的情况下首先挽救好的部分。
确保使用 3-arg 版本(手册):
ddrescue [options] infile outfile [mapfile]
也就是说,mapfile
即使 a 是可选的,也要使用它,因为:
如果您使用 ddrescue 的 mapfile 功能,可以非常有效地抢救数据(仅读取需要的块)。您也可以随时中断救援,稍后在同一点恢复。映射文件是 ddrescue 有效性的重要组成部分。除非您知道自己在做什么,否则请使用它。
它也包含在 Cygwin 和 Homebrew 中。
我有两个磁盘开始在我身上瓦解。从不可读扇区的图案来看,我认为它们的乳液内部有剥落。WinXP Explorer 只是举手并说驱动器甚至不存在。
在这两种情况下,我都使用了 Runtime Software ( http://www.runtime.org/ )的“GetDataBack for NTFS” 。您可以下载免费试用版,该试用版会告诉您付费后可以获得什么。我买的时候是 49 美元,但我看到现在是 79 美元。
这个节目太棒了。它不一定很快,因为它会一遍又一遍地重读某些扇区,试图从多次尝试中获得共识值,但是当它完成后,你可以取回你认为永远消失的东西。我有一个驱动器需要 10 多个小时来分析,但完成后我得到了 500GB 驱动器的 97% 以上。绝对物有所值。
另一个很棒的工具是 Beyond Compare。我有 rev 2.5.3,但目前是 3.?? 费用为 30 美元。他们有一个全功能的 30 天跟踪。它在复制大量文件(并且只复制那些需要复制的文件)方面做得很好,而且与资源管理器不同,它不会在出现故障时崩溃。如果您熟悉 Samba 人的那个程序,它有点像 Windows 的可视化 rsync。
除了作为一个非常满意的客户之外,我与提到的任何一家公司都没有任何联系。
我不知道 Windows Explorer 和 Win32 API 之间存在什么层。您可以尝试使用 Win32 File I/O 编写程序。如果这不起作用,那么您必须编写自己的设备驱动程序才能降低。
我从 linux 方面获得了一些运气,或者使用了 BartPE ( http://www.nu2.nu/pebuilder/ ),但是仅仅看到文件并不总是意味着文件将是可恢复的,无论你从 Windows 或 Linux 重新尝试。您最好的选择可能是使用恢复程序的试用版。
从磁存储设备中恢复数据的黄金标准必须是SpinRite。虽然它是一个商业应用程序,所以你可能不会从中学到很多东西。
如果你身边有一台 Linux 机器,我可以推荐dvdisaster。它最初用于创建纠错文件,但它也将 DVD 读入图像并忽略读取错误;并且您可以一个接一个地使用不同的驱动器来填充图像中缺失的扇区。