USB Flash Drive Comparison Part 2 — FAT32 Vs. NTFS
Dampeal writes "Ok, a little while back I ran a somewhat large USB Flash Drive Comparison with 21 drives compared, today I got part two of that comparison. I've taken the 8gig and 4 gig drives, nine in total, and formatted them FAT32, NTFS and ExFAT and ran all of the tests over again for a comparison of how the file systems work on the drives." Good news — after some exhaustively graphed testing scenarios, the author comes to a nice conclusion for lazy people, writing "[I]n my opinion the all around best choice is FAT32, or the default for most all USB drives out there today, it seems to give us the best average performance overall."
FAT32 is great, unless you want to exceed the 4gb filesize limit. In which case you will need an alternative.
The days of the digital watch are numbered.
No, I think he meant "Patton". Having Patton on me is the last thing I'd want.
This guy's the limit!
The question about filesystems has come up a few times over on the Dell Mini forums. Basically the question is which is better to use on machines with SSDs? If you're not dealing with >4GB files, several people have suggested that you're better off formatting the drive as FAT32. I'll need to take a better look at this article when I get a chance, but it seems to be suggesting the same thing.
FAT32 is fine for a USB stick, but you shouldn't install an OS on it. The problem is that FAT32 has no concept of file ownership. So your operating system will be unable to restrict access to files based on the user, which is one of the building blocks of security on any modern OS. This way, any (malicious) process running on the system can overwrite critical system files to do arbitrary damage.
Even if you run windows XP as adminstrator, not all processes on your system run as administrator so you will still be (slightly) decreasing security by having it on a FAT32 filesystem.
I'm currently on site at a customer's office. I have one of their PCs and one of ours; legal restrictions mean I can't copy our source onto their machines or their source onto ours.
The solution to this is to put a copy of our source onto a USB stick and plug it into their machine, and then use a NTFS junction point (aka a symlink) to let their Windows-based build system see our source. This works very nicely, and I can just unplug the USB stick whenever I leave and the lawyers are happy.
However:
- I have to use NTFS. This is because the two machines are set to use different time zones, and frickin' FAT stores timestamps in the local time, which means that if I were to touch a file on one machine and the move the USB stick, the build system will go horribly wrong.
- I have 'optimise for performance' turned on; the non-Windows world calls this write caching. This boosts performance on NTFS *hugely*. I see no mention of this in the review. I now have to remember to unmount the stick on the Windows machine before pulling it, but it's worth it.
- You have to use the command line format.exe to format a removable drive as NTFS, because frickin' Windows doesn't let you do it from the GUI.
- If you turn NTFS compression on, you get a tiny bit more speed boost. But while Linux will read compressed NTFS files, it won't write them.
- You need to do something obscure with NTFS file permissions if you're going to move the stick between two Windows machines, because otherwise you'll be creating files on one machine you won't be allowed to edit on the other. Linux, of course, just ignores NTFS ACLs.
I have investigated the Windows ext2 driver, but while it does work reasonably well, it's still pretty clunky, and ext2 isn't much better than NTFS. What I'd really like is a decent Windows JFS or XFS driver --- NTFS is *so* last century.
Did he run tests with 16GB files?
...
More importantly, he couldn't use a 16GB file, since
FAT32 doesn't support single files over 4GB.
And because 4GB drives don't support files over 4GB.