Ubuntu Linux: Is your external usb drive slow?

I don’t know when this happened but my external USB drives were running really slow. Reading RAW images off them took ages, backups took forever, and moving files back and forth was plain slow.

I use two Seagate FreeAgent external drives. They’re both USB 2 devices so should sustain more than the maximum 1MB/s I was seeing. I decided to go looking. First stop was /var/log/syslog where I found the following:

usb 2-1.2.4.4: new full speed USB device using uhci_hcd and address 13
usb 2-1.2.4.4: not running at top speed; connect to a high speed hub

To cut a long story short, after a few searches I found bug 66115 where the same problem is described. Unfortunately the ticket has since been closed but the work around discovered by Jean Pierre Rupp works for me too. I haven’t modified any files in /etc/ but unloading ehci_hcd and uhci_hcd and reloading in the correct order worked for me:

rmmod ehci_hcd
rmmod uhci_hcd
modprobe ehci_hcd
modprobe uhci_hcd

Now I get a very respectable 15-20MB/s when using rsync to transfer files from my internal drive and reads are super fast:

hdparm -tT /dev/sdi1

/dev/sdi1:
Timing cached reads: 3964 MB in 2.00 seconds = 1985.16 MB/sec
Timing buffered disk reads: 82 MB in 3.03 seconds = 27.08 MB/sec

Next on the TODO list is making sure the modules are loaded in the correct order on reboot. Time to dive into /etc

Wolverine SixPac and Linux

The 20 GB SixPac Media Reader & Storage Drive is an external drive with integrated card readers for 6 of the most common Flash cards. It works fine with the CF and SD cards I’ve thrown at it, but I couldn’t get Linux to recognise it. The partition table of the device isn’t a standard drive table, instead being more like a floppy which is fine for Windows but fdisk returned some strange results!
None of the partitions were aligned correctly, and the partition type was all wrong: originally it came up as “OnTrack DM6” but after reformatting in Windows appeared as a Novell drive!

Device Boot Start End Blocks Id System
/dev/sdf1 ? 379950 937327 570754815+ 72 Unknown
Partition 1 does not end on cylinder boundary.
/dev/sdf2 ? 82368 1027695 968014120 65 Novell Netware 386
Partition 2 does not end on cylinder boundary.
/dev/sdf3 ? 913029 1858355 968014096 79 Unknown
Partition 3 does not end on cylinder boundary.
/dev/sdf4 ? 1409025 1409052 27749+ d Unknown
Partition 4 does not end on cylinder boundary.

Partition table entries are not in disk order

A quick email to Wolferine support found the simple answer – treat the drive like you would a “superfloppy” and mount the whole device somewhere:

mount -t vfat /dev/sdf /mnt/hd

That works a treat and I get access to my new 20GB removable drive!
Here’s my mini-review. If you’re thinking of buying, Ritz Camera have it for $150 right now which seems like a good deal.
Be warned that the interface is very simple. There’s no indication of how much space has been used, but when backing up full CF cards it’s easy to calculate space used. It will warn when space is exhausted but there’s no way of deleting data without hooking it up to a PC. It beeps when the copy is completed. Even using USB 2.0, copying gigs of data takes a while so don’t rely on it as a primary storage device.
Battery life isn’t great. It uses an internal rechargable battery that lasts about an hour. Reading from a 1GB CF card can take more than 10 minutes so if you’re nowhere near a power plug you might be in trouble. You have to contact the manufacturer for replacement batteries.
In conclusion, it worked very well as storage for my 6GB of photos from Chicago and I’m happy with it!