macOS: Can't mount exFAT External Drive
I have a Western Digital MyBook (25EE) 8TB External Drive. It is formatted with exFAT. I can't recall exactly how it was formatted, but I believe it was done with Synology's DiskStation for my Synology NAS. I am able to mount and read the drive when I connect it to the NAS, but not on macOS Sierra 10.12.6.
The drive shows up in Disk Utility, but mounting does nothing. I have run "First Aid" with no errors.
Disk Utility incorrectly thinks that the usage is 8/8 TB. As can be seen in the screenshot below, usage is around 4.2/8 TB. The drive mainly contains a Synology HyperBackup file (.hbk) which makes up almost single-handedly all of those 4.2 TB.
According to Synology DiskStation, the main partition is exFAT and I think the EFI partition is vfat:
The drive also shows up in diskutil
as disk2s2
but I can't mount it:
/dev/disk2 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *8.0 TB disk2 1: EFI EFI 209.7 MB disk2s1 2: Microsoft Basic Data WD My Book 8.0 TB disk2s2 $ mount disk2s2 mount: disk2s2: unknown special file or file system. $ diskutil mountDisk disk2 One or more volume(s) failed to mount
NB: (I tried following these instructions for FUSE for macOS, but I suppose they're not really relevant since exFAT should be supported natively in macOS these days.)
I don't have the faintest idea where to start on this issue – what could be the problem here?
Edit 1: Block Sizes
macOS:
$ diskutil info disk2 | grep "Block Size" Device Block Size: 512 Bytes $ diskutil info disk2s1 | grep "Block Size" Device Block Size: 512 Bytes $ diskutil info disk2s2 | grep "Block Size" Device Block Size: 512 Bytes
Synology SSH:
Used fdisk -l
. Notice the GPT PMBR size mismatch – maybe it has some relevance?
GPT PMBR size mismatch (4294967294 != 2743150591) will be corrected by w(rite). Disk /dev/sdq: 7.3 TiB, 8001562869760 bytes, 15628052480 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Device Start End Sectors Size Type /dev/sdq1 40 409639 409600 200M EFI System /dev/sdq2 411648 15628050431 15627638784 7.3T Microsoft basic data
Edit 2: GPT
$ sudo gpt -r show disk2 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 6 40 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93E#### 409640 2008 411648 15627638784 2 GPT part - EBD0A0A2-B9E5-4433-87C0-68B6B726#### 15628050432 2015 15628052447 32 Sec GPT table 15628052479 1 Sec GPT header
Edit 3: Mounting EFI
Apparently macOS is able to mount and Finder list the contents of the EFI.
$ diskutil mountDisk disk2 One or more volume(s) failed to mount
The volume that fails to mount is the primary exFAT volume. macOS requires the EFI volume to be unmounted or it will complain about not properly ejecting disks.
Solution 1:
If your ExFAT drive is not mounting, here is the solution.
sudo pkill -f fsck
fsck
was holding the disk hostage. A quick ps aux | grep fsck
revealed that indeed it was hijacking the disk/volume as soon as it was plugged in. sudo pkill -f fsck
(or just kill
with the PID if you prefer) immediately allowed the volume to be mounted.
Then to make the hard drive writable, you have to run the Disk Utility "S.O.S.", unmount then mount it again.
Solution 2:
Formatting large volumes exFAT on Windows tends to default to an allocation unit size (read block size) of larger than 1024.
macOS has trouble finding the boot region on disks like that.
Backup your external drive, reformat it under Windows with a block size of 1024, then copy everything back.