使用 SATA 转 USB 适配器时出现“读取容量 (10) 失败”和“检测密钥:非法请求”

使用 SATA 转 USB 适配器时出现“读取容量 (10) 失败”和“检测密钥:非法请求”

当我插入时,系统日志中这些错误消息的含义是什么?2.5 英寸旋转磁盘 SATA 驱动器知道作品,使用USB 转 SATA 适配器

Jun 25 16:08:07 hostname kernel: [181603.928983] scsi 6:0:0:0: Direct-Access     SABRENT                   2210 PQ: 0 ANSI: 6
Jun 25 16:08:07 hostname kernel: [181603.931640] sd 6:0:0:0: Attached scsi generic sg1 type 0
Jun 25 16:08:07 hostname kernel: [181603.938380] sd 6:0:0:0: [sdb] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
Jun 25 16:08:07 hostname kernel: [181603.938391] sd 6:0:0:0: [sdb] Sense Key : Illegal Request [current]
Jun 25 16:08:07 hostname kernel: [181603.938398] sd 6:0:0:0: [sdb] Add. Sense: Invalid command operation code
Jun 25 16:08:07 hostname kernel: [181603.939443] sd 6:0:0:0: [sdb] 0 512-byte logical blocks: (0 B/0 B)
Jun 25 16:08:07 hostname kernel: [181603.939449] sd 6:0:0:0: [sdb] 0-byte physical blocks
Jun 25 16:08:07 hostname kernel: [181603.942357] sd 6:0:0:0: [sdb] Test WP failed, assume Write Enabled
Jun 25 16:08:07 hostname kernel: [181603.943386] sd 6:0:0:0: [sdb] Asking for cache data failed
Jun 25 16:08:07 hostname kernel: [181603.943393] sd 6:0:0:0: [sdb] Assuming drive cache: write through
Jun 25 16:08:07 hostname kernel: [181603.944506] sd 6:0:0:0: [sdb] Optimal transfer size 33553920 bytes not a multiple of physical block size (0 bytes)
Jun 25 16:08:07 hostname kernel: [181603.948248] sd 6:0:0:0: [sdb] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
Jun 25 16:08:07 hostname kernel: [181603.948255] sd 6:0:0:0: [sdb] Sense Key : Illegal Request [current]
Jun 25 16:08:07 hostname kernel: [181603.948257] sd 6:0:0:0: [sdb] Add. Sense: Invalid command operation code
Jun 25 16:08:07 hostname kernel: [181603.960998] sd 6:0:0:0: [sdb] Attached SCSI disk 

具体来说:

[…] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[…] Sense Key : Illegal Request [current]
[…] Add. Sense: Invalid command operation code

该设备机械旋转良好,没有异常噪音,但没有检测到任何分区,因此它们不会显示在文件管理器中。

我认为这并不重要,但只是为了提供一些背景信息,它是一个在 Samsung Series 9 上运行的基于 Ubuntu 20.04 的发行版(基本操作系统 6.1 Jólnir)。

答案1

各种情况的结合导致了错误:

  • 根据 的输出sudo lshw -C bus,我的笔记本电脑有 USB 3.0 端口(我肯定已插入 SuperSpeed 端口之一),并且 根据维基百科,USB 3.0 只能提供 900 mA 电流至“超高速”设备
  • 我使用的 SATA 转 USB 3.1 适配器 (SabrentEC-331) 仅使用主机总线电源
  • 根据硬盘规格表(三星品牌的 Seagate Momentus ST750LM022),旋转电流为 1000 mA

USB 规格的迂腐细节并不那么重要,100 mA 供电不匹配是否会影响到真的在旋转过程中发挥作用;这只是一个暗示,表明设备没有获得足够的电量来正确初始化。事实上,当我改用另一种 (S)ATA 转 USB 适配器(带有用于主电源的电源块)时,问题就消失了。设备启动正常,没有错误,所有分区都出现在文件管理器中。

为了进行比较,当驱动器正常旋转时,设备初始化如下所示:

Jun 25 16:12:50 hostname kernel: [181886.610640] scsi 6:0:0:0: Direct-Access     ST750LM0 J9CCA04298       0001 PQ: 0 ANSI: 2 CCS
Jun 25 16:12:50 hostname kernel: [181886.611686] sd 6:0:0:0: Attached scsi generic sg1 type 0
Jun 25 16:12:50 hostname kernel: [181886.612554] sd 6:0:0:0: [sdb] 1465149168 512-byte logical blocks: (750 GB/699 GiB)
Jun 25 16:12:50 hostname kernel: [181886.613194] sd 6:0:0:0: [sdb] Write Protect is off
Jun 25 16:12:50 hostname kernel: [181886.613204] sd 6:0:0:0: [sdb] Mode Sense: 00 38 00 00
Jun 25 16:12:50 hostname kernel: [181886.613814] sd 6:0:0:0: [sdb] Asking for cache data failed
Jun 25 16:12:50 hostname kernel: [181886.613826] sd 6:0:0:0: [sdb] Assuming drive cache: write through
Jun 25 16:12:50 hostname kernel: [181887.068846]  sdb: sdb1 sdb2 sdb3 sdb4 sdb5 sdb6 sdb7 sdb8
Jun 25 16:12:50 hostname kernel: [181887.071252] sd 6:0:0:0: [sdb] Attached SCSI disk

这篇汤姆的硬件文章表明即使使用支持 USB 3.1 或 3.2 的笔记本电脑,我也会遇到同样的问题。

事实上,它只是一个具有较高电流消耗的旧设备,并且仅总线功率不足以初始化该设备。

相关内容