Remove "Windows" Entry from Mac Boot Loader
When you don't use the Boot Camp utility to remove Windows, the Windows boot image on your EFI partition is not removed. This is what you see when you hold down ⌥ during boot.
The procedure to solve this is not for the faint of heart. You need to mount the EFI partition in OS X (normally, it only gets mounted for system updates).
Mounting the EFI partition
List the partitions on your Mac:
diskutil list
You should see something like this:
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *251.0 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 250.1 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
Take note of /dev/disk0
and 1: EFI
. The numbers 0
and 1
have significance later.
Now mount the EFI partition (replace the numbers 0
and 1
if they are different in your output):
sudo mkdir /Volumes/efi
sudo mount -t msdos /dev/disk0s1 /Volumes/efi
Remove the Windows boot image
Now navigate to /Volumes/efi/EFI
. This directory is supposed to only contain an APPLE
directory. On a machine where I had Windows installed, it also contained a Microsoft
and Boot
directory. These can be safely removed, but for extra safety I would recommend renaming them to something different instead.
Then umount and delete the directory you created earlier.
sudo umount /Volumes/efi
sudo rmdir /Volumes/efi
Reinstall Windows again using BootCamp, then remove it properly using BootCamp Assistant. It takes time, but solves the problem. Dummy Windows entries are gone forever.
Deleting the Windows EFI Boot Entry
This is the most accurate and I have succeeded!
First, you’ll need to locate the EFI partition, which is where your Mac stores information about what operating systems can be booted from your Mac. In the Terminal, type this command:
diskutil list
You’re looking for a partition on your main hard drive called EFI.
/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 500.1 GB disk0s2
Once you find it, enter these commands one at a time:
sudo mkdir /Volumes/EFI
Next typing:
sudo mount -t msdos /dev/disk0s1 /Volumes/EFI
Replace /dev/disk0s1 with the correct partition you located using diskutil.
Typing Terminal:
cd /Volumes/EFI/EFI
Continue typing Terminal:
ls
At this point the list may appear as Apple, Boot, Microsoft. Delete the Windows EFI Boot entry by typing this into the Terminal:
rm -rf Microsoft
rm -rf Boot
And unmount EFI, typing Terminal:
sudo umount /Volumes/efi
MacOS High Sierra can type is:
sudo diskutil umount /Volumes/efi
Restart your MAC and done!!!!
In the end, I gave up on actually removing the entries from wherever they're stored on the bootloader. Instead, I just installed rEFInd and manually removed the entries from the bootloader. I chose to go this route because after installing Xubuntu, this was the only way that my mac could find the xubuntu bootup file and also rEFInd has a feature where you can specify which entries you want to display and which you don't.
It's not entirely fixed, but I'll only have the laptop for a little while longer, and I can deal with it until then. Worse things have happened.