• Become a Premium Member for $25/year with no ads to improve your community experience.

GUIDE How to Install macOS on Proxmox VE [Intel/AMD] - PCI Passthrough Guide

Sorry for being a noob but can you tell me what a PR file is?
Basically, the EFI, IOReg, System Information, Hackintool PCIe export and as this is a VM, need the XML file as well
 
Pleas be patient with me as this is my first time with osx virtualization with gpu passthrough.

EFI - is this the opencore binary I used?
Ioreg - I used IORegeistry Explorer - file is in attachment zip file
SystemInfo - see attachment.
Hackintool PCIE Export - there were several files generated I picked the plaint text - see attachment
VM XML File - proxmox does not use xml, it uses plain config file - see attachement

By the way, when I boot my osx vm I can already see the opencore menu, showing the boot drive, recovery, etc. And when I press enter to boot, I will see the apple logo with progress bar, but progress bar will remain at 0%, then my monitor will turn black, but I can still connect to the vm via screen sharing.
 

Attachments

Pleas be patient with me as this is my first time with osx virtualization with gpu passthrough.

EFI - is this the opencore binary I used?
Ioreg - I used IORegeistry Explorer - file is in attachment zip file
SystemInfo - see attachment.
Hackintool PCIE Export - there were several files generated I picked the plaint text - see attachment
VM XML File - proxmox does not use xml, it uses plain config file - see attachement

By the way, when I boot my osx vm I can already see the opencore menu, showing the boot drive, recovery, etc. And when I press enter to boot, I will see the apple logo with progress bar, but progress bar will remain at 0%, then my monitor will turn black, but I can still connect to the vm via screen sharing.
No worries.
 

How to Install macOS on Proxmox VE [Intel/AMD] - PCI Passthrough Guide​


In our previous guide, we covered installing macOS on VMware ESXi. In this guide, we'll use a similar Virtualization software i.e. Proxmox also known as Proxmox Virtual Environment (PVE).


Normally, AMD and NVIDIA GPUs can be driven without much of efforts. But for Intel IGPU passthrough, you'll need to follow some extra steps. The issue is when you add IGPU for PCI passthrough, the VM will not start and in certain cases, the whole server can hang with no SSH access.


What is Proxmox?​

Proxmox is an industry standard opensource platform for running virtual machines and is available as standalone. This means you don't need any OS as a base to install Proxmox as it can be installed directly on the target host/server without any OS layer. Each VM acts like a complete computer, running an operating System and programs. A Proxmox can have multiple virtual machines, each with its own operating system on the host computer as far as the hardware resources allows. You can select the operating system that you want to use. You can install different Operating Systems as per your needs such as Windows, macOS, or any distribution of Linux. Proxmox comes with built-in Web UI which can be used to manage the VMs, containers, can configure disks and networks in a more efficient way.



Does VMware ESXi need a Bootloader?​

Unlike Hyper-V, VMware Workstation and Virtual Box do not require any Bootloader like OpenCore or Clover. This not only removes the tedious work of creating a compatible EFI but also provides flexibility when performing updates under macOS as you don't have to keep updating the OpenCore and the kexts along with. Although VMware Workstation is compatible with OpenCore, it should be noted that OpenCore requires additional configuration that is not covered in this guide.

However, you may need to use a Bootloader (OpenCore) to drive certain hardware which does not have native support (driver-free) under macOS.

Although the VMware ESXi does not require a Bootloader to run macOS, it does supports bootloaders such as Clover and OpenCore.

Proxmox Compatibility

Recently, we tried out macOS Sonoma on Proxmox 8.2.2 and as soon as the passthrough is enabled and the Virtual Machine is powered on, the ESXi crashes immediately. Although we were able to successfully install macOS Sonoma and it worked fine until the passthrough was configured. Running macOS Ventura in ESXi 8.0 is indeed a little more troublesome than previous versions. The reason is that Apple's transition to ARM architecture has caused VMware to currently not support running ESXi on Apple silicon. VMware ESXi 8.0 no longer officially supports Mac hardware and the new version of macOS Guest OS. Previously, ESXi 7.0 virtualized macOS on Mac was officially supported without any major hiccups.

The current tested version against all functionalities for macOS as Guest OS is ESXi 7.X and we highly recommend you to use the same mentioned version to avoid any issues so that your experience is smooth. We recommend you to use ESXi 7.x and not upgrade it to any newer version. Any latter version is not guaranteed to function as intended. Please upgrade ESXi at your own risk and make sure you have sufficient backups and replicas.

Requirements​

Following are the requirements for installing macOS on Proxmox. Please ensure you meet the requirements before proceeding with this guide.

