早上好,
我目前正在帮助一位好朋友恢复她损坏的 1TB 外部硬盘。她掉落了驱动器,现在无法再安装它。经过一番研究后,我尝试了 safecopy。我正在使用 Kali Linux live CD 和通过 USB 站连接和安装的内部 3TB HDD。外部驱动器占用的空间少于 100GB。 SafeCopy 每天收集约 30GB。我的第一次尝试在大约 260GB 后因“找不到位置”错误而中止,驱动器已重新连接到另一个安装路径。目前的尝试是~280GB。由于驱动器是全新的,所有存储的数据应该已经收集在输出 ISO 中。但是,当我尝试挂载 260GB ISO 时,出现文件错误,涉及文件损坏和 I/O 错误
我使用此命令进行安全复制:
sudo safecopy --stage1 /dev/sda1 /path/to/3tb/drive/data.iso
/dev/sda1 是检测到外部硬盘的位置。
有没有办法手动完成 ISO 文件的构建?这将为我节省大量时间,因为 safecopy 大约需要 34 天才能完成这项工作。
编辑:
正如评论中提到的,我不得不中止该过程一段时间。我现在已经重新设置了一切,在经历了一些困难之后,这就是 fdisk 产生的结果:
sudo fdisk -l /dev/sdc1
Disk /dev/sdc1: 931.5 GiB, 1000169537536 bytes, 1953456128 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
Disklabel type: dos
Disk identifier: 0x69205244
Device Boot Start End Sectors Size Id Type
/dev/sdc1p1 ? 218129509 1920119918 1701990410 811.6G 72 unknown
/dev/sdc1p2 ? 729050177 1273024900 543974724 259.4G 74 unknown
/dev/sdc1p3 ? 168653938 168653938 0 0B 65 Novell Netware 386
/dev/sdc1p4 2692939776 2692991410 51635 25.2M 0 Empty
Partition table entries are not in disk order.
我忘记保存 stage1.badblocks 文件,所以我无法真正继续第一次运行。我现在开始了新的 stage1 safecopy 运行,希望它会比以前快一点,因为我现在直接从这个笔记本运行 Debian Linux。
那么,有没有办法使用第一次运行时的iso文件并使其可读呢?
编辑2:
好的,3 小时后,这是迄今为止的输出:
[0](+0){XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [844800]
XXXXXXXXXXXXX 8-X 0%
驱动器发出可怕的咔嗒声。如果我之前解释 fdisk 输出形式,数据似乎会更多地写回到驱动器上,而不是从扇区 0 开始。是否可以从磁盘尾部开始读取并挽救数据?我担心我或多或少依赖于从迄今为止创建的 iso 文件中提取数据。再说一遍,我是否可以从未完成的 iso 文件中提取部分内容并从中构建一个有效的文件?
编辑3:
我现在尝试了 ddrescue。现在运行约 23 小时。输出文件的大小为 134MB,我从 safecopy 中已经知道这个大小是可以的。gmesg | tail
产生以下输出:
[80840.705000] usb 2-1.1: reset high-speed USB device number 8 using ehci-pci
[80880.711821] usb 2-1.1: reset high-speed USB device number 8 using ehci-pci
[80920.718561] usb 2-1.1: reset high-speed USB device number 8 using ehci-pci
[80922.888408] sd 8:0:0:0: [sdb] Unhandled error code
[80922.888413] sd 8:0:0:0: [sdb]
[80922.888415] Result: hostbyte=DID_TIME_OUT driverbyte=DRIVER_OK
[80922.888417] sd 8:0:0:0: [sdb] CDB:
[80922.888419] Read(10): 28 00 49 a5 38 80 00 00 08 00
[80922.888426] end_request: I/O error, dev sdb, sector 1235564672
[80922.888430] Buffer I/O error on device sdb1, logical block 154445328
所以我可以看到 USB 访问存在困难以及一些问题hostbyte=DID_TIME_OUT
dd 到目前为止有这样的输出:
rescued: 123928 kB, errsize: 0 B, current rate: 12976 kB/s
rescued: 134742 kB, errsize: 39649 kB, current rate: 0 B/s
ipos: 635829 MB, errors: 605, average rate: 1688 B/s ago
opos: 635829 MB, run time: 22.17 h, successful read: 22.01 h ago
Copying non-tried blocks... Pass 1 (forwards)
dd 完成后,我将尝试使用 tsk_recover 从 dd 映像中提取至少一点点。正如评论中提到的,我查找了驱动器的硬件规格。问题是 USB 连接器(USB 3.0 B 型微型)位于主 PCB 上,因此我无法访问 ATA/SATA 连接。或者至少我是这么发现的(到目前为止我还没有打开这个箱子)。我找不到带有电路图的数据表。产品编号为WDBHHG0010BBK-04。我发现了一个类似(!)驱动器的视频,该驱动器的 USB 端口旁边有引脚。我对硬盘和电子设备了解不够,不知道是否可以使用它们。 dd一完成我就会打开箱子。
我问自己什么可能会损坏驱动器那么严重。我的朋友告诉我她刚刚把它扔掉了。看来rw磁头损坏了或者把磁盘砸碎了。据我所知,硬盘在空闲或断电时会将磁头移到一边。我的救援尝试似乎没有造成更多损害,因为可读扇区的结果与一开始相同。
所以,很多文字。我当前的问题是系统日志条目应该告诉我什么。
一些驱动器图片:
答案1
我猜你所说的 iso 是指原始磁盘映像。尝试 ddrescue (有时可用作 dd_rescue),它非常冗长,您可以手动跳过不可读的块。并不是你需要这样做,它默认会忽略读取错误。除了外部 USB 磁盘之外,我从未遇到过它停止的情况。当我恢复数据时,我总是(如果可能)从任何外部外壳中取出 HDD,并将其插入电脑的托架中。 USB 往往会在出现问题的第一个迹象时立即退出。您可以尝试冷却磁盘,这可能有帮助也可能没有帮助,但没有坏处。由于您要连续几天进行恢复,因此您可以让 3-4 个 CPU 风扇对着它吹。你根本不想感觉它变热,越凉越好。热量对于坏磁盘来说是有害的。我建议你把它放在冷藏箱或冰箱里,但这很愚蠢。如果磁盘处于半死状态,请勿对其执行任何其他读取操作。编辑:使用安装的原始图像(甚至是只读图像)时,您会遇到一些麻烦。如果导航可能损坏的文件层次结构(FAT,等等),请首先尝试使用手术刀、雕刻和 magicrescue 来恢复映像中的文件。您通常可以恢复最流行的图片和文档格式。