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"

Well, there are various reasons why USB transfer is slow:

  1. Size of the files being copied. ( the samller the files, the slower it gets)
  2. The speed of the USB stick.
  3. The way the USB stick is formatted.(NTFS, Fat32, or EXT4)

So if the stick is formatted as NTFS keep reading.

NTFS on Linux works a little different to most other filesystem drivers, and so data to be written to an NTFS filesystem actually goes through the CPU. For most filesystems, the CPU doesn't directly deal with the data to be written.

That's why writing to an NTFS formatted stick in Linux is slow, than writing to NTFS on Windows. So you could format your USB stick as Ext4 (Linux-only) or fat32 works both ways, but has a 4 GiB file size limitation.


I edited the /etc/usbmount/usbmount.conf on Ubuntu 15.10 server, removed the "sync" word from this line:

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

as mentioned before by Rodrigo Martins (big thx!).

It increased the write speed for a 480 mbps connected HDD from 2 Mbytes/sec to a constant 20 Mbytes/sec, ant it's constant and real, not "cached", not virtual speed. This drive writes about 30 Mbytes/sec on a Windows machine.