我有一个 WD P10 外置 USB 磁盘,在 macOS 或 Windows(另一台 PC 上)上无法检测到。为了排除故障,我从 Live USB 启动了 Debian(LMDE),并再次连接了 WD 驱动器。它没有被检测到或安装。内容如下dmesg -wH
:
[ 1305.848487] usb 4-4: new SuperSpeed USB device number 8 using xhci_hcd
[ 1305.869379] usb 4-4: New USB device found, idVendor=1058, idProduct=262f, bcdDevice=50.02
[ 1305.869393] usb 4-4: New USB device strings: Mfr=2, Product=3, SerialNumber=1
[ 1305.869397] usb 4-4: Product: Game Drive
[ 1305.869400] usb 4-4: Manufacturer: Western Digital
[ 1305.869403] usb 4-4: SerialNumber: 00000000000000
[ 1305.872247] usb-storage 4-4:1.0: USB Mass Storage device detected
[ 1305.875321] scsi host7: usb-storage 4-4:1.0
[ 1306.881494] scsi 7:0:0:0: Direct-Access WD Game Drive 5002 PQ: 0 ANSI: 6
[ 1306.881988] sd 7:0:0:0: Attached scsi generic sg2 type 0
[ 1306.883093] sd 7:0:0:0: [sdc] Spinning up disk...
[ 1307.904413] .........ready
[ 1316.097814] sd 7:0:0:0: [sdc] Very big device. Trying to use READ CAPACITY(16).
[ 1316.098549] sd 7:0:0:0: [sdc] 7813969920 512-byte logical blocks: (4.00 TB/3.64 TiB)
[ 1316.098558] sd 7:0:0:0: [sdc] 4096-byte physical blocks
[ 1316.099943] sd 7:0:0:0: [sdc] Write Protect is off
[ 1316.099949] sd 7:0:0:0: [sdc] Mode Sense: 47 00 10 08
[ 1316.101378] sd 7:0:0:0: [sdc] No Caching mode page found
[ 1316.101384] sd 7:0:0:0: [sdc] Assuming drive cache: write through
[ 1352.000492] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1357.376496] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1357.584400] usb 4-4: device not accepting address 8, error -62
[ 1363.008491] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1368.384501] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1368.592421] usb 4-4: device not accepting address 8, error -62
[ 1374.016518] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1379.392520] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1379.600423] usb 4-4: device not accepting address 8, error -62
[ 1385.024482] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1390.400527] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1390.608418] usb 4-4: device not accepting address 8, error -62
[ 1390.624755] usb 4-4: USB disconnect, device number 8
[ 1390.644397] blk_print_req_error: 2 callbacks suppressed
[ 1390.644406] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644422] buffer_io_error: 2 callbacks suppressed
[ 1390.644424] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644527] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644542] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644580] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644587] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644610] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644616] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644629] ldm_validate_partition_table(): Disk read failed.
[ 1390.644660] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644663] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644675] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644678] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644691] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644694] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644706] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644709] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644714] Dev sdc: unable to read RDB block 0
[ 1390.644724] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644727] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644739] device offline error, dev sdc, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 1390.644742] Buffer I/O error on dev sdc, logical block 0, async page read
[ 1390.644784] sdc: unable to read partition table
[ 1390.644844] sd 7:0:0:0: [sdc] Attached SCSI disk
[ 1396.032462] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1401.408460] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1401.616427] usb 4-4: device not accepting address 9, error -62
[ 1407.040457] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1412.416466] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1412.624428] usb 4-4: device not accepting address 10, error -62
[ 1412.632542] usb usb4-port4: attempt power cycle
[ 1418.816454] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1424.192454] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1424.400426] usb 4-4: device not accepting address 11, error -62
[ 1429.824465] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1435.200470] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 1435.408388] usb 4-4: device not accepting address 12, error -62
[ 1435.416544] usb usb4-port4: unable to enumerate USB device
(驱动器的序列号已正确检测到,但我已在上面将其编辑掉)。
据我所知,它尝试从驱动器获取分区信息,但失败了。因此,它仍尝试“附加”磁盘(可能允许用户格式化驱动器),但由于我无法理解的原因,再次失败。
当我在线搜索Dev sdc:无法读取 RDB 块 0时,Red Hat 的此资源显示:
Dev sdx:无法读取 RDB 块 0消息表示系统无法从磁盘中提取硬磁盘块 (RDB) 信息。RDB 存储磁盘的几何形状(柱面、磁头、扇区)和分区信息。
但维基百科说:
在计算中,硬盘块 (RDB) 是 Amiga 系列计算机硬盘上的块,用于存储磁盘分区和文件系统信息。IBM PC 上与 Amiga 的 RDB 对应的是主引导记录 (MBR)。
从 Red Hat 的说法来看,RDB 听起来很像是 HDD 固件的一部分,这意味着对于没有专门软件的外行人来说,修复它可能非常困难。但如果它是 MBR 或文件系统的一部分,我们可以使用一些工具来修复它(如果我能以某种方式告诉操作系统如何成功连接磁盘)。
因此我产生了疑问 - Linux 中的硬盘块 (RDB) 是什么,它可以修复吗?例如,Amiga 有rdbtool - Linux 中是否有类似的东西?
收到该
[sdc] Assuming drive cache: write through
消息后,内核会尝试检测磁盘上使用的分区方案,并读取分区表。但是,当内核尝试设置设备以供使用以读取磁盘块 #0 时,USB 层会报告设备超时。设置磁盘 () 时反复超时device is not accepting address...
导致 USB 层拒绝该设备,将其视为 USB 断开连接。显然,负责分区检测的内核代码并不关心其读取尝试失败的原因:如果特定分区方案的检测例程报告失败,则内核将尝试检测它知道的任何其他分区方案,并且只有在尝试完所有分区方案后才会放弃。
该消息
ldm_validate_partition_table(): Disk read failed
表明内核此时正在尝试检测 Windows LDM 分区( Windows 术语中的动态磁盘)。这也失败了,因为读取磁盘的尝试失败了。该消息
Dev sdc: unable to read RDB block 0
表明内核现在已经尝试检测所有适用于您的系统架构的分区方案(对于 PC,这些方案将是 MBR、GPT、上面提到的 LDM 和 Solaris/Unixware 磁盘片),并且正在处理更深奥的分区方案:具体来说,在这里它正在寻找 Amiga 风格的分区表并且失败,同样是因为尝试读取磁盘块 #0 失败。在经典的 PC MBR 分区方案中,块 #0 称为主引导记录(或简称为 MBR);因为这种分区方案没有其他知名的名称,所以整个方案被称为“MBR 分区”。
在 Amiga 风格的分区中,磁盘块 #0 称为刚性磁盘块,简称 RDB。它不是固件的一部分:它只是 Amiga 特有的一种描述磁盘及其分区的方式,与所用的 AmigaOS 版本无关。它是在磁盘由 Amiga 磁盘分区工具分区时写入的。
简而言之,涉及 LDM 和 RDB 的错误消息对于您的情况来说并不重要:它们只是内核尝试并未能找到它所知道的任何类型的分区表的副作用。由于 Amiga 分区检测代码最初是为 Linux 的 Amiga 端口编写的,因此它在错误消息中使用了 Amiga 术语。
您最直接的问题是您的磁盘似乎已死:它不响应任何读取尝试,甚至不响应对其进行访问的设置。这是某种硬件或磁盘固件问题。如果磁盘一直无法设置 USB 通信,您将无法使用任何常规软件从中恢复数据。
在评论中,您提到此外置磁盘有一个直接 USB 接口:没有可以断开的 USB 转 SATA 转换器来允许使用 SATA 接口。这将使数据恢复变得更加困难。
您需要一些可以绕过 USB 连接并允许您直接与控制器芯片通信的磁盘制造/QA 工具,这听起来像是数据恢复专业人员的工作。
由于该问题出现在不同的 PC 上,这听起来像是硬件问题,无法仅通过软件工具解决。请记住,这涉及多个组件:
USB 控制器 – USB 电缆 – USB SATA 桥接器 – SATA 连接器 – 硬盘
通过使用不同的 PC,您已经掌握了 USB 控制器。下一步是尝试不同的 USB 电缆。
我有一些驱动器的 USB-SATA 桥接器(我猜是 SATA)出现故障。在这种情况下,您可以小心地打开外部磁盘的外壳,取出实际的磁盘并将其连接到 PC 的内部 SATA 连接器。
但是,更可能是磁盘本身无法启动。USB-SATA-Bridge 失去与磁盘的连接并自行关闭。这解释了“检测到 USB 大容量存储设备”、“正在启动磁盘...”、“USB 断开连接”的行为。