Installing exFAT for FUSE on Apple silicon #

My meager guide to mounting exFAT partitions with unsupported cluster sizes in macOS clearly needed a dollop of detail. The following steps were tested in macOS 14.6.1 with macFUSE 4.8.0 and exFAT 1.4.0:

1. Enable kernel extensions

(Though required as of Sonoma, Sequoia's FSKit (which implements a file system in user space) may render this unnecessary. In the meantime, Apple warns: "Kexts are no longer recommended for macOS. Kexts risk the integrity and reliability of the operating system. Users should prefer solutions that don’t require extending the kernel and use system extensions instead.")

  1. Start up in macOS Recovery

  2. Click Options → Continue Utilities → Startup Security Utility → Security Policy...

  3. Change from "Full Security" to "Reduced Security" → enable "Allow user management of kernel extensions from identified developers" → click OK → enter password → click OK → Restart

2. Install macFUSE

  1. Download and run the PKG installer (Universal binary that supports macOS 10.9 through 14(!))

  2. When "System Extension Blocked" appears, click "Open System Settings"

  3. Click "Allow" under "System software from developer 'Benjamin Fleischer' was blocked from loading." → enter password twice when prompted → click "Restart"

3. Install Homebrew

  1. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

4. Install autoconf, automake, & pkg-config

  1. brew install autoconf automake pkg-config

5. Download and compile exFAT for FUSE

  1. git clone https://github.com/relan/exfat.git && cd exfat && autoreconf --install && ./configure && make

  2. While installing to /usr/local/sbin/ is possible via sudo make install, running from the fuse subdirectory after compiling is fine, e.g., sudo ./fuse/mount.exfat-fuse /dev/disk2s2 ~/mnt

6. Removal

  1. exFAT for FUSE: If you opted to install in step 5.2, run sudo make uninstall from the exfat directory. Otherwise, simply delete the exfat directory created in step 5.1.

  2. Homebrew:

    1. Uninstall packages installed via brew: brew list | xargs brew uninstall --force

    2. Clean up any remaining files: brew cleanup --prune=all

    3. Uninstall Homebrew: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"

    4. If you ran (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/yourusername/.zprofile and eval "$(/opt/homebrew/bin/brew shellenv)" as instructed after the Homebrew installation completed, you may also want to remove eval "$(/opt/homebrew/bin/brew shellenv)" from ~/.zprofile or simply delete ~/.zprofile altogether if there are no other lines in it.

  3. macFUSE: Run /Extras/Uninstaller.app from the mounted DMG.

  4. Security Settings: Repeat steps 1.1 & 1.2, then switch "Reduced Security" back to "Full Security".

Notes

/mac | Aug 10, 2024


Subscribe or visit the archives.