macOS Sequoia als VM auf Proxmox 9.0.6 nutzen

In meinem Buch ab Seite 57 (Kapitel 3.1.3.4) beschreibe ich, wie man macOS Ventura als virtuelle Maschine einrichtet. Ab Proxmox-Version 8.4 funktioniert das leider nicht mehr. Proxmox behandelt ISO-Images nur noch als media=cdrom. Das klassische Setup „OpenCore als ISO mounten + macOS-Installer als ISO mounten” ist daher nicht mehr möglich. Als Lösung bietet es sich an, eine kleine Bootdisk mit dem EFI-Ordner von OpenCore zu erstellen und eine Installer-Disk aus BaseSystem.dmg zu verwenden.

Bevor ich Schritt für Schritt zeige, wie dies erledigt werden kann, möchte ich mich für die zahlreichen Hinweise der Leserinnen und Leser bedanken. Ein besonderer Dank geht an Manfred Schmid aus Roßhaupten, der mich ermutigt hat, die neue Vorgehensweise hier zu veröffentlichen.

Rechtlicher Disclaimer zur Erstellung einer macOS-VM auf Proxmox

Die Ausführung von macOS als virtuelle Maschine (VM) auf Nicht-Apple-Hardware kann rechtliche Risiken bergen. Die Lizenzbedingungen (EULA) von Apple untersagen in der Regel die Installation und Nutzung von macOS auf nicht autorisierten Geräten.

Dieser Vorgang sollte ausschließlich zu Lehr-, Entwicklungs- oder Testzwecken erfolgen, um die technischen Möglichkeiten der Virtualisierung zu erforschen.

Folgende Punkte müssen unbedingt beachtet werden:

  • Besitz von Apple-Hardware: Sie sollten im Besitz eines Apple-Computers sein, da die EULA von Apple die Nutzung von macOS an den Besitz eines lizenzierten Apple-Geräts bindet.
  • Legale Software: Die macOS-Installationsdatei muss legal und ausschließlich über den offiziellen App Store von Apple heruntergeladen werden.
  • Keine kommerzielle Nutzung: Die so erstellte VM darf in keinem Fall für kommerzielle Zwecke genutzt werden.
  • Keine Rechtsberatung: Dieser Disclaimer stellt keine Rechtsberatung dar. Es liegt in Ihrer Verantwortung, sich über die geltenden Gesetze und Lizenzbestimmungen von Apple zu informieren und diese einzuhalten.

Voraussetzungen für die Installation herstellen

Bevor Sie mit der Installation fortfahren, ist es wichtig, die notwendigen Voraussetzungen zu überprüfen. Die korrekte Vorbereitung Ihres Systems ist entscheidend für einen reibungslosen Ablauf. Stellen Sie sicher, dass Ihr System die folgenden Anforderungen erfüllt, um macOS Sequoia als virtuelle Maschine (VM) auf Proxmox erfolgreich zu installieren:

  • Proxmox PVE 9.0.6 oder neuer: Eine aktuelle Version von Proxmox VE ist erforderlich, um Kompatibilität und die neuesten Funktionen zu gewährleisten.
  • SSH-Zugriff: Sie benötigen vollen Root-Zugriff auf den Proxmox-Host über SSH. Dies ermöglicht die Konfiguration und Steuerung der VM von der Befehlszeile aus. Alternativ kann auch die Shell genutzt werden.
  • Speicher: Ein geeigneter Speicherpool, wie z. B. local-zfs, muss vorhanden und konfiguriert sein, um die VM-Dateien zu speichern.
  • OpenCore EFI: Laden Sie die OpenCore EFI als ZIP-Datei herunter. Achtung: Verwenden Sie keine ISO-Datei. Die korrekte Datei finden Sie unter dem angegebenen Link.
  • macOS-Installationsdatei: Sie benötigen eine legale BaseSystem.dmg-Datei. Diese Datei ist Teil des offiziellen macOS-Installers, den Sie legal aus dem Apple App Store herunterladen können. Beachten Sie, dass Sie hierfür im Besitz eines Apple-Computers sein müssen.

Installationsdatei von macOS Sequoia herunterladen

