What I learn about exFat and allocation unit size

Recently, I became a Mac user again (I was one back in the 90's). I attempted to hook up some usb drives to the Mac and notice a number of different problems: 1) native support for NTFS is rather limited. 2) There are some quirks to exFat. For this post, we will limit the discussion to exfat.

I notice two things about the Mac OS Big Sur implementation of exfat

  1. Mac seems to be finicky about unit allocation size.

  2. Mac's exfat is significantly slower than the other file formats.

Unit Allocation Size

When I connect an exfat drive formatted on a PC, it refused to mount on the Mac. After some experimentation, it turns out to be a unit allocation issue. Mac Big Sur can only mount drives with a unit allocation size of 1024K or less. If your drive is formatted with unit allocation larger than that, it will fail to mount.

This is because on larger drives, the Mac will expand a larger Unit allocation, which may be different than the default on a PC. For a 5 Tb drive, Macs will default to 256K. In fact, Macs will not mount the 5 Tb drive if it's less than 128K unit allocation and greater than 1024K unit allocation. If you format it on the PC, make sure that you format it with allocation between 128K and 1024K. Make sure that the drive mounts on both both machines.

Just to clarify what unit allocation mean, it's the bytes per sector x sectors per cluster. For example 512 byte per sector x 8 sectors per cluster = 4096 byte or 4K.

The take away is that if you want a exfat external drive that works with both Mac and PC, make sure you format it on the Mac or set the unit allocation size to between 128K and 1024K.

Mac exFat Performance

Another aspect of exFat is that the performance is significantly slower than the base file format. What was not surprising is that it was slower than the windows implementation. What was surprising is that it was slower than NTFS on the Mac. Let's take a look at the following benchmark, which I did by copying some around 34.2 GB plex video. For the Windows, I ran a i7-6700K box with a Samsung Evo 950 SSD. On the mac side, I am using a Mac Air M1. Both are writing to a 5 Tb USB 3 Seagate Expansion Portable drive (not a SSD). Here are the times

extfat

  • Mac: 5:26

  • PC: 4:45

NTFS - using Paragon NTFS for Mac (note Mac by default do not have NTFS write)

  • Mac: 4:35

  • PC: 4:33

What this tells me is that exFat is significantly slower on the Mac than PC, while NTFS has essentially the same performance as PC. NTFS is faster than exfat least for copying large files. The general recommendation is to use exFat to be compatible across windows, linux, and Mac. In my opinion, it would make more sense to pick NTFS and just purchase a NTFS drive from either Paragon, iBoystore, or Tuxera. NTFS is faster, and more reliable. This is assuming that the NTFS isn't poorly written.

Update

I am edging back with using exfat again. Here are my reasonings:

  1. The drives are copied to storage. I don't plan to for example run a database off a USB drive. The journaling part is somewhat less important. I also don't need permissions.

  2. exfat seems to be pretty reliably implemented on Mac, Linux, and Windows. NTFS on the other hand is experimental on the Mac.

  3. I am a bit wary of third party NTFS drivers. The Tuxera driver plain didn't work and when I contacted them, they didn't respond. Paragon worked but it was pretty weird that it had issues with unit allocation as the drive got bigger. I contacted Paragon, but don't have a response either. All of the drivers run as kernel extensions and require reduction of security on a M1 mac. I am concern that Apple will one day push an update that locks out that functionality.

  4. As another poster pointed out performance isn't that bad. I tried both format under veracrypt and notice that it was not significantly slower than NTFS.

I also made a mistake in my section about exfat allocation. I misread the part 1024 byte. It's actually 1024K.

Finale Update

I haven't gotten a response from Paragon so I do not feel right using the product. In addition, I don't like that the driver exists as a system extension . I have switch back to exfat. As a test, I made a 4.5 Tb exFat volume under Veracrypt with 256K unit allocation. After that I was able to copy 1.8 Tb worth of data to it. It took like 8 hours, but it appears to be working.

32

Sort by:

If you add the NTFS drive to your /etc/fstab file you can mount it rw in base MacOS. It's not as performant as the Paragon NTFS driver or ntfs-3g (tuxera), but it does work without buying any external software.

Interesting test! I’d be interested to see some comparisons on an SSD instead of an HDD.

I will say that 5:26 vs. 4:45 doesn’t seem like that huge of a deal to me. I’m not sure if that alone would motivate me to add a low-level third-party driver to my system.

Also, 5 minutes for a 32 GB file is about what you’d get over gigabit Ethernet, so file sharing over SMB seems it could be an easier option if you’re just transferring files between computers.

I don't have a SSD external. I have some USB key but they usually have write speed slower than a hard drive.

Yes, the ethernet idea could work. The big issue is that my house isn't wire for ethernet and the mac doesn't come with an ethernet port, so I can't test this out yet. Besides, it's much easier to connect a drive to usb and start using it.

As for the file format, I have a stack of NTFS hard disk. My plan was migrate them over to a veracrypt drive, but I have to figure out a decent file format that works on all OS. exFat seem like a good candidate, but I was thinking NTFS would be more robust because it's journaling. In any case, neither solution is ideal, the exfat has problems if your unit allocation size is too large. Paragon NTFS has the opposite problem. It won't read NTFS for volumes under 128K unit allocation size for some reason. I contacted Paragon to see if they have a response. I don't know if this is an issue with the other drivers.

Both veracrypt and NTFS driver appears to run as a Kernal extension, which means they have get blocked by the default M1 security. I got the impression that with Mac, if you stick within the Apple eco-system, everything will just work, but if you vendor out it will become like linux (I have to run a script to uninstall the third party drivers!).

I primarily use a Windows PC with Ryzen+2080ti for 3D computer modellilng (blender). I recently purchased a Macbook Pro 16" with the M pro chip as a travel/remote work computer. I have a fast WD black sn750 nVME 2tb drive and a purchased an external USB-C enclosure to house it in (this one)–it promises 20Gbps = 2.5GB/s transfer rate via Macbook’s USB-C/thunderbolt port. I assume this would be plenty fast enough so I can work directly off it without needing to transfer the blender file to the computer main drives (mac drive is only 500gb so I want to avoid clogging it with my blender files).

My questions are:

Is exFAT with 512k allocation unit size the best formatting type so that this drive will work well and allow full/fast transfer speeds and be reliable as an external work drive? If not, how best to format this so that I can use it as a work drive and jump between working on the Windows machine to my Mac and back?

Is 20Gbps = 2.5GB/s transfer rate sufficient as a work drive?

I’ll have to buy a USB-C pcie card so I can plug the external drive into my windows machine. Any specific card types to get?

A Mac os will work better with apfs. The only reason to use exfat is if you want to share files with windows which is what you are intending.

I am not entirely sure how blender works. If it just loads into memory then the faster transfer speed will just get you faster load and save time. It won't improve rendering speed.

Is there a reason why you would you can't just use the usb on your pc. You could try out running blender off anext drive first.

FYI - Windows does not let you format an existing partition into exFAT at the required 128k - 1024k allocation for Mac. You must go to disk manager, delete the partition, and create a new one, where it will give you many more allocation sizes to choose from.

You may be able to do that using the command line.

format x: /fs:exfat /a:128K

Note: I haven't try this, but I was reading the man pages.

Man, thank you so much for posting this.

As someone who purchased my first macbook (M3) coming from PC's since the mid '90's, I've been tearing my hair out searching the web and only seeing the same canned responses "check your power adapter / cable. Open Disk Utility Etc.". Was going insane until seeing your post, now I know why my media drive can be viewed with my xps plus but not my M3. Makes perfect sense as I'd set the NTFS allocation size larger since it is large video files. Thanks again, much appreciated seeing this post.



Discussion

Do you want to join discussion? Click here to log in or create user.