我最近尝试使用以下命令检查硬盘驱动器的停机时间:
sudo hdparm -I /dev/sdb | grep level
并得到错误:
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
驱动器可以很好地读取和写入数据,并且也可以在启动时安装。我只是无法在此驱动器上运行此命令而不会出现错误
这是什么意思,我该如何解决这个问题?
我的 Seagate 备份纤薄型和 WD black SCSI 驱动器也有类似的问题。我也在使用
hdparm
。对我有用的是sdparm
实用程序。安装
获取所有参数/设置
这里
-a
获取所有输出字段并-l
获取长输出,即输出字段的解释。/dev/sdX
是有问题的驱动器(类似于/dev/sda
)。使用以下命令获取减速计时器和
STANDBY
标志:这里的spindown时间
SCT
以毫秒为单位,STANDBY
flag是spindown timer on/off (1/0) switch如果您的输出类似于:
这意味着您的设备未设置为降速。
如果您愿意,可以使用以下命令更改当前会话的这些设置:
这些设置将在重新启动时丢失。
永久更改:
这里我选择了 6 秒(6000 毫秒)但是你可以根据你的要求来选择。
如果由于某种原因,您无法保存设置,则可以将其放入您
/etc/rc.local
的设置中以在启动时设置:我希望这有帮助。
此问题通常是由 USB-SATA 桥接实现引起的,并且应该仅在 USB 连接的磁盘盒中可见。
如果是外部 USB 磁盘,系统需要通过 SAT(SCSI / ATA 转换)使用 UAS(USB Attached SCSI)协议与机箱内的 SATA 驱动器通信,以通过 USB 上的 SCSI 发送 ATA 命令。之所以如此复杂,是因为历史原因。
在 USB → UAS → SCSI → SAT → SATA 链中的某个地方,某些硬件的实现不正确。通常所有这些都是由外壳内称为 USB-SATA 桥接器的单个微芯片完成的,一些众所周知的变体是 ASM1051、ASM1053 和 ASM1153。其中,已知 ASM1051 存在故障,因此应避免使用包含该芯片的任何硬件使用 UAS。ASM1053 和 ASM1153 可能工作也可能不工作,具体取决于芯片内部的实际固件(允许制造商定制固件,参考实现可以正常工作)。例如,希捷制造的许多机箱都使用带有定制固件的 ASM1153,并且即使同一芯片在参考固件下可以正常工作,某些 ATA 命令也会出现问题。(例如,只要操作系统从不发送任何 12 位或 16 位命令,希捷的某些机箱就可以工作。Linux
usb_storage
为此目的支持 quirkt
。)最终用户通常无法更换固件,因此如果您的芯片/固件损坏,您唯一的选择就是向制造商投诉。在 Seagate 的情况下,他们通过声明他们仅正式支持 Windows 和 OS X 来“解决”问题。希捷现在正与 Linux 社区正式合作,所以也许他们的产品将来会真正起作用。找出桥接芯片的唯一真正方法是拆除外壳并检查实际微芯片中的标记。
更新: “Seagate Backup Plus Hub”机箱的 USB-SATA 桥接器工作正常,UAS 工作正常(请注意,这与“Seagate Backup Plus”不同的产品!)但是,由于 Seagate 机箱的不良历史记录,Linux 内核应用quirk
t
默认情况下会阻止此机箱使用所有 SATA 功能。您可以使用以下命令启用完整的 SATA 支持,包括 SMART 功能:注意结尾的冒号,之后什么都没有 - 它禁用了所选供应商的所有内置怪癖:产品。
lsusb
如果需要,请检查您的供应商和产品 ID 。如果您的设备有足够的漏洞,您可能需要完全禁用 UAS 支持。这可以通过
u
怪癖来完成。例如,如果我想禁用 Seagate Backup Plus Hub 上的 UAS 支持,我将以 root 身份运行以下命令:在那之后,外部磁盘只会使用较慢但通常可以正常工作的 USB 存储设备功能,并且事情最终会工作......慢慢地。如果您只需要传输一些大文件,则差异还不错。如果您有很多小文件,那么拥有工作 UAS 支持之间的差异可能会超过 10 倍的速度差异。
看起来你的驱动控制器不支持这种查询方法,并不是所有的 USB SATA 芯片组都是一样的。您没有说您使用的是什么型号的驱动器或控制器,因此很难在这里提供更多建议。
您可以通过插入另一个 USB 控制器或使用具有相同控制器的不同驱动器或更好地直接通过 SATA 来测试这一点。
3TB 驱动器对于某些 usb2 时代的控制器来说可能太大了,所以我建议使用信誉良好的 usb3 sata 桥接器,它也会快得多。
上述和/或 modprobe 调整无效的系统/设备的附加信息(例如 Raspberry Pi 3):
怪癖必须添加到引导参数中。对于 RPi 3/Raspbian,启动参数位于文件
/boot/cmdline.txt
.就我而言,我需要清除设备的 quirks 标志,因此我将其添加到
/boot/cmdline.txt
:usb_storage.quirks=0bc2:a0a4:
这解决了我的问题,希望它可以帮助别人