ide-to-usb 外壳内外部硬盘上的 smartctl

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控制器的设备之一,那里列出所支持的,你必须把事情工作的一个更好的机会。

  • 这解决了我的问题(请参阅 OP 的 UPDATE1)。似乎即使像我这样的廉价桥梁也支持“SAT”。谢谢! (4认同)
  • 是的,使用“sudo smartctl -d sat -a /dev/sdb”适用于我的 USB 机箱,官方 wiki 上还有其他建议 - http://sourceforge.net/apps/trac/smartmontools/wiki/USB (3认同)
  • `sudo smartctl -i -d sat /dev/sdf` 使用 JBOD 外壳进行测试和批准:[冰盒 IB-3640SU3](http://www.raidsonic.de/en/products/details.php?we_objectID=8248 )。 (2认同)

Ale*_*ios 10

USB SMART 通常要么是不可能的,要么是通过(桥接)供应商特定的命令完成的,因此没有一种方法可以完成任务。smartctl了解一些特定的桥接芯片。检查联机帮助页以获取列表。

这太可怕了,但是在磁盘上访问 SMART 的唯一 100% 可靠的方法是将其从桥接器上拔下并将其粘贴在适当的主机适配器上(如板载 SATA 控制器或 eSATA 端口)。

使用现代操作系统抽象,很容易忘记这些存储总线在内部有何不同。

  • 官方文档不同意你 - http://sourceforge.net/apps/trac/smartmontools/wiki/USB (2认同)

der*_*ert 7

没有合适的值-d

问题是您使用的是 SATA?USB 大容量存储桥接器,而 USB 大容量存储没有标准方式来请求 ATA/SATA SMART 数据。因此,控制器要么无法获取数据,要么无法通过某些特定于供应商的方式获取数据。smartctl知道其中的一些;示例包括usbjmicronusbsubplus

因此,如果您的 USB 桥接器不是它所知道的桥接器之一(并且不使用完全相同的供应商特定命令),smartctl则无法读取数据。

  • @landroni 您可以使用 2.5" 到 3.5" 的适配器将其放入台式计算机中。或者,如果您的计算机具有 eSATA,请使用它(使用 eSATA 机箱 + 适配器)或者您可以寻找使用 smartctl 支持的 USB 芯片之一的机箱。AFAIK,没有任何更好的答案:-(...但请随时等待并希望网站上的其他人知道更好的答案。 (3认同)