Sie können die offizielle Installationsdatei von macOS Sequoia legal und direkt über den App Store von Apple beziehen. Hier ist der gängige Weg, wie Sie dabei vorgehen:

  1. Voraussetzung: Ein Apple-Computer. Sie müssen einen Mac besitzen, der mit macOS Sequoia kompatibel ist. Die offizielle Installationsdatei ist nur über den App Store auf einem Mac verfügbar.
  2. Öffnen Sie den App Store. Starten Sie die Anwendung „App Store“ auf Ihrem Mac.
  3. Suchen Sie nach „macOS Sequoia“. Geben Sie den Namen des Betriebssystems in das Suchfeld des App Stores ein.
  4. Laden Sie das Installationsprogramm herunter. Klicken Sie auf die Schaltfläche „Laden“ oder „Erhalten“. Der Download des Installationsprogramms startet.
  5. Speichern Sie die Datei. Das Installationsprogramm, das in der Regel „Install macOS Sequoia.app“ heißt, wird nach dem Download automatisch im Ordner „Programme“ abgelegt. Wichtig: Beenden Sie das Installationsprogramm, sobald es sich automatisch öffnet, ohne die Installation zu starten.

Die so erhaltene App enthält die notwendigen Komponenten, einschließlich der BaseSystem.dmg-Datei, die für die Erstellung einer virtuellen Maschine benötigt wird. Es ist entscheidend, dass Sie diese Schritte auf einem Apple-Gerät ausführen, um eine legale und offizielle Kopie der Software zu erhalten.

Alternativ können Sie folgenden Befehl auf einem Mac in der Konsole nutzen:

softwareupdate --fetch-full-installer --full-installer-version 15.6.1

Passen Sie ggf. die Version der herunterzuladenen Software an.

BaseSystem.dmg aus dem macOS-Installer extrahieren

Um die Datei „BaseSystem.dmg” aus dem macOS-Installer zu extrahieren, gibt es verschiedene Möglichkeiten. Ich erstelle zunächst einen USB-Stick, den ich später auch für die Installation von macOS Sequoia verwenden könnte, und extrahiere die benötigte Datei „BaseSystem.dmg”, um sie dann auf dem Proxmox-Server zu hinterlegen. Dazu gehe ich wie folgt vor:

USB-Stick (min. 16 GB besser größer) vorbereiten

Der erste Schritt ist, den USB-Stick zu formatieren. Dafür nutzen wir das Festplattendienstprogramm auf Ihrem Mac:

  1. Öffnen Sie das Festplattendienstprogramm. Sie finden es im Ordner Programme > Dienstprogramme.
  2. Klicken Sie in der Menüleiste auf Ansicht und wählen Sie Alle Geräte einblenden. Dies ist entscheidend, um den physischen USB-Stick und nicht nur seine Partitionen zu sehen.
  3. Wählen Sie nun den USB-Stick selbst aus (das übergeordnete Gerät, z. B. SanDisk Cruzer Media, nicht die darunterliegende Partition).
  4. Klicken Sie in der Symbolleiste auf Löschen.
  5. Geben Sie die folgenden Einstellungen ein:
    • SchemaGUID-Partitionstabelle
    • FormatAPFS (oder Mac OS Extended (Journaled), das Format wird später ohnehin überschrieben).
    • Name: Geben Sie dem Volume einen temporären Namen, zum Beispiel SequoiaUSB.

Klicken Sie auf Löschen, um den Vorgang zu starten.

macOS-Installer auf den Stick schreiben

Nachdem der Stick formatiert ist, schreiben wir den macOS-Installer auf das Volume. Dazu verwenden wir das Terminal.

  1. Öffnen Sie das Terminal. Sie finden es ebenfalls im Ordner Programme > Dienstprogramme.
  2. Geben Sie den folgenden Befehl exakt ein und drücken Sie die Eingabetaste. Der Befehl verwendet das Tool createinstallmedia, das in der macOS-Installer-App enthalten ist, um ein bootfähiges Installationsmedium zu erstellen. Achten Sie darauf, dass der Volume-Name SequoiaUSB korrekt ist.
sudo /Applications/Install\ macOS\ Sequoia.app/Contents/Resources/createinstallmedia --volume /Volumes/SequoiaUSB --nointeraction

  1. Sie werden aufgefordert, Ihr Administrator-Passwort einzugeben. Während Sie tippen, werden keine Zeichen angezeigt. Drücken Sie anschließend wieder die Eingabetaste.
  2. Der Vorgang wird nun gestartet. Je nach Geschwindigkeit Ihres USB-Sticks und Macs kann dies 10 bis 30 Minutendauern. Warten Sie, bis der Prozess im Terminal beendet ist und die Meldung Done erscheint.
  3. Sobald der Vorgang abgeschlossen ist, wird der Name des USB-Sticks automatisch in Install macOS Sequoia geändert. Der Stick ist nun bereit für die Installation.
