VMWare and EFI partition

I have been a Macintosh user since 1986 but it is still necessary once in a while to access a Windows system and that is why VMWare Fusion is installed on my iMac which has a separate partition on its drive called BootCamp that contains the Windows system. There are different ways to set-up using Windows on a Mac, and I just prefer to have VMWare use the Bootcamp partition directly, and appear on my Mac screen as a virtual computer running within a Mac window.

Once in a while after a macOS update the Windows partition does not want to boot and VMWare says that I should create a new virtual machine from its “File > New…” menu.

The previous time that it failed it took a long time (days) to find the solution that simply requires to create a blank (empty) file called  boot.ini on the C: drive. (for more details: vmware.com)

Today I had the same issue but the solution was different as I already created that file previously. I simply noted that my Mac had been updated today when I logged in, and a new drive icon appeard called EFI which normally should not be visible (it is a partition within BootCamp that allows Windows to boot.) I also noted that when I tried to ask VMWare to create the new entry the only choice offered (and not changeable) was EFI.

I had the idea that if the volume was “unmounted” it would not be visible and perhaps VMWare would locate BootCamp instead. So I search for the unmount command, with inspiration from this web page from osxdaily.com. So I first listed the mounted volumes with diskutil list and located the one that had EFI within its name which provided the exact partition name. Then the command  diskutil unmount /dev/disk0s1

Now VMWare would offer the proper volume to create the new entry:

selecting BootCamp for VMWare virtual windows

 

So it all works again… until the next update!


CODA

In fact I mistakenly tried diskutil unmount /dev/disk0 at first (rather than /dev/disk0s1 ) and got the following error:

disk0 was already unmounted or it has a partitioning scheme so use "diskutil unmountDisk" instead

Using this command unmounted both BootCamp and EFI but VMWare was still able to find the correct volume. The command in the text above diskutil unmount /dev/disk0s1 is the correct way to process, but the actual /devname may be different on another computer.

EDIT

I later realized that perhaps the simple method of right-clicking on the EFI icon and ask macOS to “Eject” the disk would have probably have the same effect in a much simpler fashion!