USB External Hard Drive Resetting Problem
When backing up data to a 1 TB Toshiba Canvio external USB hard drive, the following
error messages were seen in /var/log/messages:
Mar 2 08:42:35 amnesia kernel: usb 8-2.3: reset high speed USB device using ehci_hcd and address 82
Mar 2 08:43:34 amnesia syslog-ng: last message repeated 12 times
Mar 2 08:43:35 amnesia kernel: usb 8-2.3: reset high speed USB device using ehci_hcd and address 82
Mar 2 08:44:34 amnesia syslog-ng: last message repeated 14 times
The file copying process then started to go bad, printing hundreds of error messages on the
screen saying something like:
cannot create regular file: read-only file system
Finally the interface froze and it was necessary to unplug the USB drive before it could be umounted.
After I plugged it back in and remounted it, it appeared to recover, and was fine for small backups,
but when I tried to copy the /home partition, the same problem started once again.
The problem only appears after several gigabytes have already been successfully copied from the same computer. The disk eventually becomes corrupt and cannot be read, and all the data on the disk are lost.
The following had no effect:
- It was not a cable issue, because the disk worked fine on another computer.
- It was not a defective or loose disk: I took the disk apart, cleaned the contacts, and re-seated the disk drive: same problem.
- Re-formatting the disk had no effect.
It was found that the problem started when the disk was plugged into the USB port on the monitor. Many monitors are connected to the PC by a long USB cable. Because these these portable disks are only supplied with a one-foot cable, connecting them to the monitor's USB port allows them to be conveniently placed on the desk instead of sitting on three Kleenex boxes stacked on the floor.
After re-formatting again with ext3 (
mkfs.ext3 /dev/sdb1), and
using only the USB port on the computer motherboard, copying was okay. Just to be sure,
I copied another 200 GB from various computers and found no problems.
This is a long-standing flaw in the Linux USB software, which fails to adjust the transfer speed when a long cable is used and signal degradation occurs.
Another solution that a user posted on the
Ubuntu site is to set
inq_timeout to a higher number, such as 6.
echo 6 > /sys/module/scsi_mod/parameters/inq_timeout