Hackintosh macOS Sonoma – Windows 11 – EndeavourOS Linux
Network

Triple Boot Hackintosh macOS Sonoma – Windows 11 – EndeavorOS Linux

After a day of fiddling, I successfully installed 3 operating systems at the same time: macOS, Windows 11 and EndeavorOS Linux on my HP Elitedesk 800 G5 Mini. At the same time, I configured rEFInd Boot Loader to be able to choose the desired operating system when starting the machine.

This article is used to record the steps so that you can refer back to them later.

I use 2 different NVMe hard drives to install the system following these steps

  • NVMe 1 for installing Hackintosh macOS
  • NVMe 2 for Windows and Linux installation
  • rEFInd Boot Loader is installed on the EFI partition of NVMe 2

1. Install Hackintosh macOS Sonoma

First, I installed macOS Sonoma following the instructions shared in this  article:

2. Install Windows 11

Next, to install Windows 11 and EndeavorOS, I used Ventoy to create a Bootable USB, then copy the ISO file of Windows 11 and EndeavorOS to the USB. Do this to be able to install many different operating systems without having to reformat the USB.

By default, the EFI partition created by Windows 11 is only 100MB in size, which is too small to install additional bootloaders for Linux. Therefore, it is necessary to create an EFI partition of 512MB in size before starting the installation.

Boot into Windows 11 installation, press Shift-F10 to open Terminal. Then use Diskpart to configure EFI partition for Windows 11 according to the instructions below. Note that you need to operate on NVMe 2 (NVMe 1 was used to install macOS)

https://superuser.com/questions/1176310/install-windows-10-with-larger-efi-partition

After creating the partition, proceed to install Windows 11 as usual.

3. Install EndeavorOS

After installing Windows 11, reboot from USB. Boot into EndeavorOS Live ISO and proceed to install EndeavorOS onto NVMe 2 hard drive.

For the installation partition selection, I installed on NVMe 2 by cutting down the Windows 11 partition, then installed EndeavorOS on the extra partition.

For bootloader, select systemd-boot.

After installation is complete, restart the computer and you will see systemd bootloader showing Windows 11 and EndeavorOS options.

4. Install rEFInd Bootloader

At this point, I can boot into macOS or Windows 11 / EndeavorOS by selecting the hard drive I want to boot from the UEFI Boot Menu. But for convenience, I installed rEFInd Bootloader.

Go to EndeavorOS, install refind with command

yay -S refind && refind-installCode language: Nginx (nginx)

Access to the directory /efi/EFI/refind and edit the file Content refind.conf below

timeout 5

menuentry "macOS" {
    icon /EFI/refind/themes/rEFInd-minimal/icons/os_mac.png
    loader EFIOCOpenCore.efi
}

menuentry "Windows" {
    loader EFIMicrosoftBootbootmgfw.efi
}

menuentry "EndeavourOS" {
        icon     /EFI/refind/themes/rEFInd-minimal/icons/os_endeavouros.png
        volume   "root"
        loader   /ddb57d089a0e4ee0a50d34504f797e34/6.10.5-arch1-1/linux
        initrd   /ddb57d089a0e4ee0a50d34504f797e34/6.10.5-arch1-1/initrd
        options  "nvme_load=YES nowatchdog rw root=UUID=c812c375-3ed3-444f-8bda-41fa44b84dbe rw root=UUID=c812c375-3ed3-444f-8bda-41fa44b84dbe systemd.machine_id=ddb57d089a0e4ee0a50d34504f797e34"
}

scanfor manual,external
include themes/rEFInd-minimal/theme.confCode language: Nginx (nginx)

Next, copy the OC folder in the EFI partition of NVMe 1 (macOS installation) into the folder /efi/EFI/

Navigate to the directory where the systemd bootloader boot entry parameters are stored: /efi/loader/entries/ . There will be a file similar to ddb57d089a0e4ee0a50d34504f797e34-6.10.5-arch1-1.confwith content:

# Boot Loader Specification type
# File created by /etc/kernel/install.d/90-loaderentry.install (systemd 254.1-1-arch)
title      EndeavourOS
version    6.10.5-arch1-1
machine-id ddb57d089a0e4ee0a50d34504f797e34
sort-key   endeavouros-6.10.5-arch1-1
options    nvme_load=YES nowatchdog rw root=UUID=c812c375-3ed3-444f-8bda-41fa44b84dbe rw root=UUID=c812c375-3ed3-444f-8bda-41fa44b84dbe systemd.machine_id=ddb57d089a0e4ee0a50d34504f797e34
linux      /ddb57d089a0e4ee0a50d34504f797e34/6.10.5-arch1-1/linux
initrd     /ddb57d089a0e4ee0a50d34504f797e34/6.10.5-arch1-1/initrd
Code language: Shell Session (shell)

Copy the contents of the 3 sections options, linux and initrd in this file and edit the 3 sections options, loader, initrd in the menuentry of EndeavourOS.

To customize the rEFInd interface, download the theme here and configure it according to the instructions: https://github.com/evanpurkhiser/rEFInd-minimal

Comment Policy: We truly value your comments and appreciate the time you take to share your thoughts and feedback with us.

Note: Comments that are identified as spam or purely promotional will be removed.

To enhance your commenting experience, consider creating a Gravatar account. By adding an avatar and using the same e-mail here, your comments will feature a unique and recognizable avatar, making it easier for other members to identify you.

Please use a valid e-mail address so you can receive notifications when your comments receive replies.

Related posts

Configure Dynamic DNS via Cloudflare using Docker Compose

Mark Lee

[Proxmox] Enable IPv6 for Debian / Ubuntu LXC

Mark Lee

Configure Dynamic DNS on RouterOS (Mikrotik) using Cloudflare API

Mark Lee

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More