将Macos Catalina放入流浪盒子中。
一些序列缩短了。原始运行时间14.5分钟。
支持在“ vmware_fusion”,“ vmware_desktop”,“ Parallels”或“ VirtualBox”格式中创建框。
需要以下软件。除了提到的版本外,其他版本可能会起作用,但这些是经过测试的最新版本。
要启动macinbox创建的框,您将需要Vagrant:
要创建一个盒子,您将需要MacOS安装程序应用程序。如果您使用的是Catalina主机,则必须使用Catalina安装程序:
Catalina主机无法更早使用(例如MacOS 10.14 Mojave)安装程序,而Mojave主机不能使用Catalina安装程序。
如果您使用的是Mojave主机,则应使用Mojave安装程序:
建议您在主机和安装程序中使用相同的版本,但是MacOS安装程序的先前版本(例如MacOS 10.13 High Sierra)也可能与Mojave Hosts一起使用,反之亦然。
注意:如果您对虚拟化MACOS的允许性有疑问,则可能需要查看您使用的虚拟化软件的文档以及MacOS的软件许可协议。
需要以下虚拟化应用程序之一:
要在“ vmware_fusion”或“ vmware_desktop”格式中创建并引导一个框:您需要:
要在“相似之处”格式中创建和引导一个框,您需要:
要在“ VirtualBox”格式中创建和引导一个框:您需要:
安装宝石:
$ sudo gem install macinbox
使用sudo和无参数运行, macinbox工具将创建并添加一个名为“ MacInbox”的VMware框,该框将全屏启动到“ Vagrant”用户的桌面:
$ sudo macinbox
请耐心等待,因为这可能需要一段时间。 (在2.5 GHz MacBookPro11,5上,大约需要11分30秒。)工具完成后,您可以使用盒子创建一个新的流浪环境并开始:
$ vagrant init macinbox && vagrant up
运行此命令后的片刻,您会看到虚拟机的显示器显示完整的屏幕。 (按Command-Control-F将其退出全屏模式。)虚拟机完成启动(大约1-2分钟)后,您将看到“ Vagrant”用户的桌面,并可以开始使用虚拟机。
要创建一个Parallels桌面框,请传递--box-format选项:
$ sudo macinbox --box-format parallels
要查看高级选项,请传递--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
启用调试模式会导致中间文件(磁盘映像,VMDK和框)在工具退出后保存而不是清理。警告!!!这些中间文件非常大,使用此选项时,您可以很快用光磁盘空间。
这个高级示例创建并添加了一个名为“ Macinbox-large-nogui”的盒子,带有4个内核,8 GB或RAM和一个128 GB磁盘;关闭自动登录;并防止启动VM时显示VMware GUI:
$ sudo macinbox -n macinbox-large-nogui -c 4 -m 8192 -d 128 --no-auto-login --no-gui
如果您的vagrant_home环境变量集,并希望将创建的框添加到该位置的“框”目录中,则需要告诉Sudo将其传递到MacInbox,例如:
$ sudo "VAGRANT_HOME=${VAGRANT_HOME}" macinbox
默认情况下, macinbox将配置Guest OS以启用HIDPI分辨率,并配置虚拟机以使用本机显示分辨率。您可以使用--no-hidpi选项禁用此行为。
默认情况下, macinbox将使用预安装的VMware工具的“ VMware_desktop”格式创建一个Vagrant Box。
当使用--box-format选项设置框格式为“相似之处”时,则将Parallels工具预先安装。
当盒子格式设置为“ VirtualBox”时,未安装访客扩展名。请注意,某些功能对VirtualBox的行为不同。屏幕分辨率设置为1280x800,不支持HIDPI分辨率。除非使用--no-hidpi选项,否则GUI量表因子设置为2.0(使VM在带有视网膜显示屏的主机上正确显示)。最后,默认情况下启用了SSH端口 - 端口,以便主机可以连接到来宾。
如果需要其他框自定义,则可以使用--user-script选项指定用户脚本。该脚本是在安装OS之后运行的,并将为安装位置的第一个也是唯一的参数提供通往安装位置的路径。该脚本必须是可执行的,并且以零代码退出,否则将中止框创建。
--installer-dmg选项允许您指示包含MacOS安装程序的磁盘映像的路径,并覆盖--installer选项。指定的磁盘图像尚未安装; macinbox将根据需要安装并卸载它。此功能允许您使用installinstallmacos.py创建的安装程序磁盘图像作为macinbox Workflow的一部分。
该工具执行以下操作:
该工具创建的框包括一个内置的vagrantfile,该盒子可以禁用以下默认的vagrant行为:
为了重新启用默认的SSH端口转发,您可以将以下行添加到环境的VagrantFile:
config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh"
要重新启用默认同步文件夹,您可以将以下行添加到环境的VagrantFile:
config.vm.synced_folder ".", "/vagrant"
该工具旨在在第一个启动之前完成所有需要完成的MacOS需要完成的操作,以将其变成带有无缝用户体验的Vagrant盒子。但是,此工具还旨在进行最少的配置。没有做任何事情可以将其推迟到VagrantFile或Packer模板中的配置步骤。
这个项目的灵感来自其他人的伟大作品:
该项目从机器人先生的一集中汲取了灵感。在这一集中,艾略特(Elliot)被迅速启动,启动似乎是运行新鲜Linux桌面环境的虚拟机,以检查不受信任的CD-ROM的内容。正如我看的那样,我想:“我希望能够用Macos做这种事情!”。当然,我不是唯一从Internet下载不信任软件的人,并希望有一种简单的方法可以对其进行评估而不会使我的主要工作环境处于危险之中?
该项目是我的Vagrant-Box-Macos项目的直接继任者,该项目本身受到Tim Sutton的OSX-VM-Templates项目的重大启发。
随着MACOS 10.12.4的发布,定制MacOS安装的主要技术受到了新的安装程序要求,即Apple签署了所有软件包。在尝试允许vagrant-box-macos支持MacOS 10.13 High Sierra之后,我决定需要另一种方法来创建盒子, macinbox诞生了。
首先运行sudo gem install bundler和bundle install 。
要直接从GIT工作区的根部运行macinbox ,而无需安装GEM,请运行sudo bundle exec macinbox 。
要将此宝石安装到本地计算机上,请运行sudo bundle exec rake install 。
您还可以运行bin/console以获得交互提示,该提示可以让您进行实验。例如:
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!
要发布新版本,请在version.rb中更新版本号,然后运行bundle exec rake release ,该版本将为版本创建一个git标签,推送git consits and tags,然后将.gem文件推到rubygems.org。
欢迎在https://github.com/bacongravy/macinbox上的GitHub上的错误报告和拉动请求。