Dear Lifehacker, Some of my computers (like my Mac) are always warning me about disconnecting flash drives without ejecting, while Windows doesn't seem to have a problem -- in fact, my external USB drive doesn't even have an eject option. Does this mean it's safe? How do I know when I actually need to eject a drive?Sincerely, Concerned About Corruption
This is one of those questions that has a short answer and a long answer. The short answer is this: you should probably always eject a drive before removing it, even if the context menu doesn't have an eject option. Mac and Linux will always provide you a way to eject a drive, but like you said, sometimes Windows doesn't have an obvious "eject" button for certain drives. On Windows, click the "Safely Remove Hardware" icon in the system tray, choose your drive from the list, and then remove it once it notifies you of its safe removal.
Now, the long answer: In Windows, you can sometimes remove a flash drive without ejecting. Here's a bit more information on how computers deal with USB drives.
Why Computers Want You To Eject Drives
Obviously, yanking out a drive while it's being written to could corrupt the data. However, even if the drive isn't actively being written to, you could still corrupt the data. By default, most operating systems use what's called write caching to get better performance out of your computer. When you write a file to another drive -- like a flash drive -- the OS waits to actually perform those actions until it has a number of requests to fulfil, and then it fulfils them all at once (this is more common when writing small files). When you hit that eject button, it tells your OS to flush the cache -- that is, make sure all pending actions have been performed -- so you can safely unplug the drive without any data corruption.
Why Windows Doesn't Bug You To Do It
Mac and Linux use write caching on pretty much every drive, and will let you eject any drive through your file manager. Windows, however, is a bit more mysterious on this front. It actually disables this write cache feature for drives it sees as "removable", because it knows people are likely to yank them out without ejecting. As such, disabling this feature on removable drives decreases the chance of data corruption. It keeps the cache enabled on non-removable drives, though -- and sometimes it recognises external USB drives as not removable, which is why your USB drive doesn't have an eject button. Paradoxically, it's also why you need to eject that drive: since Windows doesn't see it as removable, it has enabled the write cache for it, increasing the chance of data corruption.
You can edit the write cache settings for any drive from the Device Manager. Just expand the Disk Drives section, right click on the drive you want to edit, and hit Properties. Go to the Policies tab, and click the "Quick Removal" radio button to disable the cache (or click "Better Performance" to enable the write cache).
Why You Should Probably Manually Eject All Your USB Drives Anyway
So, unlike OS X and Linux, Windows has a few precautions in place for preventing data loss. However, the write cache isn't the only thing that can cause data loss. Have you ever tried to eject a drive and gotten a "drive is in use" error? Sometimes there's something going on in the background you don't know about, or sometimes a program is just being silly and has still locked a file on the drive even if it isn't using it. If you were to yank it out during one of these situations, you could still cause data loss. Ejecting it will warn you of the situation, and let you close the program in question (or use something like previously mentioned Unlocker to unlock the in-use file).
In the end, there's no reason not to eject your drives, and doing so will ensure you're USB drive's data is uber-safe. Windows users may be less likely to experience issues due to the way Windows handles removable drives, but they aren't 100 per cent protected. Ejecting the drive is a great habit to get into, since without it, you wouldn't always know if it was safe to remove or not.