macos-guest-virtualbox.sh是一个BASH脚本,它在VirtualBox上创建MacOS虚拟机访客,并使用未修改的MacOS安装文件直接从Apple服务器下载。
默认安装仅要求用户耐心地坐着,不到十次,在由脚本提示时按Enter,而无需与虚拟机交互。
在Cygwin上的bash和zsh进行了测试。使用VT-X或AMD-V上的MacOS,CentOS 7和Windows上的X86 CPU上工作。应该在大多数现代Linux发行版中工作。
Macos Catalina(10.15),Mojave(10.14)和High Sierra(10.13)当前支持。
如果您想成为此存储库的维护者,请参阅第645期 - 维护者想要。
可以通过执行命令./macos-guest-virtualbox.sh documentation来查看文档
脚本的大部分是文档,注释或可操作的错误消息,它们应该使脚本直接进行检查和理解。
iCloud,iMessage和其他连接的Apple服务需要有效的设备名称和序列号,板ID和序列号,以及其他真实的(或类似于真正的)Apple参数。这些可以通过编辑脚本在EFI和NVRAM中设置。有关更多信息,请参见文档命令。
默认情况下,该脚本分配了一个目标虚拟磁盘存储大小为80GB,在初始安装时,在主机上填充了约25GB。安装完成后,可以增加存储尺寸。有关更多信息,请参见文档命令。
MacOS在VirtualBox 640x480支持以下主要显示分辨率: 5120x2880 2880x1800 2560x1600 2560x1440 1920x1200 1600x1200 1680x1050 1280x800 1024x768 1440x900有关更多信息,请参见文档命令。
脚本的范围正在在支持硬件上的VirtualBox上完成默认的MACOS安装过程。 VirtualBox或MacOS的进一步运行顺序超出了此脚本的范围。某些功能可能会出乎意料地表现,例如USB设备支持,音频支持,FileVault启动密码提示支持以及其他功能,包括关键功能。
该脚本是为X86 CPU MAC硬件设计的。 MacOS访客在VirtualBox上通常与其他CPU型号不兼容。如果Guest MacOS启动过程挂在“ Load Kernelfromstream”,“ Endrandomseed”或“ Exitbs”上,请参见有关VirtualBox CPU配置文件和CPUID设置的文档命令。某些在2020年发布的CPU模型可能无法启动或完成安装程序,并且可能需要手动调整CPUID设置。
虚拟机可以通过软件更新升级到最新的Macos Big Sur(11)和Macos Monterey(12)版本。大型SUR可能会在现场安装。蒙特雷可能需要将另一卷附加到虚拟机上并选择音量作为安装目标,否则升级容易失败并输入引导循环。
成功创建工作的MacOS虚拟机后,考虑将其导入到更性能的虚拟化软件中,或将其包装以进行配置管理平台以进行自动部署。这些虚拟化和部署应用程序需要超出脚本范围的其他配置。
带有KVM的Qemu能够提供虚拟机硬件传递以进行近乎本地的性能。 QEMU支持VMDK虚拟磁盘图像存储格式,可以配置为脚本创建。有关更多信息,请参见文档命令。 QEMU和KVM需要超出脚本范围的其他配置。
VirtualBox本机执行管理器(NEM)是一个实验性虚拟盒功能。当访问VT-X和AMD-V的访问被虚拟化软件或执行保护功能(例如Hyper-V,WSL2,WSLG,Windows Sandbox,Memory Integration Protection,Application Guard,凭证护罩,设备护罩以及其他功能和其他功能和其他功能和其他功能和其他功能和其他功能)时,VirtualBox使用NEM使用NEM。 MACOS和MACOS安装程序在NEM虚拟化下具有内存损坏问题。如果检测到错误消息,则脚本检查NEM并带有错误消息。
VirtualBox可以在WSL2和WSLG上使用一些内核模块编译,尽管性能非常低。在需要内核模块汇编时,最好在WSL2和WSLG上使用QEMU/KVM,这比WSL2和WSLG上的VirtualBox快数量级。 WSL2,WSLG,QEMU和KVM需要超出脚本范围的其他配置。
MacOS VirtualBox访客无需额外的引导加载程序即可加载,但与OpenCore兼容。 OpenCore需要其他配置,这些配置超出了脚本的范围。
MACOS可能不支持任何内置的VirtualBox音频控制器。 Boot Loader OpenCore可能能够在VirtualBox中加载开源或内置音频驱动程序,从而提供STAC9221(Intel HD Audio)或Sigmatel STAC9700,83,84(ICH AC97)的配置。
VirtualBox不会为其虚拟显示提供EDID,并且MACOS不会在没有EDID的情况下启用显示缩放(高PPI)。 Boot Loader OpenCore可以注入一个EDID,该EDID启用显示缩放。
启动时,VirtualBox EFI实现无法正确加载FileVault完整磁盘加密密码提示。 Bootloader OpenCore能够将密码提示加载,并设置为true参数ProvideConsoleGop 。请参阅示例config.plist
以下依赖项应通过软件包管理器可用:
bash coreutils gzip unzip wget xxd dmg2img virtualbox
以下可选软件包提供了光学特征识别,可减少与脚本所需的交互:
tesseract-ocr tesseract-ocr-eng
支持版本:
Bash ,窗户通过cygwin或wsl“ 1”,请参见NEMcoreutils , gzip ,info- unzip , wget , xxddmg2img ,在cygwin上,该软件包无法通过软件包管理器获得,因此脚本会自动下载。tesseract-ocr