CPUIntel/AMD CPU.
6 Core or more. 8 or more is recommended.
Haswell and later is recommended.
macOS Compatible CPU. See Chromebook and Chromebox Compatibility for more information.
Memory16GB or more
Storage50GB of free space on the Windows Drive or a separate drive with 128GB or more capacity.
A separate Drive is usually recommended.
Operating SystemWindows 10 or later is recommended.
ToolsVMware Workstation
VMware Unlocker
OpenCorePkg

As VMware comes for Windows, Mac, and Linux, this guide will cover the aspects for all the platforms. However, as most of the users have access to the Windows platform, this guide will be especially focused on Windows.


Using previous versions or the beta versions may cause issues

Hardware Overview


CHAPTER X: Creating Proxmox Bootable USB

A Proxmox bootable USB can be created using several methods. Depending on the Operating System you have, you can either create it on Windows, macOS or Linux itself. You can either use Rufus, BalenaEtcher or can directly use the native dd command, if you are an advanced user.

Method #1: Using Rufus/Windows

Using Rufus, you can write the image to the target USB Flash Drive. Rufus is a popular tool known for creating Bootable USBs and supports several Operating Systems to choose from. However, Rufus distribution is only available only for Windows.

1. Download Rufus
2. Plug a USB Flash Drive
3. Open Rufus
4. Select the proxmox-ve_8.2-1.iso and click on Open.
5. Click on Start to write the image to the USB Flash Drive.
6. Click on Close.
7. The Bootable USB is ready now. Eject the USB Flash Drive.

Method #2: Using Balena Etcher

Using Blaena Etcher, you can also write the image to the target USB Flash Drive. Balena Etcher is also one of popular tool for writing disk images and supports several Operating Systems to choose from. Luckily, Balena Etcher is available for a wide distribution such as Windows, macOS and Linux.


CHAPTER X: Installing Proxmox

Now as you have the bootable USB ready, the next step is to install proxmox.

Booting the Proxmox Installer

1. Move to the target host/machine where you want to install Proxmox.
2. Plug the Proxmox Bootable USB to the target machine.
3. Adjust the BIOS Settings
4. Use F12 to enter Boot Menu. Refer to the BIOS manual for the boot key
5. Select USB, Partition 2 (USB) followed by the UEFI prefix and press enter to boot into the Proxmox installer. The installer will load in a while. Ensure that the host system is connected to the Ethernet. WiFi interface is not supported.

Installing Proxmox

6. When the Proxmox VE menu appears, select Install Proxmox VE (Graphical) and press Enter key to continue with the standard installation. If you are an advanced user and have used Proxmox before, you can also use the Terminal UI option for the installation.
7. When at the license agreement page, read the EULA and click on I agree to accept the license terms and continue with the installation.
8. In the next step, Proxmox will scan for the available disks. Select the target Disk where you want to install Promox and Click on Next. Click on Options to specify the additional parameters such as the filesystem. For the maximum reliability, we recommend using ZFS. By default, the File system is set to ext4.
9. Next, set the location, Time Zone, and keyboard layout as per your preference and click on Next. The installer autodetects most of these settings.
10. Create a strong password for the root user and retype the same password to confirm. In addition, type in your actual (valid) email address for system administrator notifications and click on Next.
11. The last step is to setup the network configuration. Adjust the following parameters accordingly: Most of these settings must be adjusted to your own preferences/situation.

Management Interface:
Select the Management Interface (ethernet interface) you want to use. Please note that the host must be always connected to this interface or the WebUI will not work.

Hostname (FQDN):
Use a valid hostname for the server. Please note that the hostname must be a fully qualified domain name.

IP Address (CIDR):
IP address for the host.

Gateway:
Gateway for the Proxmox host

DNS Server:
The DNS Server you wish to use. You can either use local DNS, private or public DNS such as Google. 8.8.8.8

NOTE: You must enter the valid details or you won't be able to login into the Proxmox host via Web UI and will have to configure the network again. A valid network configuration (IP, Gateway, DNS server) is required for the Web UI to work!

12. Review the Summary and click on Install. If you notice that the parameters are not set as recommended, you can still edit the options by clicking on the Previous button. Review the Summary and click on Install. Proxmox will partition the disk and copy the required files to the disks. If the target disk is fast enough, the installation should not take more than 5 minutes.

Once the installation is complete, you'll see a successful message/The installation will be completed in a while.

13. Remove the USB Flash Drive and the system will be rebooted shortly after the installation.

