Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I have a very old 2.5" IDE drive inside a USB enclosure that gives some buffer I/O error. I tried to use smartctl to see what SMART says about it, but I can't manage to make it work. Being root, if I just write:

#> smartctl --all /dev/sde

smartctl answers:

/dev/sde: Unknown USB bridge [0x14cd:0x6600 (0x201)]
Smartctl: please specify device type with the -d option.

So I've tried every -d TYPE available in the help summary, and the best result is achieved with:

#> smartctl --all -d scsi /dev/sde

that outputs:

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.

If I also add -T permissive the last line is replaced with:

Error Counter logging not supported
Device does not support Self Test logging

It seems that just a few models of USB enclosures are officially supported by smartmontools. Is there something that I'm missing or simply the device implements an archaic version of SMART without any counters (and hence almost useless)?

share|improve this question
    
For those arriving from Google: Check out the -d options, specifically -d sat, and look at the list of supported devices. Quite a lot of USB adapters will work with SMART. –  Josh Jul 19 at 17:46

3 Answers 3

up vote 6 down vote accepted

SMART over USB is generally either not possible, or is done with (bridge) vendor-specific commands, so there's no one way to get things done. smartctl knows about a few specific bridge chips. Check the manpage for a list.

This is horrible, but the only 100% reliable way to access SMART on a disk is to unplug it from the bridge and stick it on a proper host adaptor (like an on-board SATA controller or eSATA port).

With modern OS abstraction it's so easy to forget just how different these storage buses are internally.

share|improve this answer
    
Official documentation disagrees with you - sourceforge.net/apps/trac/smartmontools/wiki/USB –  valentt May 26 at 16:28

There isn't an appropriate value of -d.

The problem is that you're using a SATA↔USB mass storage bridge, and USB mass storage doesn't have a standard way to request ATA/SATA SMART data. So instead the controller has either no way or some vendor-specific way to get the data. smartctl knows a few of these; examples include usbjmicron and usbsubplus.

So, if your USB bridge isn't one of the ones it knows about (and doesn't use exactly the same vendor-specific commands), smartctl just can't read the data.

share|improve this answer
    
Curious. Then what external casing (or other solution) could I then use to be able to read SMART data? I can't just plug a Mac OS X disk onto my HP laptop. And I have no place for the 2.5" disk in my desktop computer. –  landroni Jan 17 at 0:11
3  
@landroni You can use a 2.5" to 3.5" adapter to put it in your desktop computer. Or if your computer has eSATA, use that (with an eSATA enclosure + adapter) Or you can look for an enclosure that uses one of the USB chips that smartctl supports. AFAIK, there aren't any better answers :-( ... but feel free to wait and hope someone else on the site knows a better one. –  derobert Jan 17 at 0:37
    
Thanks! Very useful. I'll be waiting for further input before accepting your answer, but this already puts me on the right track (specifically the 2.5" to 3.5" adapter). –  landroni Jan 17 at 2:04

There is a vendor independent SAT (SCSI/ATA transfer) standard, but AFAIK this is not widely supported on (cheaper) bridges.

There are several vendor specific ATA pass-through commands that you can select with smartctl with the -d option:

-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

where -d sat is for SAT compatible devices.

The USB page list devices and their commandline options, so if you get a USB controller with one of the devices listed there as supported, you have a better change of getting things to work.

share|improve this answer
1  
This solves my question (see UPDATE1 to the OP). It seems that even cheapish bridges like mine support SAT. Thanks! –  landroni Jan 17 at 15:28
    
Yes using "sudo smartctl -d sat -a /dev/sdb" works on mine USB enclosure, and there are other suggestions on official wiki - sourceforge.net/apps/trac/smartmontools/wiki/USB –  valentt May 26 at 16:29
    
sudo smartctl -i -d sat /dev/sdf tested and approved with a JBOD enclosure: icy box IB-3640SU3. –  ibizaman Jun 9 at 13:16
    
Now it's at: smartmontools.org/wiki/Supported_USB-Devices –  landroni Jul 8 at 19:36

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.