无法访问外部硬盘。“磁盘结构已损坏,无法读取”


11

我有一个1 TB AgentGoFlex Seagate外部硬盘。

最近,它引起了一些问题,例如一些文件夹中的数据未显示任何文件。一些文件夹没有打开,等等。

因此,我尝试chkdsk在Windows 8上运行,但未成功完成。因此,我没有连接硬盘。现在,当我将HDD连接到系统时,无法识别它。在Linux中根本无法识别它。

在Win8中,当我尝试从命令提示符访问磁盘时,它显示“磁盘结构已损坏且无法读取”。

甚至chkdsk现在失败并显示错误:“文件系统为NTFS。无法确定卷版本和状态。chkdsk中止了。”

尝试从F运行“检查实用程序”时 →右键单击→属性→工具→检查,它将出现以下错误。

错误屏幕截图:由于Windows无法访问磁盘,因此无法执行磁盘检查

格式化磁盘不是一种选择,因为我上面有非常重要的数据。

请提出可以启用硬盘访问权限的建议。


1
如果您不能将磁盘发送给专业的数据恢复公司,那么下一个最佳解决方案是尝试以磁盘的当前状态(在磁盘完全失效之前)制作映像。然后,可以将映像文件保留为“安全副本”,尝试恢复磁盘或重复的映像文件。我确信Linux至少在某种程度上可以识别您的驱动器,因此请尝试获取一些免费的磁盘映像工具,然后将映像首先写入另一个磁盘!
Waxhead 2013年

1
恐怕Ramhound可能是正确的,您的驱动器可能已经死了。数据可能是可恢复的,但在家中进行操作可能会导致丢失更多文件-一些专业人员可能会为您提供帮助。请记住,只有两种人:进行备份的人员和将进行备份的人员。
gronostaj 2013年

Answers:


10

首先,不要在磁盘上执行任何其他操作(至少不要对其进行操作)。磁盘未被识别(与“被识别并发现为空或数据不可读”相对)似乎表明磁盘已完全爆炸,这chkdsk是行不通的,或者是分区表或磁盘的几何结构有问题,或USB外壳处理它的方式。硬件故障也是可能的。

当USB机箱尝试在磁盘和所连接的计算机之间进行协商时,可能会发生这种情况。因此,要做的第一件事就是dd在Linux下使用可能最接近物理级别的磁盘(显然更大)上的磁盘映像。然后,您可以摆弄一张心中所想的图像副本,而不必担心损坏实际磁盘。

更新:Linux中的设备识别

我们的“外部磁盘”中有不少于三个实体。USB机箱硬件,作为块设备公开。机箱内的物理磁盘。物理设备,即LBA扇区从头到尾的顺序。最后是零个或多个数据分区,托管文件系统。要被“识别”并显示在桌面上,链的所有链接都需要工作。但是要拍摄物理设备的图像,您只需要前两个。如果您插入设备并dmesg以超级用户身份运行命令行,您应该会看到类似以下内容:

[4984939.028491] usb 8-6: new high speed USB device using ehci_hcd and address 3
[4984939.166658] usb 8-6: configuration #1 chosen from 1 choice
[4984939.170660] scsi7 : SCSI emulation for USB Mass Storage devices
[4984939.172003] usb-storage: device found at 3
[4984939.172005] usb-storage: waiting for device to settle before scanning

...这是机箱被识别,然后识别其自身及其内容的方法:

[4984939.170660] usb 8-6: New USB device found, idVendor=1058, idProduct=1021
[4984939.170660] usb 8-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[4984939.170660] usb 8-6: Product: Ext HDD 1021
[4984939.170660] usb 8-6: Manufacturer: Western Digital
[4984939.170660] usb 8-6: SerialNumber: 574D43305431303831303734
[4984944.400970] usb-storage: device scan complete

接下来你会看到司机告知其几何形状,性质,以及其隐含的设备节点,在这里sdd(SCSI磁盘四,因为sdasdbsdc已经采取的):

