Ce script génère automatiquement une machine virtuelle de macOS pour VirtualBox

Nicolas Furno |

Apple autorise la virtualisation de son système d’exploitation dédié aux Mac depuis OS X Lion, mais en théorie vous devez le faire uniquement sur l’un des ordinateurs vendus par le constructeur. Toutefois, rien n’interdit d’installer le système sur un ordinateur équipé d’un autre système d’exploitation, même si c’est souvent plus complexe. macos-guest-virtualbox est un script Bash qui automatise l’opération et génère automatiquement une machine virtuelle de macOS pour VirtualBox. Ce script fonctionne sur macOS, mais aussi sur Linux et même sur Windows 10 grâce à WSL ou Cygwin.

Lancement du script, ici sur macOS. Les paramètres par défaut peuvent être modifiés directement dans le script.

La philosophie de ce script à exécuter dans un terminal Unix est d’offrir un fonctionnement entièrement automatisé. Vous pouvez modifier quelques paramètres en changeant quelques variables dans le script ou en utilisant la commande export au préalable, ou alors vous contenter des réglages par défaut. Pour le reste, tout se fera automatiquement, y compris le téléchargement de la dernière version de macOS.

Le script macos-guest-virtualbox permet d’installer les dernières versions de macOS Catalina (10.15), Mojave ou High Sierra. Il nécessite d’avoir installé au préalable VirtualBox en version 6.14 au minimum et l’image virtuelle extensible de 80 Go créée par défaut sera remplie à hauteur de 20 Go environ. Après exécution, vous aurez un macOS fonctionnel à quelques exceptions près : FileVault n’est pas géré, le son peut poser problème et il faut renseigner le numéro de série d’un vrai Mac pour bénéficier d’iMessage et d’iCloud.

L’image VirtualBox peut être utilisée directement, mais les performances seront alors moyennes. L’auteur du script recommande de la convertir ensuite à QEMU en utilisant l’hyperviseur KVM pour bénéficier de l’accélération matérielle, mais cette étape nécessitera des configurations supplémentaires qui ne sont pas gérées par ce script. À défaut, pensez à activer le mode VBoxSVGA de VirtualBox pour les graphismes, sinon vous aurez des performances très médiocres.

Si vous voulez virtualiser macOS sur un Mac, vous pouvez aussi utiliser Parallels Desktop ou VMware Fusion. Ces deux apps commerciales proposent des méthodes simplifiées pour installer le système d’Apple, mais elles se limitent aussi au matériel de la firme. macos-guest-virtualbox apporte en comparaison beaucoup de souplesse.

avatar yann.queniart | 

Virtual box c'est bien des fichiers OVA, comme sur Synology Virtual Machine Manager.

Quelqu'un a essayé d'importer une VM sur un Syno histoire d'avoir un serveur MacOS ?

avatar eldison | 

@yann.queniart

Non, mais je serais preneur aussi :-) (je vais tester ce week-end si j’en ai le temps)

avatar occam | 

@yann.queniart

La question est discutée périodiquement sur les forums Synology, p.ex. :
https://community.synology.com/enu/forum/6/post/130848

Sans succès tangible jusqu’à présent, à ma connaissance. Et même si cela marchait en principe, il faut tenir compte des performances très limitées des CPU disponibles dans les DS Synology, plus ou moins classe Celeron. Il faudrait également augmenter la RAM à 8 GB minimum, là où c’est possible (donc pas sur les modèles d’entrée de gamme).

DSM est un OS svelte et frugal, hautement optimisé pour se contenter de processeurs qui mettraient à genoux un OS desktop conventionnel.

Tenant compte de ces contraintes matérielles, un macOS virtualisé sur une telle machine n’aurait pas grand intérêt, même si on arrivait à le faire marcher.

Pour des applications spécifiques en revanche, il y a une solution de portage sur Synology qui marche : la dockerisation. Mais c’est une autre paire de manches.

La virtualisation de Windows est mieux agencée et même prévue sur Synology, mais notez qu’il faudra également passer par QEMU :
https://www.synology.com/en-global/knowledgebase/DSM/help/Virtualization/virtual_machine

Les performances d’un tel système sont néanmoins tellement rudimentaires que la pertinence de l’effort interroge.

avatar yann.queniart | 

@occam

Oui je vois bien les contraintes matériels, j’ai un DS918+ avec 8Go et la j’ai un DS1819+ avec 32Go qui arrive. C’est pas pour de l’usage maison ;)

J’ai déjà pas mal de chose qui passe sur docker mais certains trucs spécifiques c’est pas possible, je pense au cache iCloud par exemple. Dans une boîte full Mac (photos, vidéo oblige ^^) c’est un avantage ce cache. Je sais on peut le faire tourner sur n’importe qu’elle machine mais si elle est dédié on est sur qu’elle est toujours dispo.

MacOS gérant très mal la sorti de veille avec les baie de disque thunderbolt les machines clientes sont uniquement machines clientes

avatar occam | 

@yann.queniart

Merci, je comprends mieux les raisons qui vous motivent.
Un DS1819+ avec 32Go est une machine sur laquelle ça vaut au moins le coup d’essayer. Si vous réussissez, vous ferez des envieux !

Mais il y a un point spécifique où j’ai des doutes : le temps de réponse. Car, pour le cache iCloud, je suppose que c’est un facteur ? Or le temps de réponse de tous les Synology que j’ai n’est pas foudroyant, même ceux à cache SSD (et en mode High Availability, bien entendu).

avatar Ingmar97432 | 

@occam

Cela pourra-t-il avoir plus de sens sous Xpenology en profitant d’une architecture bcp plus costaud? (je tente bientôt avec un i7 32go sur un serveur carte mère changée 8 baies dont 3 pour win10, macOS et Ubuntu et 5 pour Xpenology)

avatar SquallX | 

On peut utiliser Mac OS normalement sur cette vm ? Compiler avec Xcode et soumettre une app ?

avatar Romuald | 

Dommage, c'est Mavericks que je voudrais virtualiser, histoire de pouvoir réutiliser quelques logiciels inopérants depuis El Capitan, et surtout mon scanner (pas merci à Canon pour la non mise à jour de ses pilotes). Tant pis, je conserve le double boot tant que c'est possible, mais c'est moyen pratique.

avatar lmouillart | 

Autant utiliser https://github.com/foxlet/macOS-Simple-KVM ça évite le passage virtualbox.
KVM avec virtio et gvt (sur un laptop) ou une carte discrète utilisé avec iommu lui sera superieur en tout point sauf l'aspect clicodrome. En revanche on aura des perfs proche du natif avec une perte de seulement 5 à 10%.

avatar xDave | 

@lmouillart
Ceci peut t'aider pour ton scanner.
http://www.vuescan.fr

Je ne m'en suis pas servi depuis une éternité.

avatar madmax54000 | 

Quelqu'un peut expliquer la procédure pour utiliser ce script dans Virtual Box (sous windows10) ?

avatar Jidus | 

@madmax54000

IDem. J'essaie de l'installer sur Windows via cygwin mais concrètement, sans info ni réelle doc, impossible.

avatar Casul (non vérifié) | 

bonjour, j'ai installé l'environnement ubuntu sous windows 10 , j'ai lancé wsl2 , j'ai Virtualbox d'installé, je lance le script mais il ne se passe rien. pouvez vous m'indiquer les étapes , il y a sans doute un truc important que je n'ai pas compris dans l'enchainement, je vous remercie

CONNEXION UTILISATEUR