不久前,我的一个硬盘(3TB Seagate ST3000DM001)无法再挂载。直到前一天,它都运行良好,只是前一周,单个文件出现了一些错误。一些 GUI 应用程序向我报告了相关错误,但 cp 创建了一个副本,我能够验证它,即使将其移回原始路径以替换原始文件也是如此。我没有收到有关该文件的任何错误。
我使用的是 Kubuntu 16.04。启动连接了驱动器的计算机需要很长时间,并且驱动器发出奇怪的咔嗒声。由于驱动器无法再安装,我检查并尝试了一些方法。
系统日志:
/var/log/syslog.1:Dec 12 23:06:45 grimripper-desktop systemd[1]: dev-disk-by\x2duuid-32798b9c\x2da158\x2d42f4\x2db0d0\x2dec13f1d9f287.device: Job dev-disk-by\x2duuid-32798b9c\x2da158\x2d42f4\x2db0d0\x2dec13f1d9f287.device/start timed out.
目前,昨晚有七个,但今天没有。
sudo fdisk -l /dev/sdb
fdisk: laitetta /dev/sdb ei voi avata: I/O-virhe
(它说无法打开设备 /dev/sdb:I/O 错误)
sudo fsck -n /dev/sdb
fsck – util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
fsck.ext2: Attempt to read block from filesystem resulted in short read yritettäessä avata /dev/sdb
Could this be a zero-length partition?
(尝试打开 /dev/sdb 时显示短暂读取)
sudo file -s /dev/sdb
/dev/sdb: ERROR: cannot read `/dev/sdb' (Input/output error)
sudo smartctl -a /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-210-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Device Model: ST3000DM001
Serial Number: W1F1SHNJ
LU WWN Device Id: 5 000c50 05da67bd0
Firmware Version: CC24
User Capacity: 137 438 952 960 bytes [137 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: 7200 rpm
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: ATA8-ACS T13/1699-D revision 4
SATA Version is: SATA 3.0, 6.0 Gb/s
Local Time is: Fri Oct 22 22:25:31 2021 EEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Read SMART Data failed: scsi error badly formed scsi parameters
=== START OF READ SMART DATA SECTION ===
SMART Status command failed: scsi error badly formed scsi parameters
SMART overall-health self-assessment test result: UNKNOWN!
SMART Status, Attributes and Thresholds cannot be read.
Read SMART Log Directory failed: scsi error badly formed scsi parameters
Read SMART Error Log failed: scsi error badly formed scsi parameters
Read SMART Self-test Log failed: scsi error badly formed scsi parameters
Selective Self-tests/Logging not supported
我尝试使用 TestDisk 进行分析 -> 快速搜索,但没有找到任何分区。
今天我已经运行了 ddrescue(当我添加新驱动器时,驱动器从 sdb 更改为 sdd):
sudo ddrescue /dev/sdd sdd.dd sdd.log
GNU ddrescue 1.19
Press Ctrl-C to interrupt
rescued: 0 B, errsize: 4142 MB, current rate: 0 B/s
ipos: 129520 kB, errors: 1, average rate: 0 B/s
opos: 129520 kB, run time: 13.47 h, successful read: 13.48 h ago
Scraping failed blocks... (forwards)
它没能挽救任何东西,而且它的运行速度大约为 9MB/h,以这样的速度运行意味着需要几百年才能完成 3TB 的驱动器。
我今天在 syslog 和 kern.log 中找到了大约 4000 万行内容,大部分都是重复以下内容:
Dec 13 08:27:45 grimripper-desktop kernel: [ 825.485325] ata5.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Dec 13 08:27:45 grimripper-desktop kernel: [ 825.485336] ata5.00: irq_stat 0x40000001
Dec 13 08:27:45 grimripper-desktop kernel: [ 825.485344] ata5.00: failed command: READ DMA
Dec 13 08:27:45 grimripper-desktop kernel: [ 825.485359] ata5.00: cmd c8/00:00:00:00:00/00:00:00:00:00/e0 tag 28 dma 131072 in
Dec 13 08:27:45 grimripper-desktop kernel: [ 825.485359] res 51/04:00:00:00:00/00:00:00:00:00/e0 Emask 0x1 (device error)
Dec 13 08:27:45 grimripper-desktop kernel: [ 825.485367] ata5.00: status: { DRDY ERR }
Dec 13 08:27:45 grimripper-desktop kernel: [ 825.485373] ata5.00: error: { ABRT }
Dec 13 08:27:45 grimripper-desktop kernel: [ 825.485537] ata5.00: configured for UDMA/133
Dec 13 08:27:45 grimripper-desktop kernel: [ 825.485551] ata5: EH complete
我还发现了一些其他的东西,类似于 ddrescue,但从其发生的情况来看,它似乎有点毫无意义,而且可能会花费很长时间。
有什么方法可以恢复该驱动器上的数据吗?
编辑 2021-12-17
有用!也许吧?在多次轻敲(如 confused 的回答)、旋转、倒置(如 davidgo 链接的问题中所述)和反向运行 ddrescue(如 davidgo 建议的那样)之后,ddrescue 似乎正在从驱动器读取数据。或者也许是我在开始运行 ddrescue 的前一天晚上牺牲的 Lidl 鸡柳起了作用。
GNU ddrescue 1.19
Press Ctrl-C to interrupt
rescued: 4858 GB, errsize: 0 B, current rate: 55705 kB/s
ipos: 3142 GB, errors: 0 B, average rate: 35796 kB/s
opos: 3142 GB, run time: 1.57 d, successful read: 0 s ago
Copying non-tried blocks... Pass 1 (backwards)
自从我中断了之前的 ddrescue 运行(在使用非反向 ddresue 进行敲击、旋转和倒置之后)后,就不再出现那些 syslog 和 kern.log 错误。
但现在它已经从 3T 驱动器读取了大约 4.9TB 的数据,从缓慢减少的 ipos 和 opos 来看,似乎还有 3.1T 可用?目标文件的大小显示为 7.3TiB,即使它位于 5.5T 驱动器上,并且使用了 4.5T。驱动器上的其他内容约为 62G。
我不知道这里发生了什么。它会尝试读取报告的目标文件大小 7.3 TiB,直到驱动器上没有更多空间吗?它会无限期地继续读取,还是以其他方式继续读取,直到没有更多空间?既然它现在似乎可以正常工作,我是否敢尝试安装它并正常读取它?
我甚至不记得 ddrescue 最初显示的 ipos 和 opos 是什么,所以我只能根据这些变化的程度来估计这可能需要多长时间或可能写入多少。但至少我周末还有两块鸡柳可以牺牲。
答案1
因为驱动器恢复产品非常昂贵,所以你绝对应该尝试物理产品,因为(对我来说)那种点击听起来像是物理问题。
可以尝试一些简单的身体方法:
只需完全切断电源,等到它冷却(10 分钟?)然后重新启动。
尝试一下冰箱,基本上你不会有什么损失。
如果两种方法都不起作用,请致电相关站点,看看他们是否能给您提供您可以接受的报价。
如果没有,试着轻轻敲击一下,也许有松动的东西可以(如果你幸运的话)放回原位。你有几百年的时间来完成 ddrescue,所以... ;-)
驱动器故障通常是突然发生的,而且总是很糟糕。现在太晚了,但如果您在 3 个地方备份,希望您永远都不需要再做这种事情。一次在本地,一次备份到副本,一次在异地,以防您的房子被烧毁。
答案2
有什么方法可以恢复该驱动器上的数据吗?
可能吧,这取决于您愿意投入的费用和精力……
这里更合适的问题可能是“您有办法自己恢复此驱动器上的数据吗?”答案很可能是否定的。您尝试过 ddrescue,但它无法读取或克隆驱动器,并且无法执行任何操作,并且日志中的错误表明您自己恢复任何数据的可能性很小。
您可以尝试一些常见的非传统方法,例如将驱动器冷藏/冷冻一段时间,然后尝试制作图像等,但我怀疑它们会失败。
如果数据具有价值(无论是金钱价值还是情感价值),您可以联系数据恢复公司,但请注意,这可能非常昂贵,从几百美元到几千美元不等。大多数信誉良好的数据恢复公司可以在检查驱动器后给您一个估价(当然要收取诊断费)。
还要注意的是,这款硬盘(3TB Seagate)的故障率特别高。