[4984944.404739] scsi 7:0:0:0: Direct-Access     WD      Ext HDD 1021    2021 PQ: 0 ANSI: 4
[4984944.404739] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)
[4984944.407367] sd 7:0:0:0: [sdd] Write Protect is off
[4984944.407369] sd 7:0:0:0: [sdd] Mode Sense: 17 00 10 08
[4984944.407371] sd 7:0:0:0: [sdd] Assuming drive cache: write through
[4984944.408741] sd 7:0:0:0: [sdd] 1953519616 512-byte hardware sectors (1000202 MB)

然后内核识别出一个分区(如果看不到该分区,则该分区不存在或无效):

[4984944.411497]  sdd: sdd1

现在,Linux具有所需的一切并报告成功的附件:

[4984944.416739] sd 7:0:0:0: [sdd] Attached SCSI disk
[4984944.416739] sd 7:0:0:0: Attached scsi generic sg4 type 0

这样就开始了对数据分区的搜索,即,确定,我们有sdd1,但是那里有什么?,答案是:

[4984997.498613] NTFS driver 2.1.29 [Flags: R/W MODULE].
[4984997.554613] NTFS volume version 3.1.
[4984997.568859] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean.  Mounting read-only.  Mount in Windows.
[4985390.027808] NTFS-fs error (device sdd1): ntfs_remount(): Volume has errors and is read-only.  Cannot remount read-write.
[4985442.423299] NTFS volume version 3.1.
[4985442.425032] NTFS-fs error (device sdd1): load_system_files(): $LogFile is not clean.  Mounting read-only.  Mount in Windows.

以上是一个“好”的坐骑。但是,仅仅知道该设备sdd,或sdc或者sdb,允许我做一个二进制副本(假设我有足够的可用空间/mnt/backupdisk):输入文件/dev/sdd,输出文件DiskImage.raw块大小为1 MB

# dd if=/dev/sdd of=/mnt/backupdisk/DiskImage.raw bs=1M

请注意,输入文件是/dev/sdd 和不是 /dev/sdd1 (或任何其他数字)。现在,如果需要,我可以找出内数据分区的偏移量DiskImage.raw,并借助循环设备将其安装。在这里,您会发现肮脏的细节。

首次恢复尝试

第二件事是将物理磁盘放入另一个磁盘盒中,从而确保磁盘盒状况良好,并有机会让新磁盘盒正确解释磁盘。如果磁盘重新出现,则可能是先前的机箱损坏了。以防万一,备份所有新找到的驱动器内容,验证备份,使用磁盘覆盖实用程序将磁盘清零,以使其变得完全哑(在设备链中不能有两个拥有不同意见的设备),将其重新格式化从Windows本地还原数据。这是一个幸运的镜头,但我看到了它的发生。而且价格也不算太贵,好的外壳大约要新售价19,99美元。

万一原始机箱损坏,您将无法重新格式化磁盘,否则将无法访问该磁盘。您可以重试新的外壳,如果它的作品,无论是更换旧的外壳,或继续使用新的(但如果新机箱是,这是值得相当比US $ 19.99厄尔尼诺小气鬼更好)。

专业康复

专业的恢复服务,可以在Google上找到。一种不太诚实的处理方法是通过物理磁盘进行发送,并且–如果您收到“是的,则没有硬件损坏,我们可以仅以US $$$$的价格恢复所有数据。 $$!” 答案–那么您就会知道数据仍然可以挽救。因此,您可以尝试免费对自己拍摄的映像进行备份,而只需支付诊断和磁盘S&H。如果失败,仍然可以选择咳嗽所需的面团。如果硬件损坏,专业的服务基本上是你唯一的选择。有几种伏都教技巧可以(暂时)恢复“死”磁盘,通常足够长的时间至少可以恢复最重要的数据,不能保证每次都能工作(加热磁盘,冷却磁盘,“旋转”磁盘-我什至看到建议将磁盘巧妙地贴在坚硬的表面上)。它们都将造成更大的损害,即,您必须确保使用一个将在第一次使用的技巧,否则您将永远杀死磁盘。我只是说这解释了为什么你会看到关于恢复盘成功案例:有这样的故事。但是,如果您想(主要是)确定会发生在您身上,那么–聘请专业人员。

如果您确定硬件没有问题-磁盘旋转,没有嘎嘎作响,没有奇怪的声音或嗡嗡声,没有喀嗒作响的重新校准,那么发生的“全部”就是chkdsk弄乱了一些数据。