Once the server reboots, the Proxmox GRUB menu loads. By default, Proxmox VE GNU/Linux will be selected and the system will boot from that automatically. By default, Proxmox will boot from Proxmox VE GNU/Linux as that's the default selection for boot.
Soon, you will see the Proxmox VE welcome message. By default, there is no GUI and it can be quite difficult to operate the Proxmox host directly via Terminal, especially for the beginners. Moreover, this is not elegant and Web UI can be used instead of that. If you have configured the network correctly, it will include an IP address for the Web GUI and you can log in directly from your web-browser to operate the PVE. You can then administrate the server using the console or via the web browser.

CHAPTER X: Configure Proxmox

Now that we have installed Proxmox, it's time to configure the Proxmox host after which we'll proceed with creating a Virtual Machine and install macOS on it. These are the basic mandatory steps which should not be skipped if you want to have a seamless experience.

I. Connect to WebGUI

1. Once the server is rebooted, login into the Proxmox host using the IP displayed using your favorite browser. From any other device connected to the same network your Proxmox Host is connected to, navigate to http://IP address/ in the Web Browser of your choice. For example, in our case, its 192.168.1.24. It could be different in your case.

2. After you navigate to the correct IP address (as displayed in Proxmox console), you may see a privacy error, a warning message that the page is unsafe. This is because Proxmox VE uses self-signed SSL Certificates. Simply proceed with the warning by clicking on the IP link to proceed to the Proxmox Web Management Interface.

3. To access the interface, login using the root as Username and Password you set at the time of installing Proxmox.
4. Once you're logged in, you'll get a pop up saying there is no valid subscription for the server. Proxmox offers an optional add-on service to which you can subscribe at an additional cost. You can simply ignore the message by clicking on OK. You'll see the Proxmox Dashboard now.



NOTE: If you are not able to login into the Proxmox host using the IP address displayed, there's likely an issue with your network configuration. You'll have to configure it again so that the network configuration is valid.



CHAPTER X: Create a Virtual Machine

To create a Virtual Machine, follow the steps below:

If there are no VMs created on the Proxmox host, no VMs will be displayed in the pve node.

1. From Proxmox UI, select the pve node from the left pane under the Datacenter node. Right-click on the pve node and click on Create VM to launch the Virtual Machine creation wizard. You can also use the Create VM button at the top right corner (just right next to the Documentation link) to launch the Virtual Machine creation wizard. A new dialogue box will appear to add the Virtual Machine. The Virtual Machine wizard is divided into several sections and those sections contain several settings (such as CPU, disk, Memory, etc) and each section has been outlined below:

General

The General settings specify the Node, VM ID, and Name. The advanced settings define Power and boot-related settings. Adjust the settings as described below:

1. Select the pve node, if this is the first time you are trying out Proxmox. Proxmox can have clusters, so if you have any other Proxmox host, select that node.
2. Assign a VM ID. PVE will automatically assign a VM ID to your Virtual Machine. You can change it if you want to. By default, it's 100 for the first VM and starts increasing as you create more and more VMs. Also, keep a note of your VM's ID. This ID will be used later when configuring the Virtual Machine.
3. Enter a name for your Virtual Machine and click on Next. You can use any. For instance, we'll be using macOS. Leave the rest of the settings as default.

Operating System

The Operating System settings specify the VM Operating System type and the storage for the ISO image(s). Adjust the settings as described below:

4. From the storage options, select local.
5. From the ISO image options, select the Virtual USB Disk.img you created earlier in STEP #X.
6. As PVE does not have an option for macOS, select Other as a Guest Operating System using the drop-down menu from the Guest Operating System type list and click on Next.

Set the Storage as local. If you have configured any specific disk to store VMs, you can use that.
Select the Virtual USB Disk.img you created earlier in STEP #X from the ISO image option.
Set the Guest OS Type as Other. PVE does not have an option for OS X/macOS. You can use Linux as well but it is recommended to use Other for the sake of reliability.

System

The System settings specify the VM Graphics, Machine Type, BIOS, and the Storage controller. Adjust the settings as described below:

7. Select VMware compatible as Graphic card using the drop-down menu from the Graphic card list. This will be our display console. Until we set up a Graphics passthrough, this will act as a virtual display where you can carry out the operations in the VM, including installing the guest OS.

Set the Graphic card as/to VMware compatible.


