MacOS – Not able to mount EFI partition with diskutil after installing Ubuntu

disk-utilitydual-bootefimacos

I installed Ubuntu as dualboot for a specific task to a 30 GB partition. It worked, however I found out I could do the same thing in macOS, so I removed the 30 GB partition. I also wanted to remove Ubuntu files from the EFI partition, but diskutil no longer mounted the partition.

$ diskutil mount disk0s1
Volume on disk0s1 failed to mount
If the volume is damaged, try the "readOnly" option
$ diskutil mount readOnly disk0s1
Volume on disk0s1 failed to mount
If the volume is damaged, try the "readOnly" option

However, I can still mount the partition with the mount command and modify it's contents.

$ sudo mkdir /Volumes/EFI
$ sudo mount -t msdos /dev/disk0s1 /Volumes/EFI

I can also still boot into Windows, meaning the EFI partition is fine. Why is diskutil failing to mount this partition and how can I fix it? I also read that formatting the EFI partition will break future firmware updates, so I don't want to format it.

Here's the output of diskutil list:

$ diskutil list  # Not the full output
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         425.1 GB   disk0s2

Best Answer

Occasionally, you will encounter scarecrows. Here is one such example.

Observe:

Marlin:~ davidanderson$ diskutil mount disk0s1
Volume on disk0s1 failed to mount
If the volume is damaged, try the "readOnly" option
Marlin:~ davidanderson$ sudo diskutil mount disk0s1
Password:
Volume EFI on disk0s1 mounted
Marlin:~ davidanderson$

The message is meant to scare you, thus the term scarecrow. Nothing is wrong, you just need to add sudo.