DIY恢复

“本地”恢复通常是这样的(基本上,一旦硬件损坏被消除后,专业人士就会做同样的事情),在磁盘映像副本上工作:

  • 检查磁盘映像的第一个扇区是否是有效的分区表。如果不是,请扫描磁盘映像以查找有效的分区表或可识别的NTFS或FAT32引导扇区,具体取决于该单元上的FS(对于1 TB单元,NTFS似乎是唯一的逻辑可能)。无论哪种方式,您都应该在前几兆字节内找到某些内容。

  • 如果找到了分区表,请验证数据分区是否在分区表中应有的位置。如果不是,那将是一个好消息:可能分区表是所有错误的。修复起来很容易(几个Linux分区编辑器会做到这一点),并且可以预期磁盘具有100%的恢复。为了安全起见,请尝试将Linux中的数据分区与循环设备一起以只读模式挂载,以查看其是否可读。如果是这样,则确认分区丢失,并且在确保完全恢复磁盘的过程中可能会显出磁盘。如果不是,则分区可能是正确的,并且数据分区(的一部分)已被重写。这不好; 请参阅下面的“事情变酸”。

  • 如果找到并有效,则对照驱动器的几何形状进行检查;如果它们不匹配,那实际上也是一件好事,因为您可能已经找到了问题的根本原因。您可以将物理几何强制设置为内核(并在Linux启动时获取)。查看新的几何结构是否导致磁盘在Linux中被识别。如果是的话,请备份数据,确认备份正确,然后将磁盘dd置零(到适当sd设备的几兆字节零就足够了)。关闭计算机电源(不要只是重新启动;可以,这有点偏执,但是花费很少,并且可能会完成某些工作),然后启动Windows,并将现在无能为力的磁盘格式化为它认为是最好的格式。这样可以确保与Windows没有冲突。恢复磁盘上的数据。请享用。

  • 如果几何技巧不起作用,或者找不到分区,或者一旦发现分区似乎是空的,那就变酸了。您需要一些恢复工具,该工具能够扫描磁盘映像以搜索丢失数据的数据区域(MFT等)。一旦找到,就对它们进行解释以获取数据。这是一项艰巨的工作,不能总是完全自动化。在较低且更加绝望的级别上,这涉及扫描各个文件的签名,希望它们位于磁盘中的连续块中。不过,我很乐意将这种操作留给专业人员。我用旧的FAT磁盘做了几次,总是成功。我再次使用更新,更大和更多碎片化的FAT32磁盘再次成功完成了大约50%。我尝试过 在复杂得多的NTFS和ext4文件系统上,有几次效果不佳(但是我有完整的备份,但实际上并没有付出全部)。

从Linux手动恢复

好的,因此您尝试在Linux上安装该分区并出现错误(请注意, /dev/sdc 并且 是不同的东西–该映像所指)。/dev/sdcN /dev/sdc

# mount -t ntfs /dev/sdc1 /mnt/recovery
ntfs_mst_post_read_fixup_warn: magic: 0x00000000  size: 1024   usa_ofs: 0  usa_count: 65535: Invalid argument
Record 1 has no FILE magic (0x0)
Failed to open inode $MFTMirr: Input/output error

...这似乎表明系统认为分区正确无误或损坏严重。让我们先检查第一个选项:

# fdisk /dev/sdc

您得到的是这样的:

Disk /dev/sdc: 1000.2 GB, 1000204885504 bytes
1 heads, 63 sectors/track, 31008335 cylinders, total 1953525167 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9d2b7596

Device       Boot      Start    End          Blocks       Id  System
/dev/sdc1              63       1953520127   976760032+   7   HPFS/NTFS/exFAT

下一步将检查实际的分区启动。通过搜索图像文件(或/dev/sdc),我们将搜索NTFS签名:

  00000000:EB 52 90 4E 54 46 53 20 -20 20 20 00 02 08 00 00 .R.NTFS ........ 
  00000010:00 00 00 00 00 F8 00 00 -3F 00 FF 00 3F 00 00 00 ........?...?... 
  00000020:00 00 00 00 80 00 80 00 -4A F5 7F 00 00 00 00 00 ........J....... 

