Contribute
Register

[Guide] How to keep Clover working when installing Windows and Linux

A very common issue when multibooting macOS/OS X with Windows and Linux is that after installing the latter the computer will only boot to them. The reason for this is that Clover does not automatically add itself to the UEFI firmware boot menu that is accessible by pressing F12 or another hotkey. When no other operating systems or boot managers are present the computer will automatically start Clover from the UEFI fall back path at EFI\Boot\BootX64.efi which may be present on the menu as an entry called UEFI OS or UEFI [Hard Disk Name]. After the installation of Windows or Linux a new entry for the respective OS will be added to the top of the list (default selection) and the Clover Boot Menu will no longer appear at startup. The most frequently used solution is renaming the Windows Boot Manger executable bootmgfw.efi to bootmgfw-orig.efi but this is only a temporary solution that will break whenever Windows updates occur. The proper thing to do is add a new entry for \EFI\CLOVER\CLOVERX64.EFI to the top of the menu.

Four methods to accomplish this are described below.

Windows: EasyUEFI
  1. Download and install the EasyUEFI utility.
  2. Start it and click the Manage EFI Boot Option button.
  3. Click the plus button in the center column of the main window to create a new entry.
  4. In Type select "Linux or other OS" then in Description enter "Clover Boot Manager".
  5. Click on the appropriate EFI partition in the disk list then click the Browse button and select the \EFI\CLOVER\CLOVERX64.efi file.
  6. Click OK twice and confirm the new entry is correct on the main window.
  7. Click the Power menu and select Reboot to verify the Clover Boot Menu appears.
Linux: efibootmgr
  1. Boot to your Linux distribution on your hard disk or install flash drive. (UEFI mode)
  2. Open Terminal and enter the command below. (Assumes correct EFI partition is sda1 otherwise check and use the -d and -p switches to select the correct disk/partition.)
    • Code:
      sudo efibootmgr -c -l \\EFI\\CLOVER\\CLOVERX64.efi -L "Clover Boot Manager"
  3. Close Terminal then restart and remove the flash drive if present and verify the Clover Boot Menu appears.
Linux/GRUB updates might sometimes require using the -o switch to move Clover back to the default position in the boot order. An example is provided below where Boot0000 is Clover.
  • Code:
    sudo efibootmgr -o 0,7,81,82,83,84
macOS/OS X: bootoption

This is a utility developed by vulgo similar to the Linux efibootmgr. Visit his GitHub page for instructions and more info. A full install of Xcode is required to compile/install it and you must have functional NVRAM. Emulated will not work.
  1. Install with Homebrew or compile and install directly from the source code.
  2. Open Terminal and use diskutil to identify your EFI partition then mount it and add a new entry for Clover as the default.
    • Code:
      diskutil list
    • Code:
      sudo diskutil mount disk0s1 (Assume EFI partition is disk0s1)
    • Code:
      sudo bootoption create -l /Volumes/EFI/EFI/CLOVER/CLOVERX64.efi -d "Clover Boot Manager"
    • Code:
      diskutil unmount disk0s1
  3. Close everything then remove any Clover USB and restart to verify the Clover Boot Menu appears.
Clover UEFI Shell:
  1. Boot in UEFI mode to your Clover install USB and select the UEFI Shell option.
  2. Type "map" at the prompt to display the filesystem mapping table. It is also displayed automatically when the shell loads and may still be on the screen. Use the PageUp and PageDown keys to scroll the screen output if needed.
  3. Identify the hard disk(s) which will be designated by SATA in the device string. The EFI partition will be the first one on the disk. See the examples and commands below for help identifying disks and partitions.
    • FS0 is the USB drive and FS1 is the hard disk EFI partition.
      • FS0: Alias(s):HD0b0c0b:;BLK1:
        PciRoot(0x0)/Pci(0x1A,0x0)/USB(0x1,0x0)/USB(0x2,0x0)/HD(1,MBR,0x494A8988,0x800,0x1D3C800)
        FS1: Alias(s):HD1a65535a1:;BLK3:
        PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0xFFFF,0x0)/HD(1,GPT,6911C183-3B22-4308-B1BE-128AB064B16E,0x28,0x64000)
    • Two hard disks with EFI partitions. FS0 is the first one and FS3 is the second.
      • FS0: Alias(s):HD0a65535a1:;BLK1:
        PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0xFFFF,0x0)/HD(1,GPT,448717E9-5082-4BEF-A3BA-23030115A603,0x28,0x64000)
        FS3: Alias(s):HD0b65535a1:;BLK5:
        PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x1,0xFFFF,0x0)/HD(1,GPT,5F7AFF34-9856-4C9F-9EEB-498E3D6CAF24,0x28,0x64000)
    • Type fsX: to change to a filesystem mapping where X is the number.
    • Type "vol" to see disk labels and "ls" to examine the folder structure.
  4. When the proper filesystem mapping is found create a new firmware boot entry.
    • Code:
      fs1: (or whatever mapping is correct)
    • Code:
      bcfg boot add 0 efi\clover\cloverx64.efi "Clover Boot Manager"
    • Code:
      reset
  5. Remove the install USB when the system restarts and verify the Clover Boot Menu appears.
Once this is done Clover will boot reliably and there should be few issues with the boot order changing as a result of operating system updates. Any of the above tools can be used to correct other related problems such as old, redundant, duplicate or conflicting UEFI boot options as described in this related post.
Thank you!!!!!
Live Saver :)
 
