exFAT support on macOS seems to have some bugs since exFAT drives may or maynot randomly get corrupted.
In my case, "not ejected properly" often casue the drive in Resource busy, Volume on xxx failed to mount, File system check exit code is 1, or Timed out waiting, when try to use both Disk Utility or diskutil
to mount, repair, or first aid the disk.
Possible fix is this:
- Use
diskutil list
to find the right drive id.- You want the id under the IDENTIFIER column, it should look like
disk1s1
. disk1
marks the entire Disk.disk1s1
ordisk1s2
marks each Volume.
- You want the id under the IDENTIFIER column, it should look like
- Usually, you want to check if the disk is occupied by one or many process.
- You can check possible occupation via
ps -ax | grep <id from above>
, sayingdisk3s1
. - You may get something like this:
13699 ?? 11:52.83 /System/Library/Filesystems/hfs.fs/Contents/Resources/./fsck_exfat -y /dev/disk3s1
.
- You need to kill the process via
sudo kill 13699
.
- You can check possible occupation via
- Now you can try to fix the Volume via
sudo fsck_exfat -d <id from above>
. egsudo fsck_exfat -d disk3s1
-d
is debug so you'll see all your files output as they're processed.- If all good, you will get
Mark volume clean?
, answerYES
will end the debug and get** The volume xxx appears to be OK.
- Answer
YES
if it gives you the promptMain boot region needs to be updated. Yes/No?
- After the fix, you can mount the whole Disk via
diskutil mountDisk disk3
or the specific Volume viadiskutil mount disk3s1
See the apple man page below for details on the fsck_exfat
utility.
Sources/Extra Reading: https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/fsck_exfat.8.html https://craigsmith.id.au/2014/07/06/repairing-a-corrupted-mac-osx-exfat-partition/ https://discussions.apple.com/thread/4154638?tstart=0
If you're unable to kill the process via sudo command in terminal, open "Activity Monitor", search up "fsck_exfat" , and force quit the process.
The debugging process will work after you insert the "sudo fsck_exfat -d .