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.

enter image description here enter image description here

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:

enter image description here

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

enter image description here

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.