Pone MacOS Catalina en una caja vagabunda.
Algunas secuencias acortadas. Tiempo de ejecución original 14.5 minutos.
Admite la creación de cajas en los formatos 'VMware_fusion', 'VMware_desktop', 'Parallels' o 'VirtualBox'.
Se requiere el siguiente software. Las versiones distintas de las mencionadas pueden funcionar, pero estas son las últimas versiones probadas.
Para iniciar un cuadro creado por macinbox , necesitará Vagrant:
Para crear una caja, necesitará una aplicación de instalador MacOS. Si está utilizando un host de Catalina, debe usar un instalador de Catalina:
Los hosts de Catalina no pueden usar los instaladores anteriores (por ejemplo, MacOS 10.14 Mojave), y los hosts de Mojave no pueden usar instaladores de Catalina.
Si está utilizando un host Mojave, debe usar un instalador de Mojave:
Se recomienda que use la misma versión para el host y el instalador, pero las versiones anteriores del instalador de MacOS (por ejemplo, MacOS 10.13 High Sierra) también pueden funcionar con hosts de Mojave y viceversa.
Nota: Si tiene preguntas sobre la permisibilidad de virtualizar macOS, es posible que desee revisar la documentación del software de virtualización que está utilizando y el acuerdo de licencia de software para MACOS.
Se requiere una de las siguientes aplicaciones de virtualización:
Para crear y iniciar una caja en los formatos 'VMWARE_FUSION' o 'VMWARE_DESKTOP', necesitará:
Para crear y iniciar un cuadro en el formato 'Paralelismos' que necesitará:
Para crear y iniciar un cuadro en el formato 'Virtualbox' que necesitará:
Instale la gema:
$ sudo gem install macinbox
Ejecute con sudo y sin argumentos, la herramienta macinbox creará y agregará una caja VMware vagabunda llamada 'MacInbox' que encerra al escritorio del usuario 'Vagrant':
$ sudo macinbox
Tenga paciencia, ya que esto puede llevar un tiempo. (En un MacBookPro11,5 de 2.5 GHz, lleva unos 11 minutos, 30 segundos). Después de que se completa la herramienta, puede crear un nuevo entorno vagabundo con la caja y comenzar:
$ vagrant init macinbox && vagrant up
Unos momentos después de ejecutar este comando, verá que la pantalla de su máquina virtual aparece con pantalla completa. (Presione Command-Control-F para salir del modo de pantalla completa). Después de que la máquina virtual complete el arranque (aproximadamente 1-2 minutos), verá el escritorio del usuario 'vagabundo' y puede comenzar a usar la máquina virtual.
Para crear un cuadro de escritorio paralelo, pase la opción --box-format :
$ sudo macinbox --box-format parallels
Para ver las opciones avanzadas, pase la opción --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
Habilitar el modo de depuración hace que los archivos intermedios (imagen de disco, VMDK y caja) se conserven después de que la herramienta salga en lugar de limpiarse. ¡¡¡ADVERTENCIA!!! Estos archivos intermedios son muy grandes y puede quedarse sin espacio en el disco muy rápidamente al usar esta opción.
Este ejemplo avanzado crea y agrega una caja llamada 'MacInbox-Large-Nogui' con 4 núcleos, 8 GB o RAM, y un disco de 128 GB; apaga el inicio de sesión automático; y evita que la GUI VMware se muestre cuando se inicia la VM:
$ sudo macinbox -n macinbox-large-nogui -c 4 -m 8192 -d 128 --no-auto-login --no-gui
Si tiene la variable de entorno Vagrant_Home establecida y desea que se agregue el cuadro creado al directorio de 'cajas' en esa ubicación, deberá decirle a sudo que lo pase a MacInbox, por ejemplo:
$ sudo "VAGRANT_HOME=${VAGRANT_HOME}" macinbox
De forma predeterminada, macinbox configurará el sistema operativo invitado para tener resoluciones HIDPI habilitadas y configurar la máquina virtual para usar la resolución de visualización nativa. Puede deshabilitar este comportamiento utilizando la opción --no-hidpi .
De forma predeterminada, macinbox creará un cuadro vagabundo en el formato 'VMware_Desktop' con las herramientas VMWare preinstaladas.
Cuando el formato de cuadro se establece en 'Paralelismos' usando la opción --box-format entonces las herramientas de paralelo se preinstalan en su lugar.
Cuando el formato de caja está configurado en 'Virtualbox', no se instalan extensiones invitadas. Tenga en cuenta que algunas características se comportan de manera diferente con VirtualBox. La resolución de la pantalla está configurada en 1280x800 y las resoluciones de HIDPI no son compatibles. El factor de escala GUI se establece en 2.0 (de modo que la VM se muestra correctamente en un host con una pantalla de retina) a menos que se use la opción --no-hidpi . Por último, el puerto SSH se habilita de forma predeterminada para que el host pueda conectarse al invitado.
Si se requiere una personalización adicional de cuadros, se puede especificar un script de usuario utilizando la opción --user-script . El script se ejecuta después de que se haya instalado el sistema operativo y se proporcionará la ruta a la ubicación de instalación como su primer y único argumento. El script debe ser ejecutable y salir con el código cero o la creación del cuadro será abortada.
La opción --installer-dmg le permite indicar la ruta a una imagen de disco que contiene un instalador de MacOS y anula la opción --installer . La imagen de disco especificada ya no debe montarse; macinbox lo montará y lo desmontará según sea necesario. Esta característica le permite usar las imágenes de disco de instalación creadas por InstallInstallMacos.py como parte del flujo de trabajo macinbox .
Esta herramienta realiza las siguientes acciones:
El cuadro creado por esta herramienta incluye un archivo Vagrant incorporado que deshabilita los siguientes comportamientos vagabundos predeterminados:
Para volver a habilitar el reenvío de puerto SSH predeterminado, puede agregar la siguiente línea al File Vagrant de su entorno:
config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh"
Para volver a habilitar la carpeta sincronizada predeterminada, puede agregar la siguiente línea al File Vagrant de su entorno:
config.vm.synced_folder ".", "/vagrant"
Esta herramienta está destinada a hacer todo lo que debe hacerse a una nueva instalación de macOS antes del primer arranque para convertirlo en una caja vagabunda que lleva a MacOS con una experiencia de usuario perfecta. Sin embargo, esta herramienta también está destinada a hacer la menor cantidad de configuración posible. En su lugar, no se hace nada que pueda diferir a un paso de aprovisionamiento en una plantilla de Vagrant File o Packer.
Este proyecto se inspiró en el gran trabajo de otros:
Este proyecto se inspira en un episodio de Mr. Robot. En el episodio, se muestra a Elliot iniciando rápidamente lo que parecía ser una máquina virtual que ejecuta un entorno de escritorio de Linux Fresh, para examinar el contenido de un CD-ROM no confiable. Mientras observaba, pensé: "¡Quiero poder hacer ese tipo de cosas con MacOS!". Seguramente no soy la única persona que ha descargado software no confiable de Internet, y ¿deseó que hubiera una manera fácil de evaluarlo sin poner en riesgo mi entorno de trabajo principal?
Este proyecto es un sucesor directo de mi proyecto Vagrant-Box-Macos, que en sí mismo estaba fuertemente inspirado en el proyecto OSX-VM-Templates de Tim Sutton.
Con el lanzamiento de MacOS 10.12.4, las técnicas prevalecientes para personalizar las instalaciones de MacOS se vieron obstaculizadas por un nuevo requisito de instalador de que Apple firmara todos los paquetes. Después de intentar varias técnicas para permitir que vagrant-box-macos admitieran MacOS 10.13 High Sierra, decidí que se necesitaba un enfoque diferente para la creación de caja, y macinbox nació.
Comience por ejecutar sudo gem install bundler y bundle install .
Para ejecutar macinbox directamente desde la raíz del espacio de trabajo GIT sin instalar la gema, ejecute sudo bundle exec macinbox .
Para instalar esta gema en su máquina local, ejecute sudo bundle exec rake install .
También puede ejecutar bin/console para un mensaje interactivo que le permitirá experimentar. Por ejemplo:
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!
Para lanzar una nueva versión, actualice el número de versión en version.rb y luego ejecute bundle exec rake release , que creará una etiqueta GIT para la versión, Push Git Commits and Tags, y empuje el archivo .gem a rubygems.org.
Los informes de errores y las solicitudes de extracción son bienvenidas en GitHub en https://github.com/baconravy/macinbox.