Linux: efibootmgr
  1. Boot to your Linux distribution on your hard disk or install flash drive. (UEFI mode)
  2. Open Terminal and enter the command below. (Assumes correct EFI partition is sda1 otherwise check and use the -d and -p switches to select the correct disk/partition.)
    • Code:
      sudo efibootmgr -c -l \\EFI\\CLOVER\\CLOVERX64.efi -L "Clover Boot Manager"
  3. Close Terminal then restart and remove the flash drive if present and verify the Clover Boot Menu appears.
Linux/GRUB updates might sometimes require using the -o switch to move Clover back to the default position in the boot order. An example is provided below where Boot0000 is Clover.
  • Code:
    sudo efibootmgr -o 0,7,81,82,83,84

Cannot get this old uefi to see clover now that it is at a point where it only will see linux/windows installers. The clover is on sdi1 but not sure how to use your command with it? -d and -p switches are in what? Not fdisk? I use fdisk -l to get the correct efi I want but not sure how to translate to your nice command. I try bootmgr -d -p but nothing special happens. If i could just get this thing to boot something other than linux live it would help
 
Last edited:
The clover is on sdi1 but not sure how to use your command with it? -d and -p switches are in what?
They are in efibootmgr and specify the disk and partition.
I use fdisk -l to get the correct efi I want but not sure how to translate to your nice command.
It might be easier to identify the disk/partition using: lsblk -f
I try bootmgr -d -p but nothing special happens.
Try as shown below:
Code:
sudo efibootmgr -c -d /dev/sdi -p 1 -l \\EFI\\CLOVER\\CLOVERX64.efi -L "Clover Boot Manager"
 
Hey thank you! Now I have to reboot in uefi forgot to! EFI variables are not supported on this system.

Okay the usb name changed to sdc, so I replace the above commands "sdi" with sdc but the Uefi does not see it. I did not do efibootmgr -v to check what path it actually became, so I dont know if changing the one value I changed was correct for making it work.

the lsblk -f command is better
 
Last edited:
Okay the usb name changed to sdc, so I replace the above commands "sdi" with sdc but the Uefi does not see it.
This guide is intended to be used with Clover installed to an internal disk not a USB.
I did not do efibootmgr -v to check what path it actually became, so I dont know if changing the one value I changed was correct for making it work.
The entry won't be valid if the number and order of disks changes when rebooting. Make sure Clover is installed to the USB properly.
 
A very common issue when multibooting macOS/OS X with Windows and Linux is that after installing the latter the computer
I used bootice in windows to add the cloverx64.efi, but the firmware says insert a bootable device anyway. It's seen as valid uefi entry. Any idea what this means? Going to go try to figure out but thought I'd ask anyway.
 
Last edited:
I used bootice in windows to add the cloverx64.efi, but the firmware says insert a bootable device anyway. It's seen as valid uefi entry. Any idea what this means? Going to go try to figure out but thought I'd ask anyway.
Where is Clover installed? On a USB or SSD? In your previous post you appeared to be creating a UEFI entry for a USB drive.
 
I was using a usb to start with as the firmware would not recognize any disks that should have been seen as UEFI. SSD now. Somehow had eventually got other disks to be seen by the firmware as Uefi disks. Was using an HDD and got tired of it being so slow. Now once again cant get the SSD to be seen as UEFI. The entry added is seen as a valid uefi entry but not the SSD. Once it knows the disk is Uefi then has no problem finding the boot.efi
 
Last edited:
I was using a usb to start with as the firmware would not recognize any disks that should have been seen as UEFI. SSD now. Somehow had eventually got other disks to be seen by the firmware as Uefi disks. Was using an HDD and got tired of it being so slow. Now once again cant get the SSD to be seen as UEFI.
So if I'm reading this and your prior posts correctly you have macOS, Windows and maybe Linux installed on this system and were able to boot Clover until you replaced the HDD with an SSD. Now only Windows and maybe Linux are bootable. Is that correct?

If so is each OS installed on a separate disk or the same disk in different partitions? What order are the disks/partitions arranged? Are you still able to boot macOS from a Clover USB drive? If so can you provide a screenshot of the "diskutil list" output or the equivalent from Windows or Linux?
The entry added is seen as a valid uefi entry but not the SSD. Once it knows the disk is Uefi then has no problem finding the boot.efi
If you can post a screenshot of the current UEFI boot options from the BIOS menu as well as from BOOTICE in Windows or by using the "map" and "bcfg boot dump" commands from the UEFI shell that would all be helpful.
 
Yes. The problem is I am not quite sure how the firmware eventually saw the HDD as a UEFI device. Possibly occurred with an nvram reset by OC. Do remember being stricken that the OC nvram reset changed things in the firmware settings like boot order. Windows is on a separate drive. MacOs on the SSD.

Will get those other things added to the post in a bit. Never have tried out the UEFI shell. May like Linux on the HDD later.
 

Attachments

  • IMG_0224.JPG
    IMG_0224.JPG
    3.5 MB · Views: 40
  • MAP:BCFG Boot.zip
    22.6 MB · Views: 35
  • Screen Shot 2022-07-31 at 5.06.05 PM.png
    Screen Shot 2022-07-31 at 5.06.05 PM.png
    210.6 KB · Views: 29
Back
Top