Why can't I copy a large number of files to my USB flash drive?
Pretty sure the drive is broken.
-
Is this a file system problem? No.
- Badblocks comes up clean.
- I had George try wiping the FAT partition table, then try formatting with ext2. He used Gnome's Disk Utility. Formats failed.
-
Is this a usb port/bus problem? No.
- George tried multiple ports with this drive, and said his motherboard has multiple buses, which he also took into account.
- George tried a known good 1 TB usb hard disk (moving parts style) on these same ports/buses and sucessfully copied large amounts of data.
-
Is this a usb driver problem? No.
- Same problems in Windows Vista.
- !!! It would be helpful to know from the driver's perspective if there is a difference between a usb flash disk and a usb sata disk.
-
Is the flash drive broken? Likely.
Evidence in favour:
- I/O errors in
/var/log/syslog
- I/O errors happen at a consistent location.
- The above steps.
- I/O errors in
Try the drive on a windows machine.
If it has the same problem on windows then this is not a ubuntu problem and is likely a hardware or firmware fault.
In which case I would send it back.
To me the following errors are the important ones.
[10897.385188] FAT: FAT read failed (blocknr 322) same error on blocknr 329
It shows me that their is either a failure of the device, or a corrupt FAT(file allocation table). Based on further information I would say the the actual hardware is at fault. This wiki section shows you the components of a flash drive. I would say that the flash memory controller or flash memory chip are at fault. If you can return the drive do so. If you still have the original packaging and warranty you should be able to get a replacement.
To get further information run the following to test for bad block and report verbosely put it into a file (badblocks.txt).
sudo fsck.vfat -Vtv /dev/[your_usb_dev] > badblocks.txt # was sdc in the log file
paste the badblocks.txt into your question so we can see. That command will mark all the bad block as unaccessible in the FAT and should stop the OS trying to write to those failed blocks. This should fix your problem.
To find your disk, that you need to put into the {/dev/[your_usb_dev]} run the command bellow. Please paste the contents of my_partitions.txt as well so we can see some more detail about your drive.
sudo fdisk -l > my_partitions.txt
One last note. 32bit FAT has a file limit of 4 GiB. Look right at the end of that section in the wiki article. So if you file is bigger then 4Gib you get a not enough space error. I don't think that is the problem here though.