Mette MacOS Catalina dans une boîte vagabonde.
Certaines séquences se sont raccourcies. Temps d'exécution d'origine 14,5 minutes.
Prend en charge la création de boîtes dans les formats «VMware_Fusion», «VMware_desktop», «Parallels» ou «VirtualBox».
Le logiciel suivant est requis. Des versions autres que celles mentionnées peuvent fonctionner, mais ce sont les dernières versions testées.
Pour démarrer une boîte créée par macinbox , vous aurez besoin de Vagrant:
Pour créer une boîte, vous aurez besoin d'une application d'installation macOS. Si vous utilisez un hôte Catalina, vous devez utiliser un installateur Catalina:
Les hôtes de Catalina ne peuvent pas utiliser plus tôt (par exemple MacOS 10.14 Mojave), et les hôtes Mojave ne peuvent pas utiliser les installateurs de Catalina.
Si vous utilisez un hôte Mojave, vous devez utiliser un installateur Mojave:
Il est recommandé d'utiliser la même version pour l'hôte et le programme d'installation, mais les versions précédentes de l'installateur MacOS (par exemple MacOS 10.13 High Sierra) peuvent également fonctionner avec des hôtes Mojave et vice-versa.
Remarque: Si vous avez des questions sur la permis de virtualiser MacOS, vous souhaiterez peut-être consulter la documentation du logiciel de virtualisation que vous utilisez et de l'accord de licence logicielle pour MacOS.
L'une des applications de virtualisation suivantes est requise:
Pour créer et démarrer une boîte dans les formats 'VMware_Fusion' ou 'VMware_Desktop' dont vous aurez besoin:
Pour créer et démarrer une boîte au format «parallèles» dont vous aurez besoin:
Pour créer et démarrer une boîte au format 'VirtualBox' dont vous aurez besoin:
Installez la gemme:
$ sudo gem install macinbox
Exécutez avec sudo et aucun argument, l'outil macinbox créera et ajoutera une boîte VMware VMARANT nommée 'MacInBox' qui démarre sur le bureau de l'utilisateur 'Vagrant':
$ sudo macinbox
Soyez patient, car cela peut prendre un certain temps. (Sur un MacBookPro11,5 à 2,5 GHz, il faut environ 11 minutes et 30 secondes.) Une fois l'outil terminé, vous pouvez créer un nouvel environnement vagabond avec la boîte et le démarrer:
$ vagrant init macinbox && vagrant up
Quelques instants après l'exécution de cette commande, vous verrez l'écran de votre machine virtuelle apparaître en plein écran. (Appuyez sur Command-Control-F pour quitter le mode plein écran.) Une fois la machine virtuelle terminée le démarrage (environ 1 à 2 minutes), vous verrez le bureau de l'utilisateur «Vagrant» et peut commencer à utiliser la machine virtuelle.
Pour créer une boîte de bureau Parallels, passez l'option --box-format :
$ sudo macinbox --box-format parallels
Pour voir les options avancées, passez l'option --help :
Usage: macinbox [options]
--box-format FORMAT Format of the box (default: vmware_desktop)
-n, --name NAME Name of the box (default: macinbox)
-d, --disk SIZE Size (GB) of the disk (default: 64)
-t, --fstype TYPE Type for disk format (default: APFS)
-m, --memory SIZE Size (MB) of the memory (default: 2048)
-c, --cpu COUNT Number of virtual cores (default: 2)
-s, --short NAME Short name of the user (default: vagrant)
-f, --full NAME Full name of the user (default: Vagrant)
-p, --password PASSWORD Password of the user (default: vagrant)
--installer PATH Path to the macOS installer app
--installer-dmg PATH Path to a macOS installer app disk image
--vmware PATH Path to the VMware Fusion app
--parallels PATH Path to the Parallels Desktop app
--user-script PATH Path to user script
--no-auto-login Disable auto login
--no-skip-mini-buddy Show the mini buddy on first login
--no-hidpi Disable HiDPI resolutions
--no-fullscreen Display the virtual machine GUI in a window
--no-gui Disable the GUI
--use-qemu Use qemu-img (vmware_desktop only)
--verbose Enable verbose mode
--debug Enable debug mode
-v, --version
-h, --help
L'activation du mode de débogage fait conserver les fichiers intermédiaires (image disque, VMDK et boîte) après la sortie de l'outil plutôt que d'être nettoyé. AVERTISSEMENT!!! Ces fichiers intermédiaires sont très grands et vous pouvez manquer d'espace disque très rapidement lorsque vous utilisez cette option.
Cet exemple avancé crée et ajoute une boîte nommée «MacInbox-Large-nogui» avec 4 cœurs, 8 Go ou RAM et un disque de 128 Go; désactive la connexion automatique; et empêche l'interface graphique de VMware lorsque la machine virtuelle est démarrée:
$ sudo macinbox -n macinbox-large-nogui -c 4 -m 8192 -d 128 --no-auto-login --no-gui
Si vous avez l'ensemble de variables d'environnement Vagrant_Home et souhaitez que la boîte créée soit ajoutée au répertoire 'Boxes' à cet endroit, vous devrez dire à Sudo de le passer à MacInBox, par exemple:
$ sudo "VAGRANT_HOME=${VAGRANT_HOME}" macinbox
Par défaut, macinbox configurera le système d'exploitation invité pour que les résolutions HIDPI activent et configurent la machine virtuelle pour utiliser la résolution d'affichage native. Vous pouvez désactiver ce comportement à l'aide de l'option --no-hidpi .
Par défaut, macinbox créera une boîte Vagrant au format 'VMware_desktop' avec les outils VMware préinstallés.
Lorsque le format de la boîte est défini sur les «parallèles» à l'aide de l'option --box-format , les outils parallèles sont préinstallés à la place.
Lorsque le format de la boîte est défini sur «VirtualBox», aucune extension invitée n'est installée. Notez que certaines fonctionnalités se comportent différemment avec VirtualBox. La résolution d'écran est définie sur 1280x800 et les résolutions HIDPI ne sont pas prises en charge. Le facteur d'échelle de l'interface graphique est défini sur 2.0 (de sorte que la machine virtuelle s'affiche correctement sur un hôte avec un écran de rétine) à moins que l'option --no-hidpi ne soit utilisée. Enfin, SSH Port-Forwarding est activé par défaut afin que l'hôte puisse se connecter à l'invité.
Si une personnalisation supplémentaire des boîtes est requise, un script utilisateur peut être spécifié à l'aide de l'option --user-script . Le script est exécuté après l'installation du système d'exploitation et sera fourni avec le chemin d'accès à l'emplacement d'installation comme premier et seul argument. Le script doit être exécutable et quitter avec le code zéro ou la création de la boîte sera interrompue.
L'option --installer-dmg vous permet d'indiquer le chemin d'accès à une image de disque contenant un installateur macOS et remplace l'option --installer . L'image disque spécifiée ne doit pas déjà être montée; macinbox montera et le démontera au besoin. Cette fonctionnalité vous permet d'utiliser les images de disque d'installation créées par installInstallmacos.py dans le cadre du flux de travail macinbox .
Cet outil effectue les actions suivantes:
La boîte créée par cet outil comprend un Vagrantfile intégré qui désactive les comportements Vagrant par défaut suivants:
Pour réactiver le transfert de port SSH par défaut, vous pouvez ajouter la ligne suivante à Vagrantfile de votre environnement:
config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh"
Pour réactiver le dossier synchronisé par défaut, vous pouvez ajouter la ligne suivante à Vagrantfile de votre environnement:
config.vm.synced_folder ".", "/vagrant"
Cet outil est destiné à faire tout ce qui doit être fait pour une nouvelle installation de macOS avant le premier démarrage pour le transformer en une boîte vagabonde qui démarre MacOS avec une expérience utilisateur transparente. Cependant, cet outil est également destiné à faire le moins de configuration possible. Rien n'est fait qui pourrait plutôt être reporté à une étape d'approvisionnement dans un modèle VagrantFile ou Packer.
Ce projet a été inspiré par le grand travail des autres:
Ce projet s'inspire d'un épisode de M. Robot. Dans l'épisode, Elliot est montré rapidement en démarrant ce qui semblait être une machine virtuelle exécutant un nouveau environnement de bureau Linux, afin d'examiner le contenu d'un CD-ROM non fiable. En regardant, je pensais: "Je veux pouvoir faire ce genre de chose avec macOS!". Je ne suis sûrement pas la seule personne à avoir téléchargé des logiciels non fiables sur Internet et j'aurais souhaité qu'il y ait un moyen facile de l'évaluer sans mettre mon environnement de travail principal en danger?
Ce projet est un successeur direct de mon projet Vagrant-Box-Macos, qui a lui-même été fortement inspiré par le projet OSX-VM-Templates de Tim Sutton.
Avec la sortie de MacOS 10.12.4, les techniques en vigueur pour personnaliser les installations de macOS ont été entravées par une nouvelle exigence d'installation que tous les packages soient signés par Apple. Après avoir tenté diverses techniques pour permettre vagrant-box-macos de prendre en charge les macOS 10.13 High Sierra, j'ai décidé qu'une approche différente de la création de boîtes était nécessaire et macinbox est né.
Commencez par exécuter sudo gem install bundler et bundle install .
Pour exécuter macinbox directement à partir de la racine de l'espace de travail GIT sans installer la gemme, exécutez sudo bundle exec macinbox .
Pour installer ce gemme sur votre machine locale, exécutez sudo bundle exec rake install .
Vous pouvez également exécuter bin/console pour une invite interactive qui vous permettra d'expérimenter. Par exemple:
opts = Macinbox::CLI::DEFAULT_OPTION_VALUES
opts[:collector] = Macinbox::Collector.new
opts[:full_name] = "Vagrant"
opts[:password] = "vagrant"
opts[:image_path] = "macinbox.sparseimage"
opts[:boxes_dir] = File.expand_path "~/.vagrant.d/boxes"
$debug = $verbose = true
include Macinbox::Actions
opts[:macos_version] = CheckMacosVersions.new(opts).run
CreateImageFromInstaller.new(opts).run
opts[:vmdk_path] = "macinbox.vmdk"
CreateVMDKFromImage.new(opts).run
opts[:box_format] = "vmware_desktop"
opts[:box_path] = "vmware_desktop.box"
CreateBoxFromVMDK.new(opts).run
InstallBox.new(opts).run
opts[:hdd_path] = "macinbox.hdd"
CreateHDDFromImage.new(opts).run
opts[:box_format] = "parallels"
opts[:box_path] = "parallels.box"
CreateBoxFromHDD.new(opts).run
InstallBox.new(opts).run
opts[:vdi_path] = "macinbox.vdi"
CreateVDIFromImage.new(opts).run
opts[:box_format] = "virtualbox"
opts[:box_path] = "virtualbox.box"
CreateBoxFromVDI.new(opts).run
InstallBox.new(opts).run
opts[:collector].cleanup!
Pour publier une nouvelle version, mettez à jour le numéro de version dans version.rb , puis exécutez bundle exec rake release , qui créera une balise GIT pour la version, pousse Git Commits and Tags, et poussez le fichier .gem sur RubyGems.org.
Les rapports de bogues et les demandes de traction sont les bienvenus sur GitHub sur https://github.com/bacongravy/macinbox.