8. Set the Machine as q35. The default option is i440fx.
9. Set the BIOS as OVMF (UEFI) as we will be using PCI passthrough. As we are going to use macOS as a guest Operating System, the VM should not be set to SeaBIOS. This is because macOS does not support booting from SeaBIOS. OVMF is for macOS and is highly recommended for newer Operating Systems and if you want to use PCI passthrough.
Once you select the OVMF (UEFI) as BIOS, some additional parameters will be shown. Ensure that the Add EFI Disk option is selected.
10. Select local-lvm as EFI Storage.
11. Uncheck the Pre-Enroll keys option. If you use Pre-Enroll Keys, the VM will not let you boot from OpenCore. This is because when you use Pre-Enroll keys, it enables Secure Boot on the VM.
12. Select VirtIO-SCSI as the SCSI Controller using the drop-down menu from the SCSI Controller list.
Set the SCSI Controller as/to VirtIO SCSI

13. Enable the Qemu Agent option.
14. Uncheck the Add TPM option. As we are going to use macOS as a guest Operating System, we do not have any usage of TPM under macOS.

Disks

The Disk settings specify the Virtual Disk type, location, and size for the target VM. You can either create a new zvol on an existing dataset or use an existing zvol or file for the VM.

Set the Bus/Device as Virt Block using the drop-down menu from the Bus/Device list.
Select the local-lvm as Storage. From the Storage option, select local-lvm. Select the Storage location. In our case, it will be VM Storage as that's what we created when creating Pool.
Set the Disk size to 80GB for the macOS installation. This will be our Virtual Disk on which we'll be installing macOS. Skip this step if you want to use a separate physical disk for the macOS installation. In addition, if you want to store the files on the same disk and do not want to use a separate disk (either physical or virtual), use the capacity accordingly.
Set the Cache as/to Default (No cache)
Enable the Discard option. This will enable TRIM support on the Virtual Disks.


CPU

The CPU And Memory settings specify the number of Virtual CPUs, Sockets, and Threads in the Virtual Machine. Also, the CPU mode, model, and the memory size.

Select 1 from the Sockets. If you have one physical CPU socket, use 1, and if you have dual, use 2.
Set the Cores (Threads) to no more than half of the threads available on the host computer. The virtual core allocation should always be under 50% of the actual physical CPU Cores. Allocating more than 50% of the physical core may slow down the host computer (e.g. i5-10400 is a 6 Core CPU that has 12 Threads so allocating 6 Virtual Cores is under the 50% utilization limit).

For Hyper-Threading to work in the guest Operating System, the threads must be double the cores. The minimum number of threads should be set the Threads as 2 for the Hyper-Threading to work in the guest Operating System. For CPUs that support Hyper-Threading Technology, the threads are usually twice the cores. Do NOT use if your CPU doesn't supports Hyper-Threading.

Set the CPU Type as host. This will make the installation seamless like a bare metal install or else you will need to add a lot of parameters to the Virtual Machine Configuration which can be a tedious task. Even if you're using a CPU which is not supported natively on macOS, you can spoof the CPU ID easily using OpenCore.

Check the Enable NUMA option and leave the rest of the settings as default.

Memory


Set the Memory as 4096MiB. If you have enough memory on the host system, 8192MiB would be preferred. The least would be 4096MiB or 4GiB. For the best performance, 16GiGB or more is recommended. ZFS loves RAM ;)

Disable the Balloning Device option and click on Next.

NOTE: Due to some unknown reasons, the macOS will not boot with less than 8192MB memory.
For macOS Big Sur and later, at least 8GB of memory is recommended.

Network

The Network settings specify the Network Adapter type, MAC Address and the physical network interface for the VM. macOS already includes VirtIO drivers.

Set Bridge as vmbr0.
Uncheck the Firewall option.
Set the Device model as Virtio (paravirtualized) from the drop-down list. By default, it's set to E1000.
The Mac Address will be automatically generated by default and there shouldn't be a need to change it. You can use any other Mac Address and/or can change it later, if required.



Review the Summary and click on Finish to create the Virtual Machine with specified parameters. If you notice that the parameters are not set as recommended, you can still edit the options by clicking on the Back button. Review the Summary again and click on Save.



CHAPTER X: Configure Virtual Machine Parameters​

Now before you can start the Virtual Machine and proceed with the macOS installation, you'll need to configure a few parameters in order to boot the macOS installer.
In order to boot the macOS installer, you still need to configure the Virtual Machine Parameters. To configure the Virtual Machine Parameters, follow the steps below.













PVE is actually packaged based on Debian, but it is not recommended that you install Debian first and then install PVE, as this will cause you a lot of unnecessary trouble. It is recommended to use the official image of PVE directly. The official image is actually a minimal Debian environment integrated with PVE. There is no need to configure and install it yourself, which is very convenient.
I can see you have been busy with the site upgrades.

is this guide still in the works? if it is so, any projected completion date?

Very much looking forward to this guide :) So thanks in advance!!
 

Forum statistics

Threads
1,839
Messages
17,150
Members
26,386
Latest member
eaedfiely