BaseSystem.dmg auf den Proxmox-Server übertargen

Um die BaseSystem.dmg-Datei für die Verwendung auf Proxmox vorzubereiten, können Sie diese zunächst auf Ihren Mac kopieren und anschließend auf den Proxmox-Server übertragen. Hier ist eine Schritt-für-Schritt-Anleitung:

BaseSystem.dmg auf den Mac kopieren und überprüfen:
  1. Öffnen Sie das Terminal auf Ihrem Mac.
  2. Geben Sie den folgenden Befehl ein, um die BaseSystem.dmg-Datei vom erstellten Installationsmedium (dem USB-Stick) auf Ihren Schreibtisch zu kopieren. Ersetzen Sie dabei gegebenenfalls den Volume-Namen und Nutzernamen falls diese abweichen:
cp "/Volumes/Install macOS Sequoia/BaseSystem/BaseSystem.dmg" /Users/user/Desktop

Überprüfen Sie, ob die Datei korrekt ist. Führen Sie diesen Befehl aus, um sicherzustellen, dass die Datei keine Fehler aufweist und ordnungsgemäß erkannt wird:

hdiutil imageinfo /Users/user/Desktop/BaseSystem.dmg

Wenn der Befehl ohne Fehlermeldung ausgeführt wird und Informationen zur Image-Datei anzeigt, ist die Datei intakt.
Datei auf den Proxmox-Server übertragen

Sobald Sie die BaseSystem.dmg-Datei auf Ihrem Mac haben, können Sie sie per SCP (Secure Copy Protocol) auf Ihren Proxmox-Server übertragen.

  1. Verwenden Sie folgenden Befehl im Terminal, um die Datei an den gewünschten Speicherort auf dem Proxmox-Host zu kopieren. Ersetzen Sie 192.168.171.11 durch die IP-Adresse Ihres Proxmox-Servers:
scp "/Users/user/Desktop/BaseSystem.dmg" root@192.168.171.11:/root

  1. Sie werden zur Eingabe des Root-Passworts für Ihren Proxmox-Server aufgefordert. Nach der Eingabe startet der Kopiervorgang.

Die Übertragungsdauer hängt von Ihrer Netzwerkgeschwindigkeit ab. Sobald der Vorgang abgeschlossen ist, befindet sich die BaseSystem.dmg-Datei im /root-Verzeichnis auf Ihrem Proxmox-Host und ist bereit für die weitere Verwendung bei der Erstellung der macOS-VM.

Nun richten wir macOS Sequoia auf dem Proxmox-Server Schritt für Schritt ein.

Schritt 1: VM als leere Hülle auf PVE anlegen:

Verbinden Sie sich dazu per ssh mit dem Proxmox-Server oder nutzen Sie die Shell und führen folgende Kommandos aus. Als Speicher für die VM wird local-zfs verwendet.

# Passen Sie VMID und Name nach Ihren wünschen an
# Als Speicher für die VM wird local-zfs verwendet. Passen Sie es ggf. an.
VMID=107
NAME="macOS-Sequoia"

# VM anlegen
qm create $VMID --name $NAME --memory 12288 --cores 4 --sockets 1 --cpu host

# UEFI aktivieren (OVMF) + EFI-Variablendisk
qm set $VMID --bios ovmf
qm set $VMID --efidisk0 local-zfs:1,pre-enrolled-keys=1

# Maschine & Grafik (bewährt für macOS)
qm set $VMID --machine q35
qm set $VMID --vga qxl

# Netzwerk (konservativ: e1000; alternativ vmxnet3 mit passendem Kext)
qm set $VMID --net0 vmxnet3,bridge=vmbr0

# Zielsystemdisk (wo macOS später installiert wird) — z. B. 64 GB als SATA
qm set $VMID --sata2 local-zfs:64

Bemerkung: Sie können die Hardware im Proxmox-Webinterface an Ihre Bedürfnisse anpassen. Für mein System habe ich das Display auf „VMware compatible“ und SCSI-Controller auf „VirtlO SCSI“ eingestellt.

Schritt 2: OpenCore-Bootdisk als echte Disk bauen:

Statt eines ISO mounten wir eine kleine qcow2-Disk mit EFI/… von OpenCore. Dafür bereitet man die virtuelle Umgebung auf Ihrem Proxmox-Host für die Installation von macOS vor. Dies geschieht durch das Herunterladen und Einrichten des OpenCore EFI-Bootloaders, der für das Starten von macOS auf nicht-Apple-Hardware unerlässlich ist.

# Tools herunterladen
apt update
apt install -y parted wget unzip

# OpenCore EFI herunterladen und entpacken
cd /root
wget -O OpenCoreEFIFolder.zip \
  "https://github.com/thenickdude/KVM-Opencore/releases/download/v21/OpenCoreEFIFolder-v21.zip"
unzip -o OpenCoreEFIFolder.zip -d OpenCore

# 512 MB qcow2-Disk erstellen
qemu-img create -f qcow2 bootdisk.qcow2 512M

# Als Network Block Device einbinden
modprobe nbd max_part=8
qemu-nbd -c /dev/nbd0 bootdisk.qcow2

# GPT, EFI-Partition anlegen und formatieren
parted -s /dev/nbd0 mklabel gpt
parted -s /dev/nbd0 mkpart EFI fat32 1MiB 300MiB
parted -s /dev/nbd0 set 1 esp on
mkfs.vfat -F32 /dev/nbd0p1

# Mounten und den EFI-Ordner hinein kopieren
mkdir -p /mnt/efi
mount /dev/nbd0p1 /mnt/efi
cp -r /root/OpenCore/EFI /mnt/efi/

# Aushängen und NBD lösen
umount /mnt/efi
qemu-nbd -d /dev/nbd0

Schritt 3: Die fertige Bootdisk wird nun in die VM kopiert:

Passen sie im folgenden Befehl die VMID (107) und den Storage (local-zfs) nach Ihren Erfordernissen an:

qm importdisk 107 /root/bootdisk.qcow2 local-zfs

Nach dem Import liegt die Disk zunächst als „unused“ in der VM-Konfiguration. Wir hängen sie im Schritt 5 als SATA0 ein.

Schritt 4: Installer-Disk aus BaseSystem.dmg erstellen

Wir haben die Datei „BaseSystem.dmg” am Anfang des Tutorials vom USB-Stick extrahiert und im Verzeichnis „/root” auf dem Proxmox-Server gespeichert. Da ein klassisches OS.iso als CD-ROM hier nicht mehr funktioniert, binden wir den Installer als normale Disk ein. Achten Sie beim zweiten Befehl darauf, dass VMID (107) und Speicher (local-zfs) Ihren Anforderungen entsprechen.

# BaseSystem.dmg in RAW umwandeln
qemu-img convert -O raw /root/BaseSystem.dmg /root/basesystem.raw

# In die VM importieren (als RAW)
qm importdisk 107 /root/basesystem.raw local-zfs --format raw

Schritt 5: Unused-Disks als SATA-Disks einrichten und Bootreihenfolge einstellen

Wechseln Sie nun in die Proxmox-Console auf die eingerichtete VM in den Reiter „Hardware“. Die Einstellungen sollten jetzt etwas so aussehen:

„Hard Disk (sata2)“ ist hier das Zielmedium. Hier wird macOS später gespeichert. Klicken Sie nun auf „Unused Disk 0“ und dann auf „Edit“. Im Feld „Bus/Device“ wird automatisch „SATA 0“ zugeodnet. Klicken Sie nun auf „Add“, um den Vorgang abzuschließen. Gehen Sie mit „Unused Disk 1“ analog vor.
Ihre VM sollte nun drei SATA-Festplatten enthalten.

Wechseln Sie nun in den Reiter „Options“ um die Bootreihenfolge festzulegen. Sie sollte wie folgt aussehen: erst OpenCore (sata0), dann Installer (sata1), dann Ziel (sata2).

Schritt 6: Konfiguartionsdatei der VM anpassen

Wechseln Sie nun noch einmal zurück auf den Proxmox-Server und öffnen Sie die Datei „/etc/pve/qemu-server/107.conf“ mit dem Editor Ihrer Wahl. Fügen Sie am Ende der Datei folgende Zeile ein.

# Passen Sie Datei nach Ihren Erfordernissen an
nano /etc/pve/qemu-server/107.conf

# Wenn ihr Hostsystem auf INTEL basiert
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device qemu-xhci -device usb-kbd -device usb-tablet -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on

# Wenn ihr Hostsystem auf AMD basiert
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device qemu-xhci -device usb-kbd -device usb-tablet -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu Haswell-noTSX,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on

