Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 从损坏的介质中读取数据_File_Disk_Recovery - Fatal编程技术网

File 从损坏的介质中读取数据

File 从损坏的介质中读取数据,file,disk,recovery,File,Disk,Recovery,即使windows资源管理器爆炸,也可以读取损坏的介质(cd、hdd、dvd等)吗 我想问的是,是否有一组API或其他东西可以在非常低的级别(低于资源管理器?)访问磁盘,并读取任何可以检索到的内容,即使它只是部分内容,尤其是如果您仍然可以从资源管理器中看到该文件,但无法对其执行任何操作,因为它以某种方式被损坏(在cd上划伤,等等)我不知道Windows资源管理器和Win32 API之间存在哪一层。您可以尝试使用Win32文件I/O编写程序。如果这不起作用,那么您必须编写自己的设备驱动程序以降低成

即使windows资源管理器爆炸,也可以读取损坏的介质(cd、hdd、dvd等)吗


我想问的是,是否有一组API或其他东西可以在非常低的级别(低于资源管理器?)访问磁盘,并读取任何可以检索到的内容,即使它只是部分内容,尤其是如果您仍然可以从资源管理器中看到该文件,但无法对其执行任何操作,因为它以某种方式被损坏(在cd上划伤,等等)我不知道Windows资源管理器和Win32 API之间存在哪一层。您可以尝试使用Win32文件I/O编写程序。如果这不起作用,那么您必须编写自己的设备驱动程序以降低成本。

如果您想这样做,请从Linux端进行操作-请参阅:opensource


或者是现成的应用程序和免费软件:

我在linux方面有点运气,或者使用了BartPE(),但是仅仅看到文件并不意味着文件总是可以恢复的,不管你是在Windows还是linux上尝试。您最好使用恢复程序试用版。

Windows资源管理器的主要问题是,它不支持在读取错误后恢复复制。例如,大多数表面划伤的CD在每次弹出并重新插入时都会在磁盘的不同区域出现故障

因此,使用支持恢复复制操作的实用程序,可以通过执行几次“弹出/重新加载/恢复”来读取损坏CD的全部内容

事实上,这就是a所做的,我从来都不需要任何爱好者来读取刮擦过的磁盘。(它只使用ReadFile和WriteFile。)

更低的一步是打开原始分区(即磁盘映像),方法是向CreateFile传递一个字符串,如“\。\F:”(注意:这里的斜杠是文字)。它将允许您从驱动器读取原始扇区,但从该数据重建文件将很困难

事实上,“\.\”语法允许您在Windows对象管理器命名空间的“\GLOBAL???”分支中打开设备,就像它们是文件一样。这与使用/dev/x作为参数调用dd没有什么不同。还有一个“\Device”分支,但它只能通过DeviceIoControl()访问(即ioctl()),这意味着没有简单的ReadFile()/WriteFile()接口

我想,任何低于这个水平的东西都是特定于设备的;就像一些CD刻录程序那样读取原始CD-ROM数据(包括ECC位)。您必须对特定媒体(CD、flash、DVD)以及您的硬件允许您在其上执行的操作进行一些研究


注意:反斜杠似乎在进入网页的过程中丢失了;您需要将“反斜杠反斜杠点反斜杠DeviceName”传递给CreateFile。当然,你也需要逃离它们。

第一步是。在此之后,您可以尝试任何方法来重建数据。

我有两个磁盘开始在我身上分解。从无法读取的扇区的模式来看,我认为它们的乳化液有内部剥落。WinXP Explorer只是举手表示该驱动器根本不存在

在这两种情况下,我都使用运行时软件()中的“GetDataBack for NTFS”。你可以下载一个免费试用版,它会告诉你,如果你付费的话,你可以得到什么。我买它的时候是49美元,但我看到现在是79美元

这个节目太棒了。它不一定很快,因为它会一遍又一遍地重读一些行业,试图从多次尝试中获得一致的价值,但当它完成后,你可以找回你认为已经永远消失的东西。我有一个驱动器,它花了超过10个小时来分析,但当它完成后,我得到了超过97%的500GB驱动器。绝对值这个价

另一个伟大的工具是无与伦比的。我有版本2.5.3,但目前是3。??价格是30美元。他们有一个完整的功能,30天的踪迹。它在复制大量文件(并且只复制那些需要复制的文件)方面做得很好,而且,与Explorer不同,如果出现故障,它不会爆炸。这有点像Windows的可视rsync,如果你熟悉Samba人的程序的话


除了是一位非常满意的客户之外,我与上述任何一家公司都没有任何联系。

从磁存储设备恢复数据的金标准必须是。不过,这是一个商业应用程序,所以你可能不会从中学到很多东西。

如果你身边有Linux机器,我可以推荐。它原本是用来创建纠错文件的,但它也会将DVD读入图像并忽略读取错误;您可以一个接一个地使用不同的驱动器来填充图像中缺少的扇区。

还有

GNU ddrescue是一种数据恢复工具。它将数据从一个文件或块设备(硬盘、cdrom等)复制到另一个文件或块设备,试图在出现读取错误时首先挽救好的部分

确保使用3-arg版本():

也就是说,即使是可选的,也要使用映射文件,因为:

如果您使用ddrescue的mapfile功能,则可以非常高效地保存数据(只读取所需的块)。您也可以随时中断救援,稍后在同一点恢复救援。地图文件是ddrescue有效性的重要组成部分。使用它,除非你知道你在做什么


它也包含在Cygwin和Homebrew中。

这是一个后期添加,因为我刚刚在使用
ddrescue时获得了巨大成功
ddrescue [options] infile outfile [mapfile]