Push-button installer of macOS on VirtualBox
macos-guest-virtualbox.sh
is a Bash script that creates a macOS virtual machine guest on VirtualBox with unmodified macOS installation files downloaded directly from Apple servers.,
Une installation par défaut nécessite uniquement que l’utilisateur s’assoie patiemment et, moins de dix fois, appuie sur Entrée lorsque le script l’y invite, sans interagir avec la machine virtuelle.
Testé sur: bash
et zsh
sur Cygwin. Fonctionne sur macOS, CentOS 7 et Windows. Devrait fonctionner sur la plupart des distributions Linux modernes.,
Documentation
La Documentation peut être consultée en exécutant la commande./macos-guest-virtualbox.sh documentation
la majorité du script est de la documentation, des commentaires ou des messages d’erreur exploitables, ce qui devrait rendre le script facile à inspecter et à comprendre.
connectivité iCloud et iMessage et NVRAM
iCloud, iMessage et d’autres services Apple connectés nécessitent un nom d’appareil et un numéro de série valides, un ID de carte et un numéro de série, ainsi que d’autres paramètres Apple authentiques (ou similaires). Ceux-ci peuvent être définis dans NVRAM en éditant le script., Voir la commande documentation pour plus d’informations.
Taille de stockage
le script attribue par défaut une taille de stockage sur disque virtuel cible de 80 Go, qui est remplie à environ 25 Go sur l’hôte lors de l’installation initiale. Une fois l’installation terminée, la taille de stockage peut être augmentée. Voir la commande documentation pour plus d’informations.,
Primary display resolution
The following primary display resolutions are supported by macOS on VirtualBox: 5120x2880
2880x1800
2560x1600
2560x1440
1920x1200
1600x1200
1680x1050
1440x900
1280x800
1024x768
640x480
. See the documentation command for further information.,
fonctionnalités non prises en charge
Le développement et la maintenance des fonctionnalités VirtualBox ou macOS dépassent le cadre de ce script. Certaines fonctionnalités peuvent se comporter de manière inattendue, telles que la prise en charge des périphériques USB, la prise en charge audio, la prise en charge de L’invite de mot de passe de démarrage FileVault et d’autres fonctionnalités.
compatibilité CPU
Les invités macOS sur VirtualBox sont incompatibles avec certains modèles de CPU. Si le processus de démarrage macOS invité se bloque sur » LoadKernelFromStream”, « EndRandomSeed » ou « EXITBS », consultez la commande de documentation concernant les profils CPU VirtualBox et les paramètres CPUID., Certains modèles de CPU publiés en 2020 et plus tard peuvent nécessiter la configuration de L’invité sur « Mac OS X (64 bits) « au lieu de »macOS 10.13 High Sierra (64 bits) ».
performances et déploiement
Après avoir réussi à créer une machine virtuelle macOS fonctionnelle, envisagez de l’importer dans un logiciel de virtualisation plus performant ou de l’empaqueter pour des plates-formes de gestion de la configuration en vue d’un déploiement automatisé. Ces applications de virtualisation et de déploiement nécessitent une configuration supplémentaire qui dépasse la portée du script.,
QEMU avec KVM est capable de fournir une transmission matérielle de machine virtuelle pour des performances quasi natives. QEMU prend en charge le format de stockage d’images sur disque virtuel VMDK
, qui peut être configuré pour être créé par le script. Voir la commande documentation pour plus d’informations. QEMU et KVM nécessitent une configuration supplémentaire qui dépasse la portée du script.
VirtualBox Native Execution Manager (NEM)
Le VirtualBox Native Execution Manager (NEM) est une fonctionnalité expérimentale de VirtualBox., VirtualBox utilise NEM lorsque l’accès à VT-x et AMD-V est bloqué par un logiciel de virtualisation ou des fonctionnalités de protection de l’exécution telles que Hyper-V, Windows Sandbox, WSL2, protection de l’intégrité de la mémoire, Device Guard et d’autres logiciels. macOS et le programme d’installation de macOS ont des problèmes de corruption de mémoire sous NEM virtualization. Le script recherche NEM et se termine avec un message d’erreur s’il est détecté.
Bootloaders
l’invité macOS VirtualBox est chargé sans bootloaders supplémentaires, mais il est compatible avec OpenCore. OpenCore nécessite une configuration supplémentaire qui dépasse la portée du script.,
Audio
macOS peut ne pas prendre en charge les Contrôleurs audio VirtualBox intégrés. Le bootloader OpenCore peut être en mesure de charger des pilotes audio open source ou intégrés dans VirtualBox, en fournissant la configuration pour Stac9221 (Intel HD Audio) ou SigmaTel STAC9700,83,84 (ICH AC97) est disponible.
mise à l’échelle de L’affichage
VirtualBox ne fournit pas D’EDID pour son affichage virtuel et macOS n’active pas la mise à l’échelle de l’affichage (PPI élevé) sans EDID. Le chargeur de démarrage OpenCore peut injecter un EDID qui permet la mise à l’échelle de l’affichage.,
FileVault
L’implémentation VirtualBox EFI ne charge pas correctement L’invite de mot de passe FileVault Full disk encryption au démarrage. Le chargeur de démarrage OpenCore est capable de charger l’invite de mot de passe avec le paramètre ProvideConsoleGop
défini sur true
. Voir Exemple de configuration.plist.,
Dependencies
The following dependencies should be available through a package manager:bash
coreutils
gzip
unzip
wget
xxd
dmg2img
virtualbox
The following optional packages provide optical character recognition that reduces the required interaction with the script:tesseract-ocr
tesseract-ocr-eng
Supported versions:
- VirtualBox ≥ 6.1.,6, bien que des versions aussi basses que 5.2 puissent fonctionner.
- GNU
Bash
≥ 4.3, sur exécuter de Windows via Cygwin ou WSL – voir NEM - GNU
coreutils
≥ 8.22, GNUgzip
≥ 1.5, Info-ZIPunzip
≥ v6.0, GNUwget
≥ 1.14,xxd
≥ 1.11 -
dmg2img
≥ 1.6.5, sur Cygwin, le package n’est pas disponible via le gestionnaire de paquets de sorte que le script télécharge automatiquement. -
tesseract-ocr
≥ 4