How to make the Seagate 2Tb usb hdd work in Linux

usb-drive

Summary:

I've just bought a Seagate 2Tb "expansion portable drive", model STEA2000400,
with USB 3 connection, formatted as ntfs. The documentation says "System
requirements: Windows 7 or 8" but I assume it should work with Linux (I really like the neat design of the drive).

My system is Live Knoppix 7.0.2 installed on hard drive, with kernel 3.3.7.

So far, the Seagate drive has only worked once, when I first plugged it in* (usb
3 slot). (*After boot). It automounted, and its files were displayed in the
pcmanfm file manager. By automount, I mean when the small window appears and
says something like "Do you want to open this device in file manager".

But since then, each time I plug it in, it doesn't work (it works OK in Windows
7). When I plug it in, sometimes it gets mounted by the system (even if the
automount dialogue doesn't appear), and sometimes it doesn't get mounted.

When it's not mounted, the dmesg command says

[ 9134.211695] sd 8:0:0:0: sense urb submission failure

and the message repeats continuously (with different "[…]" nos.) and repeats
across subsequent dmesgs and across logging out and in.

When I plug the drive in BEFORE booting, the system mounts the drive, and dmesg
gives the following message continuously (it gave the same continuous message
when I repeated the dmesg command):

[ 105.827668] sd 8:0:0:0: rejecting I/O to offline device

My humble questions are:

Could you tell me why the drive isn't working in Linux, and what I need to do
to get it working? I really like the neat design of the drive and would very much like to keep it and get it working.

Should I look for another usb hdd that specifically says it works with Linux?

Full Details:

Knoppix is a slightly customised version of Debian.

When the drive worked that first time, and its files were displayed in pcmanfm,
the mount command showed

/dev/sdb1 on /media/sdb1 type fuseblk (rw,nosuid,nodev,relatime,user_id=
1000,group_id=0,allow_other,blksize=4096)

AND dmesg showed

[ 3104.772532] usb 4-2: new SuperSpeed USB device number 2 using xhci_hcd
[ 3104.789326] usb 4-2: New USB device found, idVendor=0bc2, idProduct=231a
[ 3104.789336] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3104.789342] usb 4-2: Product: Expansion
[ 3104.789347] usb 4-2: Manufacturer: Seagate
[ 3104.789351] usb 4-2: SerialNumber: NA8PEPNV
[ 3104.791381] scsi8 : uas
[ 3104.793020] scsi 8:0:0:0: Direct-Access     Seagate  Expansion        0708
PQ: 0 ANSI: 6
[ 3104.793363] sd 8:0:0:0: Attached scsi generic sg2 type 0

Also when the drive worked that first time, and its files were displayed
in pcmnfm; about 15 minutes later, when I reselected the drive in pcmanfm, no
files were displayed, and pcmanfm said

"The specified directory is not valid".

I then opened the nautilus file manager, and when I selected the drive, nautilus
said

"Could not display /media/sdb1. Error: Error when getting information for file
/media/sdb1: Input/output error. Please select another viewer and try again."

On the occasion when I plugged the drive in BEFORE booting, and the system
mounted it, I can't remember if the automount dialogue appeared or not.

Best Answer

UAS is a method of transfer with less overhead using SCSI encapsulated into USB, but is prone to issues and incompatibilities between some hardware/vendor/firmware/os (pick among).

You should disable UAS because it's certainly the cause of incompatibility with your combination of hardware/os (also see later what I really mean).

You can use a blacklist to disable it only for known failing devices. This kernel documentation (look for usb-storage.quirks=) tells what are the options to work around various issues with USB storage.

Your device is identified as USB VID:PID 0bc2:231a, and the string :u is added to disable USB UAS.

Usually that would be by creating in /etc/modprobe.d/ a file called local-disable-seagate-uas.conf with this content:

options usb-storage quirks=0bc2:231a:u

Then something like update-initramfs -u and rebooting (unless you know how to and can remove some usb modules and then reload them) should be done.

Alternatively, if you can't write there (Live CD, chicken-and-eggs problem and so on...) or if usb-storage is compiled not as module, you have to add it as a kernel boot parameter. That parameter would then be:

usb-storage.quirks=0bc2:231a:u

Look at the Knoppix documentation (Boot options and controls) for how to do this.

Now once you confirm it fixes the issue, what you should really do is upgrade your OS with something more recent. Kernel 3.3 is way too old and unsupported anywhere and it's probable some UAS issues got fixed since then. Once you got a recent OS (eg: Debian 9, or Knoppix 8.1 to stay similar) you should try again, carefully, with and without this parameter and see what works best. Some problems can happen only under heavy load, talking from experience.

Related Question