Safely ejecting USB flash thumb drives in Linux

Linux external drive write caching

To avoid data loss before unplugging an external flash drive or hard drive, you should verify writing to a flash drive is completed by typing in Terminal

sync

and wait for the $ prompt to come back up.

Monitor Linux file write progress

iotop

or the graphical

indicator-multiload

You then click the Eject icon next to the flash drive’s name in your File Manager.

Flash drive can be slow

Consider that your flash drive only writes at say 2 MB/sec. Then, writing a 1 GB file will take 1000/2=500 seconds = 8.3 minutes!

Windows external drive write caching

We safely remove devices when removing USB drives, as typical inexpensive flash drives write data quite slowly (less than 5 MB/sec). By default, Windows “write caches”, that is, Windows uses RAM to temporarily store files – making the copy/write operation appear done faster than it actually is. If you remove your drive before the writing is done, that file or even the whole disk can become corrupted and unreadable.