因此,我有一个 USB 硬盘,它会自动挂载并通过快照用于每小时、每日、每周、每月的全盘快照。
看来是失败了。如果可以恢复,我对尝试完全重新格式化持怀疑态度,因为这会丢失所有旧备份。
语境
操作系统是Linux Mint 18.1。该驱动器是 WD MyPassport。使用 USB 驱动器的唯一原因是我已经拥有它 - 我不倾向于拔掉它。
我最近更改了插入的电源板,这是最近唯一可能导致断电的事件 - 不过,当我这样做时,计算机已关闭。之后我在启动时遇到了一些问题,搜索似乎表明可以通过短路主板上的 CLR CMOS 引脚来重置 BIOS 来解决问题。显然,不知何故,可能存在电源问题。此后,我在通过紧急恢复终端启动时仍然遇到问题,直到我从我的fstab
.
尝试诊断
(所有带有 的命令sudo
)
fdisk -l /dev/sdb
产生fdisk: cannot open /dev/sdb: Input/output error
blkid /dev/sdb
什么也不输出。
fsck /dev/sdb
输出
fsck from util-linux 2.27.1
e2fsck 1.42.13 (17-May-2015)
fsck.ext2: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdb
Could this be a zero-length partition?
ls /dev
列表sdb
尝试通过 UUID 挂载它会产生mount: can't find UUID=83dbb817-b194-4c83-bb3f-9b67163e1c5c
尝试在不注释驱动器的情况下启动计算机,fstab
导致绿点启动画面持续很长时间,最终变成橙色并产生各种错误消息。我转录的唯一一个以 开头blk_update_request: critical medium error
。
当我在它完成关闭之前关闭时,我得到以下终端屏幕:
Linux Mint 18.1 Serena dt tty 1
dt login: [ 5840.759433] blk_update_request: critical medium error, dev sdb, sector 0
[ 5840.759523] Buffer I/O error on dev sdb, logical block 0, async page read
这两条错误消息随着时间戳的增加而重复(缓慢地,每条错误消息之间有很大的延迟)多次,直到机器最终关闭。第二次显示该消息之前的间隔约为。 17秒。没有再拍到照片,但它可能又重复了六次。这些大致也是尝试启动时出现的错误。
我刚刚注意到驱动器上的小灯不断闪烁,并且当计算机关闭时驱动器不断发出轻微的呼呼声。我不记得它正常工作时是否是这种情况。
尝试过smartctl
:
~ $ sudo smartctl -i -A /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.8.0-56-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Elements / My Passport (USB, AF)
Device Model: WDC WD20NMVW-11AV3S4
Serial Number: WD-WX11E23AAA87
LU WWN Device Id: 5 0014ee 2b36180eb
Firmware Version: 01.01A01
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 5200 rpm
Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS-2 (minor revision not indicated)
SATA Version is: SATA 3.0, 3.0 Gb/s (current: 3.0 Gb/s)
Local Time is: Wed Jun 21 22:50:33 2017 EDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 207
3 Spin_Up_Time 0x0027 222 216 021 Pre-fail Always - 3900
4 Start_Stop_Count 0x0032 099 099 000 Old_age Always - 1664
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 185 185 000 Old_age Always - 248
9 Power_On_Hours 0x0032 094 094 000 Old_age Always - 4855
10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 182
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 56
193 Load_Cycle_Count 0x0032 199 199 000 Old_age Always - 5196
194 Temperature_Celsius 0x0022 126 105 000 Old_age Always - 26
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 3
198 Offline_Uncorrectable 0x0030 100 253 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 100 253 000 Old_age Offline - 0
dmesg
粘贴箱:这里
答案1
部分答案:以下是第一次尝试访问磁盘时的日志消息:
[ 19.614242] sd 6:0:0:0: [sdb] 3906963456 512-byte logical blocks: (2.00 TB/1.82 TiB)
[ 19.614484] sd 6:0:0:0: [sdb] Write Protect is off
[ 19.614485] sd 6:0:0:0: [sdb] Mode Sense: 47 00 10 08
[ 19.614724] sd 6:0:0:0: [sdb] No Caching mode page found
[ 19.614734] sd 6:0:0:0: [sdb] Assuming drive cache: write through
这些是驱动器初始化的正常消息。但10秒后(可能是超时时间):
[ 38.037295] sd 6:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 38.037297] sd 6:0:0:0: [sdb] tag#0 Sense Key : Medium Error [current]
[ 38.037298] sd 6:0:0:0: [sdb] tag#0 Add. Sense: Unrecovered read error
[ 38.037299] sd 6:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 38.037300] blk_update_request: critical medium error, dev sdb, sector 0
所以从一开始,第一次读取就失败了,而且那次读取似乎是针对分区表的。这意味着在最好的情况下,分区表所在的块有坏块。您还记得有关分区表的任何事情吗?如果整个磁盘只有一个分区,恢复应该很容易。
在最坏的情况下,它无法读取任何内容,因此第一步是运行badblocks /dev/sdb
并查看有多少个读取错误。
如果只是分区表,安全的选择(如果数据确实有价值)是获取第二个硬盘,使用dd_rescue
或ddrescue
其他方式尝试读取每个块,查看读取错误在哪里(仅分区表或更多) ?),在损坏的硬盘副本上创建一个新分区,然后看看可以恢复什么。
稍微不安全的选择是仅使用(MBR)或(GPT)创建一个新分区fdisk
,sfdisk
具体sgdisk
取决于您创建分区表的方式以及您是否还记得它。重新分配的扇区数为零,因此应该有备用扇区来替换损坏的扇区。不在分区中创建新的文件系统,这将破坏您的旧数据。挂载分区只读,看看你能得到什么。
不过,我将来不会使用此驱动器来备份您的数据。