myspaghetti / macos-virtualbox (Français)

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, GNU gzip ≥ 1.5, Info-ZIP unzip ≥ v6.0, GNU wget ≥ 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

Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *