smartctl on external hdd inside ide-to-usb enclosure
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 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
-d sat is for SAT compatible devices.
The USB Device Support lists 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 chance of getting things to work.
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.
There isn't an appropriate value of
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
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.