macOS Tahoe sur Proxmox,
en une commande.
À lancer en root sur l'hôte Proxmox. Le script vérifie la machine, choisit le meilleur CPU virtuel que ton hôte peut présenter, télécharge la recovery officielle Apple et te rend une VM entièrement configurée — sur n'importe quel hôte Intel ou AMD, avec ou sans AVX2.
curl -fsSL https://raw.githubusercontent.com/devfrp/macos-tahoe-proxmox/main/install.sh | bash
Toute la VM, préparée pour toi
Monter une VM macOS sur Proxmox à la main, c'est chercher une image OpenCore, y greffer un SMBIOS crédible, récupérer une recovery chez Apple, la convertir, et deviner quel CPU virtuel l'invité acceptera. Ce script fait tout d'une traite — et choisit le modèle de CPU d'après ce que ton hôte sait réellement fournir, si bien que la même commande marche sur un Xeon AVX2 comme sur une vieille machine AMD.
Ce que fait le script
Cinq étapes, sur l'hôte Proxmox, en root.
ignore_msrs=1, rendu persistantOptions
Lancé dans un terminal, il demande l'essentiel — version de macOS, stockage, RAM, taille du disque — Entrée acceptant les valeurs par défaut. Chaque réglage est aussi une variable d'environnement, qui saute la question correspondante ; sans terminal, les valeurs par défaut s'appliquent, donc l'automatisation reste non interactive.
| Variable | Défaut | Ce qu'elle règle |
|---|---|---|
| VMID | premier id libre | Identifiant de la VM Proxmox |
| VM_NAME | macos-tahoe | Nom de la VM |
| CORES | 4 | Cœurs CPU |
| RAM | 8192 | RAM en Mio |
| DISK | 80 | Taille du disque principal en Gio |
| STORAGE | local-lvm | Stockage des disques de la VM |
| ISO_STORAGE | local | Stockage des ISO |
| BRIDGE | vmbr0 | Bridge réseau |
| START | 1 | Démarrer la VM à la fin (0 pour désactiver) |
| CPU_MODEL | auto | Modèle de CPU virtuel présenté à macOS — choisi automatiquement selon l'hôte |
| VERSION | tahoe | Version de macOS : tahoe, sequoia, sonoma, ventura |
| INTERACTIVE | 1 | 0 désactive les questions dans le terminal |
Installer
Proxmox VE 7.2 ou plus récent, un hôte Intel/AMD 64 bits avec la virtualisation activée et au moins SSE4.2 (AVX2 recommandé), ~5 Go libres sur le stockage des ISO plus le disque de la VM, et un accès Internet sur l'hôte et dans la VM.
En une ligne
# en root sur l'hôte Proxmox curl -fsSL https://raw.githubusercontent.com/devfrp/macos-tahoe-proxmox/main/install.sh | bash # avec des réglages, sans aucune question curl -fsSL …/install.sh | \ VMID=990 CORES=8 RAM=16384 DISK=120 STORAGE=local-zfs bash
Désinstaller
qm destroy <VMID> rm -rf /root/macos-tahoe-installer
Après le script
# 1. la VM démarre seule (sauf START=0) # 2. ouvrir la console, laisser OpenCore booter # macOS Base System # 3. Utilitaire de disque → effacer le gros # disque VirtIO (APFS, table GUID) # 4. quitter, puis Installer macOS Tahoe # (30-60 min, plusieurs redémarrages — # toujours laisser OpenCore choisir l'entrée # par défaut) # 5. sur le bureau, détacher le disque recovery : qm set <VMID> --delete sata0
Garde le disque de boot OpenCore
(sata1) attaché — c'est par lui que la VM démarre.
Rendre la VM autonome
Une fois macOS installé, ceci copie OpenCore sur la partition EFI de la VM, détache les supports d'installation et redémarre la VM depuis son disque — à lancer sur l'hôte Proxmox.
Une commande
curl -fsSL https://raw.githubusercontent.com/devfrp/macos-tahoe-proxmox/main/install.sh \ | bash -s -- finalize <VMID>
Alternative manuelle
# depuis macOS sudo diskutil mount disk0s1 cp -R /Volumes/LongQT-OpenCore/EFI_RELEASE/EFI /Volumes/EFI/ # puis sur l'hôte qm set <VMID> --delete ide2 --delete sata0 --delete sata1 qm set <VMID> --boot order=virtio0
iCloud / iMessage (facultatif)
Le script génère déjà un SMBIOS aléatoire par VM — suffisant pour l'installeur
et les mises à jour logicielles. Les services Apple exigent en plus un hyperviseur masqué :
ajoute VMHide dans
EFI/OC/Kexts et dans config.plist, avec
vmhState=enabled dans les boot-args, puis redémarre la VM avant de te
connecter. Vérifie d'abord le numéro de série généré sur la page de couverture Apple — se
connecter aux services Apple depuis une VM peut enfreindre les conditions d'Apple, et un
numéro qui ressemblerait à celui d'un vrai appareil doit être régénéré avec
GenSMBIOS.
Dépannage
Les cinq choses qui coincent vraiment.
- CPU VIRTUELChoisi automatiquement · un CPU virtuel Intel générique correspondant à ce que l'hôte peut fournir —
Haswell-noTSX-IBRSavec AVX2,SandyBridge-IBRSavec AVX seul,Nehalem-IBRSavec SSE4.2. On peut en forcer un avecCPU_MODEL=…(ex.CPU_MODEL=host). - MISE À JOUR« An error occurred preparing the software update » · l'ISO OpenCore d'origine embarque un SMBIOS bouche-trou (
iMac19,1, série à zéro) que l'installeur Apple refuse. Le script en génère désormais toujours un vrai — supprime le cache/root/macos-tahoe-installer/opencore-boot-<version>.imget relance pour le régénérer si la VM a été créée avant ce correctif. - SANS AVX2Hôte sans AVX2 · la VM démarre par un petit disque de boot OpenCore (
sata1) porteur de CryptexFixup — aucune reconstruction d'ISO, etfinalizele replie dans la partition EFI de la VM. Les mises à jour delta ne sont pas disponibles ; mettre à jour via les installeurs complets. - BOUCLE DE BOOTRedémarrage immédiat · vérifie que
cat /sys/module/kvm/parameters/ignore_msrsrenvoieY— redémarre l'hôte après la première installation si besoin. - CONSOLEPas de souris/clavier, affichage lent · utilise la console noVNC ; le passthrough USB peut s'ajouter ensuite. Un affichage lent est normal — la VM n'a pas d'accélération GPU. Le passthrough GPU est possible mais hors sujet ici.