Ubuntu: Cannot perform SMART data and Self-Test on external hard drive



Question:

Right now my external drive does not has any errors but I just want to check manually to make sure.
As seen from image below, the option for SMART data and Self-Test is greyed out. Also see the details about the hard drive in image itself.

  1. I tried running gksu gnome-disks but still the option is greyed out.
  2. I ran sudo smartctl --all /dev/sdb --test=short -T permissive I got this error:

smartctl 6.4 2014-10-07 r4002 [x86_64-linux-3.19.0-15-generic] (local build) Copyright (C) 2002-14, Bruce Allen, Christian Franke, www.smartmontools.org

Read Device Identity failed: scsi error unsupported field in scsi command

=== START OF INFORMATION SECTION ===

Device Model: [No Information Found]

Serial Number: [No Information Found]

Firmware Version: [No Information Found]

Device is: Not in smartctl database [for details use: -P showall]

ATA Version is: [No Information Found]

Local Time is: Wed Jun 17 11:33:46 2015 IST

SMART support is: Ambiguous - ATA IDENTIFY DEVICE words 82-83 don't show if SMART supported.

SMART support is: Ambiguous - ATA IDENTIFY DEVICE words 85-87 don't show if SMART is enabled.

A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

enter image description here


Solution:1

I had the same problem. In my case, S.M.A.R.T had been working properly on the device for years while using Ubuntu 12.04, and then under Ubuntu 14.04 it happened exactly what you tell in the question.

The problem is related to a new kernel module that was introduced in Linux Kernel 3.15 called uas (USB Attached SCSI) (see release announcement).

That module is now the responsible of managing USB Mass Storage Devices. There is a thread where people complain that uas in kernel 3.15 is causing their USB devices to fail. Another one says that it might be the cause of S.M.A.R.T problems.

Fortunately, those problems seem to be gone at kernel 3.19 (which I am using), as my device is being detected correctly. Only the S.M.A.R.T problem remains.

To fix it, you need to disable the use of uas module for the given device.

Disable uas without rebooting

First, unplug all USB devices that might be using it. Then, remove the uas and usb-storage modules:

sudo modprobe -r uas  sudo modprobe -r usb-storage  

Then, load usb-storage module with a parameter that tells it to not use uas for a given device:

sudo modprobe usb-storage quirks=VendorId:ProductId:u  

VendorId and ProductId must be replaced by your device vendor and product id, which can be obtained with lsusb command (they are the characters after ID).

For example, I have the following device:

Bus 002 Device 011: ID 0bc2:3320 Seagate RSS LLC SRD00F2 [Expansion Desktop Drive]  

So my vendor id is 0bc2, and my product id is 3320. My command is:

sudo modprobe usb-storage quirks=0bc2:3320:u  

The last u tells usb-storage to ignore uas for the device (see source).

At this point, you can insert the USB device, and it will know not to use uas, making S.M.A.R.T work properly. You will see lines like these in dmesg when inserting the USB device:

usb 2-2: UAS is blacklisted for this device, using usb-storage instead  usb-storage 2-2:1.0: USB Mass Storage device detected  usb-storage 2-2:1.0: Quirks match for vid 0bc2 pid 3320: 800000  scsi host12: usb-storage 2-2:1.0  

Make the change permanent

The previous quirk will only last until you reboot the system. To make it persistent, you need to follow the steps described here, which I copy below:

First, create a file named ignore_uas.conf in the /etc/modprobe.d/ directory with the following content:

options usb-storage quirks=VendorId:ProductId:u  

As before, substitute VendorId and ProductId by your device vendor and product id obtained from lsusb.

Next, regenerate your inital ramdisk:

mkinitcpio -p linux  

Finally, reboot your computer.


Solution:2

External drives (via USB, I assume) are tricky with SMART. Some don't work at all. The smartmontools people posted a list of hard drives with command-line switches to add to smartctl (see fifth column).


For Seagate Expansion drives in particular, it looks like you need either -d sat or -d sat,12. Try the following:

sudo smartctl -d sat --all /dev/sdb  sudo smartctl -d sat,12 --all /dev/sdb  

If one of those works, it tells you which -d switch to add to your smartctl commands.


Solution:3

check the table with supported USB Devices ...

the switch -d sat indicates, that it's supposed to be a drive with SATA port.

there are specific switches for certain USB bridges - lsusb might show the concrete name. if the bridge controller might have a bad implementation - just try to connect it native through SATA instead of USB.

SCSI and ATA (according to the shell output) are probably not what you are looking for :)


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »