Advertisment

NTFS in Linux: Are We There Yet?

author-image
Hiren
New Update

Memory sticks seem to be increasing their storage capacity in sync with inflation. We now have USB Flash drives that hold more data than what a Blu-ray DVD can. However, is increased storage capacity the only difference between a 32-GB memory stick and a 64-GB (or more) memory stick?

Advertisment

Technical implications

It is not the case as with RAM here. You certainly don't need a 64-bit processor/OS in order to use memory sticks that are larger than 4 GBs in size. Your own hard disk on which Windows is installed very likely has atleast one partition which is larger than 4 GBs and this setup works in your 32-bit system perfectly fine. However, more often than not, the USB Flash drive (or even the memory cards) that you use as portable storage devices are formatted (if not pre-formatted then manually by the user) using the FAT32 filesystem. And there we have a problem, especially for GNU/Linux users if we go beyond 32 Gbs.

FAT32 is technically limited to have a capacity limitation of 32 GB as the upper size limit for a partition. In most (read Windows) systems, you would end up using NTFS to create larger partitions, and NTFS isn't as simple as FAT32 to implement support for (in the Linux kernel). Agreed, when you are talking about portable storage devices, external hard drives too are included. And by all means they are larger than 32 GBs. No role to play for FAT32 there assuming the entire external hard disk will be used as one single partition.

But the difference here which you need to consider, is why NTFS isn't good for your memory stick, while it is not as bad for your external hard drive (apart from the fact that in the latter, you don't usually have a practical choice). Your external hard drive most probably makes use of an actual rotating disk which movable arms access in order to position themselves correctly. Your USB Flash drive however, contains no moving parts. The usable life of Flash memorybased storage media is affected more by the number of writes made to it rather than the number of reads. And this is something which NTFS does more than FAT32 by design, thanks to the journaling features which keep a record of changes made to the file. In fact, if you use NTFS instead of FAT32, performance may be reduced by a small percentage because of the administrative overhead.

Advertisment

So what do you do? If you have a Flash memory-based storage media larger than 32 GB in capacity, one choice which you have is to continue to use FAT32. This means that you will need to partition the storage media so that no single partition is larger than 32 GBs in size. This is not common practice for USB Flash drives. Imagine being irritated by 2 (or more) simultaneous `Autoplay' popups when you plug-in the drive.

The other predominant choice, which will affect usable life of the memory stick, is obviously NTFS. However, as one of the biggest advantages, you can make use of built-in file and folder compression here, something which you can't do with FAT32 (or even exFAT for that matter). Plus, there are granular security and encryption features provided with NTFS, as well as the fact that you can set disk usage quotas with NTFS.

Linux support

NTFS thus being hard to implement because of it's proprietary nature, accessing such partitions becomes a problem (and in many cases, a blocking problem) for GNU/Linux users. Most NTFS drivers available for GNU/ Linux make use of the FUSE (filesystem in userspace) kernel module in order to communicate with the filesystem. Some of the drivers available are not open source but are nevertheless offered free of charge. Let's take a look at the current state of NTFS support in a few major distros. Each distro is of the latest respective English version, patched with the latest updates, as of 7 Feb. 2013.

Advertisment