The exFAT conversion issue, exFAT vs FAT32 vs NTFS

When I look at various forums, a common question is which file system to use, exFAT, Fat32 or NTFS

The first thing to take note is that exFAT is designed for removable media where NTFS is not. As outlined in my paper, NTFS is a lazy write format, which means that I/O buffers are cached in memory and buffers are not always flushed immediately to the device. If the media is formated as NTFS (there are ways to trick the OS to think it is not removable) and the media is abruptly ejected, data loss can occur.

Although this should be less of an issue with FAT file systems, keep in mind that FAT 12/16/32 file systems have TWO (2) FAT tables, and they flip-flop as they are updated. exFAT, version 1.00 does not have this feature. exFAT version 1.00 has ONE (1) FAT table, and if you blow the table, you can lose a lot. In a later version of exFAT a feature called TexFAT (Transactional exFAT) will be provided with TWO (2) FAT tables – and TWO (2) Allocation Bitmaps (they work in pairs) and they will flip-flop. The point here is that the legacy FAT for now has redundant tables. However, keep in mind that if the free space is large, then the FAT table itself in exFAT may not even get changed, but the Allocation Bitmap does have to change, and for now there is only one.

But, REGARDLESS of the formatted file system, it is best practice not to abruptly dismount the file system by pulling the media without proper “safely remove hardware” dismounts.

So, another issue is Windows 7 only giving the option of exFAT to format USB sticks greater than 32GB in size. For example, a 128GB USB stick, or even some USB removable drives that are in 100’s of GB or even 1 or 2 T B, FAT32 is not provided as a format option. Any Windows system, even Windows 2000, will not format a device in FAT32 if that device is larger than 32GB. This is a restriction, and if the drive is larger than 32GB and formated as FAT32, some Windows utilities won’t work correctly. But, if you just use the drive for file storage, it may be fine. So, if Windows won’t format a drive larger than 32GB in FAT32, how do you get the drive formatted? Well, some of those drives may come out of the box preformatted as FAT32, you can use Linux to format the drive, or you may find a utility program that will do the format. You can download a Live CD of a Linux system and do the format. Windows will recognize a FAT32 file system that is larger than 32GB, it just won’t let you create one.

So, the next common question is what do you do when you have a exFAT file system (any size) and you want to convert to FAT32? What is important to know is that unlike FAT32 to NTFS, there is no “convert” command to convert exFAT to FAT32 or vise versa. This means that all files (that you want to keep) have to be movied/copied to another intermediate drive first, then the device formatted, and then move/copy the files back. If the drive is a TB or larger, this is going to take time. But there could be a glitch going from exFAT to FAT32. If you created a file mon the exFAT file system that is larger than 4GB in size for a single file, it won’t copy to a FAT16 or FAT32 file system because those file systems don’t support large files over 4GB. Either the file has to be chopped up, or convert to NTFS.



15 thoughts on “The exFAT conversion issue, exFAT vs FAT32 vs NTFS

  1. 32 gb SD card was formatted into exFat and can not be read from another machine and also got locked with “read only” error message.
    Basically the card can not be used after being formatted to exFat.

    Can anybody help?

    Thank you in advance

    • What OS did you use to format the card as well as the other machines you try to read?
      Include the OS, the SP level, etc
      Have you tried to reformat in FAT32?
      Have you downloaded the sd utility from the sd card Assoc website and try to use it to reformat the card?
      If your card is 32gb then it is probably a SDHC, and I have only experimented with SD the earlier card and did not have an issue like this.

  2. The OS is Windows XP on both machines. I did not try to reformatted in FAT32.
    Here is the link for the patch to put on the system before you can format a large size f SD card. Also the card is a normal 32GB SD card.

  3. I have been able to format 256MB (yes, MB, not GB, it is small) SD card in XP, and exfat and use it in XP, Server 2008 and Windows 7 without locking the card up.
    If you are having a problem reformmating the card. then try the program t but keep in mind that if it is a SD card it will format FAT16 and if it is a SDHC card (which if your card is 32GB then it is SDHC) it will format it FAT32.

  4. Older versions of Windows, like WindowsME, Win98 and Win95, all use FAT32 and cannot read the newer NTFS file system. When Windows NT came out, it was mostly geared towards business users and servers, and needed a better file system than what FAT12/16/32 could provide. Microsoft then came out with NTFS (NT File System) to fix the shortcomings of the FAT file systems.

    Windows NT, Windows 2000, Windows XP, Vista and now, Windows 7, all can read both FAT32 and NTFS. Linux can read FAT32, and I believe, with some distro’s (but not all), can also write to NTFS disks. Mac’s can read NTFS, but if you try to write to the drive, it must make changes to it which makes the file system unable to be written to on a Windows system. Mac’s can read and write to a FAT32 file system with no problem.

    So FAT32 is technically compatible with more systems. However, my personal choice would be to use NTFS, since I don’t know anyone that has a Mac, nor do any of my computers, nor my friends / families computers, have an OS installed that cannot read NTFS. NTFS is a better file system overall, less prone to file damage, errors, and fragmentation. Its also slight faster, which is good if you are running applications directly from the drive.
    Post by battery online store in UK(

  5. How do I verify what version of exFAT my drive is formatted with? If it’s an old version, how do I “upgrade” it?

    • At this point, if you are using desktop/server, then it is a no brainer since the only version released so far (as far as I know) is V1.00
      There is a VVMM code within the VBR that you could look up the version number of the filke system.

  6. I have a 500GB seagate external HDD..due to some reading issue i formatted it and it got formatted into exFAT (i dont remember how???). I tried to format it back to NTFS but in vain(can format in exFAT) ..i also tried to convert it using cmd but no use. The problem with exFAT is that file larger than 85MB cannot be transferred. I’m using win7..HELP!!

    • FAT32 is not an option for images larger than 32GB. You need to use a non-Microsoft format utility to format a drive in FAT32. Since the drive is larger than 32GB, when you used the Microsoft format command, it would give you either ONLY exFAT as an option or NTFS and ExFAT. Since the drive is external and not mounted as a fixed drive, NTFS was not an option, so only exFAT may have been listed as a formatting option.

      There is no Convert (unless Windows 8 introduced one). Without a convert, files have to be staged and moved.

      • yeah i have NTFS(default) and exFAT as format option..but only exFAT says “unable to format” when tried to format it wiyh NTFS.

  7. as i said i formatted it cos of some reading issue(probably cos of unsafe removal), but before that it was in NTFS format and it worked there any possible way to fix it??

  8. Somebody necessarily assist to make severely posts I’d state. This is the very first time I frequented your website page and up to now? I surprised with the analysis you made to make this actual submit amazing. Magnificent activity!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s