# dd if=/dev/sdc bs=512 count=1 skip=63 2>/dev/null | hexdump -C | head -n 1

...根据上述数据,我们希望NTFS引导位于扇区63,这就是为什么要设置skip。此外,我们将尝试使用第一个兆兆字节(例如)的每个扇区...

# dd if=/dev/sdc bs=512 count=2000000 2>/dev/null | hexdump -C | grep "00:EB 52 90 4E 54 46 53"

...只是为了确保只有一个引导扇区(我曾在这发生在我身上。在FAT32磁盘上,但仍然),并且任何地方都没有读取错误。

您的结果

00007e00  eb 52 90 4e 54 46 53 20  20 20 20 00 02 08 00 00  |.R.NTFS    .....|

正是我们所期望的:扇区63的偏移量为63×512 = 32256 = 7e00十六进制。NTFS引导扇区在那里,并且分区表似乎正确

因此,我们现在可以将很大一部分复制/dev/sdc1/tmp/mydisk.imgLinux 上,然后尝试进行修复。这不会损坏物理磁盘,对于其他尝试,该物理磁盘仍将保持不变。从现在开始,我们就知道PT是正确的,因此我们可以使用/dev/sdc1该副本并招待我们以前无法做到的希望:

# dd if=/dev/sdc1 of=/tmp/mydisk.img bs=1G count=10
...after copying 10 gigabytes...

# ntfsfix /tmp/mydisk.img

如果NTFSfix无法正常运行,那么我们有麻烦了。有更准确的实用工具,可以尝试,但。而且,如果您需要恢复JPEG图片文件并且文件系统没有碎片,可以通过查找JPEG标头自动完成。PDF,TIFF和Office文档几乎相同,除了不知道如何识别它们(对于JPEG,我会:-))。作为最后的选择,我找到了这些人 –我不认识他们,与他们没有亲戚,也不会承担任何责任。但是,随着这些事情的发展,价格非常合理。


@ Iserni-感谢您提供信息。尽管我的第一个问题是我无法在Linux上制作HDD映像,因为它根本无法被识别。在Windows中,它至少被检测到,但是无法访问。
Anurag Rana

更新答案回复:“无法识别”
LSerni 2013年

@Isreni-非常感谢您的帮助。我可以对磁盘中的数据进行镜像,但是磁盘中的数据为400GB,笔记本电脑中的最大可用大小为200GB。因此,我将无法制作完整的图像。它将在中间终止。有什么办法只能将400GB中的200GB复制到笔记本电脑中,然后从那200GB的映像中恢复一些数据?
Anurag Rana

是的,您可以使用ddwith count参数来获取给定的千兆字节数量(考虑到dd和磁盘供应商不同意GB的大小,“ 200 GB”对一个GB可能意味着“ 190 GB”对另一个GB)。但是还要考虑一下,一个新的500 GB USB磁盘的价格约为59,99美元;也许值得,因为您可以对磁盘进行映像,这意味着硬件很可能是完美无缺的。此处发生故障(除非您在关键区域
遭受

@Isreni-谢谢::今天,我使用了希捷恢复软件(免费版),它能够读取HDD,列出所有文件夹(原样),并且可以恢复所有小于64kb的文件(免费版)。这意味着HDD当然没有任何硬件错误。使用dd将200GB数据复制到笔记本电脑后,是否可以像访问普通目录一样访问该转储?No..right ..因为创建的转储文件无法在安装了任何普通应用程序的情况下打开。那么我们如何从该转储中提取/复制所需的文件夹/文件?
Anurag Rana 2013年

-2

只需以cmd作为管理特权进入并输入chkdsk X:/ f(“ X”是驱动程序的卷名,“ / f”已修复)


@Iserni的答案使答案水平过高,对不起,但我必须投反对票
Francisco Tapia

从OP:“即使chkdsk现在也失败,并显示错误:”文件系统为NTFS。无法确定卷版本和状态。CHKDSK中止“”
Ƭᴇcʜιᴇ007

-3

对我和我的同事来说,一个简单的解决方案是安装磁盘并chkdsk在Windows 7 上使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.