Why is usb file transfer so slow in 12.10?

I fear that your problem has no solution. USB slow transfer rates are a phantom in Ubuntu history, that comes and goes away from time to time. It happens because developers in the majority of cases are not able to reproduce this problem and then no solution will be released.

You can see a phenomenon of discussions about USB transfer rates being slow in Ubuntu (and its "cousins"). For example you can see this thread, this discussion and this other thread.

Some say that enabling or disabling Legacy USB Support into the BIOS solves the problem, although it seems as specific rare cases.

There is a bug reported at LaunchPad that presents a workaround for the issue, but as it is somewhat outdated I can't evaluate it's effectiveness nowadays. The workaround is presented by Jean Pierre at Bug #66115 he talks about the workaround in this comment and after in this more detailed comment.

A hot discussion is about the sync mode being enabled when Nautilus mounts a device, although beyond Konqueror (KDE equivalent to Nautilus) I haven't found anyone who got sync option disabled for Nautilus.

Some workarounds of doubtfully effectiveness are discussed in this Super User's Question.

If you got no luck until here I shall tell you that there exists no solution for the problem currently.

There is currently a bug reported in LaunchPad and you can mark it as a problem that affects you. If your hardware differs from the one that is reported from the bug you may add a comment reporting your affected hardware.


Despite the pessimism of Rodrigo's very thorough answer, I suspect the majority of these cases are simply due to the default behaviour of usbmount or equivalent hotplug handlers to force writing to disk instead of caching. You should check whether sync is enabled for the device, e.g, by looking for the corresponding line from cat /proc/mounts. It may look something like:

/dev/sdb1 /media/usb0 fuseblk,sync,rw,nosuid,nodev,noexec,noatime,user_id=0,group_id=0,allow_other,blksize=4096 0 0

Note the sync flag. You need to prevent this from being set. If you mount manually you should change the fstab entry as in this answer. If it's automounted have a look in the output from tail /var/log/syslog just after plugging in and look for a line like:

Jul 21 19:28:51 my-machine usbmount[3823]: executing command: mount -tntfs -sync,onoexec,nodev,noatime,nodiratime /dev/sdb1 /media/usb0

If it is being mounted by usbmount you can follow my advice in another answer and change the MOUNTOPTIONS line in /etc/usbmount/usbmount.conf from:

MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"

to

MOUNTOPTIONS="noexec,nodev,noatime,nodiratime"

Tags:

12.10