Avi*_*vio 45 ide external-hdd usb-drive smartctl
我在 USB 机箱中有一个非常旧的 2.5" IDE 驱动器,它会出现一些缓冲区 I/O 错误。我试图用它smartctl
来看看 SMART 怎么说,但我无法让它工作。作为root
,如果我只是写:
#> smartctl --all /dev/sde
Run Code Online (Sandbox Code Playgroud)
smartctl
答案:
/dev/sde: Unknown USB bridge [0x14cd:0x6600 (0x201)]
Smartctl: please specify device type with the -d option.
Run Code Online (Sandbox Code Playgroud)
因此,我尝试-d TYPE
了帮助摘要中的所有可用方法,并通过以下方式获得了最佳结果:
#> smartctl --all -d scsi /dev/sde
Run Code Online (Sandbox Code Playgroud)
输出:
Vendor: IC25N030
Product: ATMR04-0
User Capacity: 30,005,821,440 bytes [30,0 GB]
Logical block size: 512 bytes
scsiModePageOffset: response length too short, resp_len=4 offset=4 bd_len=0
>> Terminate command early due to bad response to IEC mode page
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.
Run Code Online (Sandbox Code Playgroud)
如果我还添加-T permissive
最后一行替换为:
Error Counter logging not supported
Device does not support Self Test logging
Run Code Online (Sandbox Code Playgroud)
似乎只有少数型号的 USB 外壳得到了smartmontools
. 是否有我遗漏的东西,或者只是设备实现了没有任何计数器的古老版本的 SMART(因此几乎没用)?
Tim*_*imo 52
有一个独立于供应商的 SAT(SCSI/ATA 传输)标准,但 AFAIK 这在(更便宜的)网桥上并没有得到广泛支持。
您可以smartctl
使用以下-d
选项选择多个供应商特定的 ATA 直通命令:
-d TYPE, --device=TYPE
Specify device type to one of: ata, scsi, sat[,N][+TYPE],
usbcypress[,X], usbjmicron[,x][,N], usbsunplus, marvell,
areca,N, 3ware,N, hpt,L/M/N, megaraid,N, cciss,N, auto, test
Run Code Online (Sandbox Code Playgroud)
哪里-d sat
是 SAT 兼容设备。
该USB设备支持列表设备和它们的命令行选项,因此,如果你得到一个USB控制器的设备之一,那里列出所支持的,你必须把事情工作的一个更好的机会。
Ale*_*ios 10
USB SMART 通常要么是不可能的,要么是通过(桥接)供应商特定的命令完成的,因此没有一种方法可以完成任务。smartctl
了解一些特定的桥接芯片。检查联机帮助页以获取列表。
这太可怕了,但是在磁盘上访问 SMART 的唯一 100% 可靠的方法是将其从桥接器上拔下并将其粘贴在适当的主机适配器上(如板载 SATA 控制器或 eSATA 端口)。
使用现代操作系统抽象,很容易忘记这些存储总线在内部有何不同。
没有合适的值-d
。
问题是您使用的是 SATA?USB 大容量存储桥接器,而 USB 大容量存储没有标准方式来请求 ATA/SATA SMART 数据。因此,控制器要么无法获取数据,要么无法通过某些特定于供应商的方式获取数据。smartctl
知道其中的一些;示例包括usbjmicron
和usbsubplus
。
因此,如果您的 USB 桥接器不是它所知道的桥接器之一(并且不使用完全相同的供应商特定命令),smartctl
则无法读取数据。