Schritt 7: Starten Sie die Installation vom macOS Sequoia

Beim ersten Start wird das macOS BaseSystem angezeigt. Wählen Sie es aus und starten die Installation. 

Wählen Sie nun „Disk Utility“ aus, um die Festplatte einzurichten.

Achte SIe nun darauf, dass Sie die große Festplatte (ca 64 GB) auswählen und klicken auf „Erase“.

Nehmen SIe die Einstellungen vor:

Nachdem dem Festplatte formatiert ist, beenden Sie das Programm und wechseln zurück in das Menü. Dort nutzen Sie „Reinstall macOS Sequoia“ um die Einrichtung zu starten.

Nun wird mehrfach der „macOS Installer“ angezeigt. Die VM startet mehrfach bis die Installation abgeschlossen ist.

Danach wechslen Sie auf das Ziel-Volume und beginnen mit der Einrichtung von macOS Sequoia. Richten Sie Region, Sprache, Tastatur etc. nach Ihren Anforderungen ein ein und schließen die Sie die Installation damit ab. Nach dem Neustart können Sie die VM wie gewohnt nutzen.

Um diese VM mit einem anderen Mac zu steuern muss nun noch die Bilschirmfreigabe auf der VM aktiviert werden.

Nun kann die VM über einen anderen Mac über den Finder verbunden werden. Nutzen Sie dazu die Option „Mit Server verbinden“ oder ⌘K mit der IP-Adresse der VM.

Häufige Stolpersteine

  • OpenCore als ISO eingebunden → funktioniert nicht (PVE ≥ 8.4 erwartet media=cdrom und das Boot-Verhalten passt nicht). → Immer als Disk mit EFI-Ordner.
  • Falscher Bus: macOS sieht Virtio-Disks ohne zusätzliche Kexts nicht. → SATA nutzen (mindestens für Installer + Ziel).
  • Installer wird nicht angezeigt: Prüfe, ob BaseSystem.dmg korrekt in RAW konvertiert und als SATA eingebunden wurde.
  • Bootloop nach 1. Phase: Im Picker „macOS Installer“ wählen (die zweite Stufe läuft von dort), danach auf das Ziel-Volume wechseln.

Fazit

Mit Proxmox 8.4 (und neuer) gelingt die macOS-Installation zuverlässig, wenn man ISO-Mounts durch echte Disks ersetzt:

  • OpenCore → Boot-qcow2 mit EFI/,
  • BaseSystem → RAW-Installer-Disk,
  • beide als SATA einbinden, Zieldisk vorbereiten, installieren, aufräumen.

Viel Erfolg beim Nachbauen!

3 Gedanken zu „macOS Sequoia als VM auf Proxmox 9.0.6 nutzen“

  1. Hey zusammen,
    ich bekomme auf Proxmox MACOS zum laufen, aber ich schaffe es nie weiter als Graphics 7MB.
    Ich habe eine AMD Radeon RX580 mit passthrough, sie wird auch erkannt im MAC.
    Allerdings kann ich auf „Display None“ nicht starten,
    — apfs_sysctl_register:1423: done registering sysctls. rooting via boot-uuid from /chosen: 2D61EE54-7071-40F5-83F4-04675B3D0EB8 Matcharray ID=“2″>string ID=*3″>I0B5D/string>string ID=“4~>boot-uuid-media‹/string>/array on {dict ID=“0″>key>I0ProviderClasskey>IOResource ›</dict› AppleFileSystemDriver: using apfs-preboot-uuid CIOPCIConfigurator: :configure()1 PCI configuration PCIO

    Kann mir jemand helfen?

    Antworten
  2. Mahlzeit!

    Erstmal vielen Dank für das Tutorial – ich habe mit meinem Proxmox Host 9.0.10 dies 2x nachgestellt aber bekomme leider beide male das gleiche Ergebnis – beim ersten Start der VM erscheint nicht der OpenCore Bootloader sondern ich kann entweder die UEFI Shell starten oder die VM neustarten… habe alles genau nach Deinem Tutorial befolgt.. hast Du vielleicht eine Idee woran es hakt?

    Antworten
  3. After following your direction i got pretty far! But I eventually arrived at a message from the installer „The Recovery Server could not be contacted“. Is there a method to attach the full installer that will work? Also, I have a different node that is a cMP51. It can (and has) run sequoia off of nvme. Is there no chance of running sequoia as a vm in proxmox due to lack of avx on xeon 5690?

    Antworten

Schreibe einen Kommentar