Ubuntu Unmounting drive takes forever

Are you using a 64-bit version of Linux with a lot of memory and the attached disk is a relatively slow one (any USB 2 will qualify)?

In that case the problem could be that Linux can locks/delay for long time on big writes on slow devices; it depends on caching too much data during writes. It's a known bug that should be fixed in newer kernels.

See http://lwn.net/Articles/572911/

Workaround: enter a shell root (do that with care --- you are now root for every command)

sudo -i

and issue:

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

If it works, you can add the two lines above to your /etc/rc.local file.

(This is a repost of my answer in U&L SE).