ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

macOS VirtualBox 一键安装完整指南:3 条命令与 10 次回车装好 macOS 虚拟机

macOS VirtualBox 一键安装完整指南:3 条命令与 10 次回车装好 macOS 虚拟机

macOS VirtualBox 一键安装完整指南:3 条命令与 10 次回车装好 macOS 虚拟机

【免费下载链接】macos-virtualboxPush-button installer of macOS Catalina, Mojave, and High Sierra guests in Virtualbox on x86 CPUs for Windows, Linux, and macOS项目地址: https://gitcode.com/gh_mirrors/ma/macos-virtualbox

需要 macOS 环境的场景并不少见:编译 Swift 包、跑 iOS 模拟器、验证一套跨平台 UI,但手头只有一台 Windows 或 Linux 机器。传统做法要自己拼安装镜像、配置 EFI、处理序列号,任何一步出错都得从头再来。macos-virtualbox 把这个过程收敛成一个 Bash 脚本:从 Apple 官方服务器拉取未经修改的 macOS 安装文件,自动创建、分区并启动 VirtualBox 虚拟机,默认安装全程只需要按不超过 10 次回车。

📌 项目定位与核心价值

一句话定位

macos-virtualbox 是一个 "push-button installer"(按钮式安装器):一个 macos-guest-virtualbox.sh 脚本,在 Windows、Linux、macOS 三类主机的 x86 CPU 上,为 VirtualBox 创建可正常启动的 macOS 客户机。

核心能力

  • 官方原始安装文件:直接从 Apple 的swcdn.apple.com下载,不改动、不重打包,也不引入任何闭源启动器或 bootloader
  • 三个 macOS 版本:High Sierra (10.13)、Mojave (10.14)、Catalina (10.15),安装后还可经 Software Update 升级至 Big Sur / Monterey
  • 低交互:默认安装只需在脚本提示时按回车(少于 10 次),脚本期间明确要求用户不要手动操作虚拟机窗口
  • 分阶段可恢复:安装被拆成 17 个 stage,失败后可指定阶段断点续跑,例如./macos-guest-virtualbox.sh configure_vm and_all_subsequent_stages
  • 可选全自动:安装tesseract-ocr(≥ 4,含 eng 语言包)后,脚本会用 OCR 识别虚拟机屏幕,自动完成语言选择、打开 Terminal 等步骤

✅ 环境自检清单

运行前对照下表逐项确认。脚本自带依赖检查(check_dependencies阶段),缺什么会给出具体提示,提前核对可以少跑几轮。

检查项要求备注
CPUx86,支持 VT-x 或 AMD-V必须是硬件虚拟化,NEM 回退模式下 macOS 安装会内存损坏,脚本检测到会直接退出
主机系统Windows / Linux / macOSREADME 实测环境:macOS、CentOS 7、Windows(Cygwin);主流 Linux 发行版应可用
VirtualBox≥ 6.1.6装 Catalina 至少要 6.1.4;5.2 可能可用但有 VISO 文件系统已知问题
ShellGNU Bash ≥ 4.3 或 zsh ≥ 5.5需要交互式shell;macOS 自带 bash 3 不可用
基础工具coreutils ≥ 8.22、gzip ≥ 1.5、unzip ≥ 6.0、wget ≥ 1.14、xxd ≥ 1.11需 GNU 版本;macOS 上建议用 Homebrew / MacPorts 安装
dmg2img≥ 1.6.5Cygwin 下脚本会自动下载,其他平台需自行安装
可选tesseract-ocr ≥ 4 + tesseract-ocr-eng启用 OCR 自动操作,免手动回车
磁盘空间约 50 GB 可用其中约 25 GB 为临时安装文件,装完可删

Ubuntu / Debian 上补齐依赖:

sudo apt-get install virtualbox coreutils gzip unzip wget xxd dmg2img tesseract-ocr tesseract-ocr-eng

特别注意:Windows 上 Hyper-V、Windows Sandbox、WSL2、内存完整性等功能会占用虚拟化接口,导致 VirtualBox 退到 NEM。脚本检测到 NEM 会报错退出——先关掉这些功能再跑。

🛠️ 搭建全过程

第 1 步:获取安装脚本

git clone https://gitcode.com/gh_mirrors/ma/macos-virtualbox cd macos-virtualbox

第 2 步:补齐依赖

按上表安装缺失的包。脚本启动时会自动核对版本,不满足会打印明确的缺失项与最低版本,照装即可。

第 3 步:运行一键安装

chmod +x macos-guest-virtualbox.sh ./macos-guest-virtualbox.sh

启动后脚本先展示当前配置(虚拟机名、macOS 版本、磁盘大小等),确认后开始执行。也可以先只看不装:

./macos-guest-virtualbox.sh documentation

第 4 步:等待自动完成

脚本期间会两次与虚拟机"交互"(进入语言选择界面、在 Terminal 执行自动脚本),均由脚本模拟按键完成,你要做的只是在终端提示时按回车,全程不到 10 次。两个判断标准:

  • 虚拟机 Terminal 里的进度计数器到 100% 并重启,出现 Apple 的 macOS 安装进度条——安装完成
  • 脚本提示prompt_delete_temporary_files阶段——临时文件(约 25 GB)可以删除

⚙️ 参数与调优手册

默认配置无需任何修改即可安装。想定制时,编辑 macos-guest-virtualbox.sh 顶部的set_variables()函数,或用外部变量文件覆盖(脚本支持macos_vm_vars_file机制):

export macos_vm_vars_file=/path/to/vars.sh

vars.sh里每行一个变量赋值即可,不用改动主脚本。

关键变量速查

变量默认值取值范围 / 说明
vm_namemacOS虚拟机名称
macOS_release_nameCatalinaHighSierra/Mojave/Catalina
storage_size80000虚拟磁盘大小(MB),最小 22000;Catalina 要求 ≥ 25000
storage_formatvdivdi或vmdk。VDI 可被 VirtualBox 在线扩容;VMDK 便于之后导入 QEMU/KVM
cpu_profilehostCPU 型号伪装,启动失败时按"踩坑速查"切换
cpu_count2最小 2
memory_size4096MB,最小 2048
gpu_vram128MB,范围 34–128
resolution1280x800支持 11 档:5120x2880至640x480,如1920x1200、1440x900

三个实用的调优方向

  • 磁盘扩容:装完后 VDI 可在 VirtualBox 里直接增大,然后在虚拟机终端执行sudo diskutil repairDisk disk0,再让 APFS 容器占满(必要时sudo diskutil apfs resizeContainer disk1 0,可能要多试几次重启)。80 GB 的默认虚拟磁盘初始安装后在宿主机上只占约 25 GB。
  • 为 QEMU/KVM 准备:把storage_format设为vmdk(或装完后VBoxManage clonehd --format vmdk source.vdi target.vmdk),之后可以拿到 Linux 上用 KVM 获得接近原生的性能。
  • iCloud / iMessage 连通性:脚本写入了一组"仿真 Apple 设备参数"(型号、序列号、主板 SN 等,存于 EFI 与 NVRAM),不设置也能正常安装使用;需要登录 iCloud 时才要关心这组DmiSystem*/ROM/MLB变量。

📊 实测表现:用数字说话

这个项目的"表现"更多体现在确定性上——数字都来自 README.md 与脚本本身的实际行为,不是营销口径:

指标数值
用户交互次数< 10 次回车(安装全程)
安装流水线17 个 stage,任一阶段失败可断点续跑
默认虚拟磁盘80 GB(storage_size=80000MB)
初始安装宿主机占用约 25 GB(稀疏/动态磁盘)
临时空间需求约 50 GB(25 GB 临时文件装完可删)
支持的 macOS 版本3 个(10.13 / 10.14 / 10.15)
支持的分辨率档位11 档(640x480–5120x2880)
VirtualBox 版本跨度5.2(可能)至当前 6.x/7.x,Catalina 需 ≥ 6.1.4

对新手来说,最有价值的其实是"可预期":同样的硬件条件,流程会稳定地走到同一个进度点;卡住时脚本的报错信息本身就是下一步操作指南。

🎯 适合谁、怎么用

  • iOS / macOS 开发:在 Windows/Linux 上编译 Swift、跑 xcodebuild、调试跨平台 UI,不必为每个项目申请一台 Mac
  • 自动化与批量环境:脚本支持非交互 shell(需搭配 tesseract-ocr),配合vars.sh变量文件可以脚本化地批量拉起同构 macOS 环境
  • 学习与教学:单文件、1700+ 行、注释密集的脚本本身就是 VirtualBoxVBoxManage、EFI/NVRAM、macOS 安装流程的一份可执行教材
  • QEMU/KVM 过渡方案:用vmdk格式把虚拟机"养成"在 VirtualBox 里,再迁移到 Linux KVM 上获得硬件直通性能——README 明确推荐这条路径

🚨 踩坑速查

高频问题基本都写在脚本的报错和 README.md 里,按现象对照处理:

现象原因解法
脚本提示检测到 NEM 后退出Hyper-V、WSL2、内存完整性等占用了 VT-x/AMD-V关闭这些功能;Windows 上优先用 WSL1 或 Cygwin 跑脚本
启动卡在LoadKernelFromStream/EndRandomSeed/EXITBS较新的 CPU(2020 年后常见)不被 macOS 识别关机状态下依次尝试--cpu-profile host+--cpuidremoveall,再逐个换预置 CPU profile(i7-2635QM、i7-5600U 等 6 种)
Catalina 装不上,脚本报版本错误VirtualBox < 6.1.4升级 VirtualBox
下载 Apple 文件失败,提示证书不受信任宿主机缺 CA 证书安装ca-certificates包
装完系统后磁盘空间不够虚拟磁盘是 80 GB 上限扩容 VDI 后执行diskutil repairDisk+ APFS 扩容(见调优手册)
升级 Monterey 后反复重启原地升级不稳定挂第二块虚拟盘并选它作为安装目标
声音 / 显示缩放 / FileVault 密码提示不正常属于 VirtualBox 与 macOS 的既有限制,不在脚本范围内需要 OpenCore 等额外配置,脚本明确标注 out of scope

排查时先跑./macos-guest-virtualbox.sh troubleshoot,会生成包含系统信息、VirtualBox 日志和安装文件校验和的诊断文件,方便定位。

🔍 项目内幕:一个脚本怎么干完所有事

仓库只有三个文件,结构极简:

文件说明
macos-guest-virtualbox.sh全部逻辑,1700+ 行,17 个 stage
README.md使用说明与已知限制
LICENSEGPL 2.0 或更高版本

工作原理可以拆成五条主线:

  1. 拿官方文件:先拉 Apple 的swscan.apple.comsucatalog,解析出InstallAssistantAuto.smd的下载基址,再取回BaseSystem.dmg、InstallESDDmg.pkg等原始文件;超过 2 GB 的 pkg 会切成 1 GB 分卷,绕开 VirtualBox VISO 与 ISO9660 的单文件限制
  2. 造虚拟介质:用dmg2img把BaseSystem.dmg转成磁盘镜像,再用 VirtualBox 的 VISO 机制把安装文件、EFI 启动脚本、NVRAM 二进制文件打包成虚拟光驱
  3. 写 NVRAM:用xxd+gzip(crc32)手工构造MLB、ROM、system-id、csr-active-config四个 NVRAM 条目的二进制文件,启动后经 EFI Shell 的dmpstore写入,满足 iCloud 等设备识别需求
  4. 自动操作虚拟机:脚本内置了一张完整的 QWERTY 键盘 scancode 表,通过VBoxManage controlvm keyboardputscancode逐键模拟输入,替你点语言选择、开 Terminal、执行分区与startosinstall脚本
  5. OCR 兜底全自动:装了 tesseract 后,脚本会定时截图虚拟机并识别屏幕文字(Language 界面、Utilities 菜单),匹配成功就自动按键,彻底免交互

整个流程以stages数组驱动,每个 stage 都是可独立调用的函数——这也是断点续跑能力的来源。

🤝 持续维护与贡献

  • 版本与许可:当前脚本版本 0.99.2.4,GPL 2.0 or higher
  • 维护者招募中:README 明确标注 "Maintainer wanted",并在 issue #645 中征集新维护者。项目功能稳定但缺少活跃维护,这正是参与者能产生实际价值的窗口
  • 贡献路径:克隆仓库 → 复现一个 issue(CPU 兼容性、WSL 路径问题、报错文案是常见方向)→ 修复后提交。脚本"大部分内容是文档、注释和可执行的错误信息",阅读门槛比一般脚本低不少
  • 边界提醒:OpenCore 音频/显示缩放、FileVault、QEMU/KVM 迁移、配置管理批量部署都在脚本声明的范围之外,做相关改进时建议作为独立文档或工具,而不是塞进主脚本

🚀 第一步行动建议

不用一次看完再动手,按这个顺序走最稳:

git clone https://gitcode.com/gh_mirrors/ma/macos-virtualbox cd macos-virtualbox ./macos-guest-virtualbox.sh documentation # 先通读文档 ./macos-guest-virtualbox.sh # 准备就绪后正式开跑

跑之前花两分钟对照"环境自检清单"把 VirtualBox 版本和 50 GB 空间确认掉;跑的过程中如果卡住,把终端提示的 stage 名称记下来,配合troubleshoot命令基本就能对上"踩坑速查"表里的解法。

【免费下载链接】macos-virtualboxPush-button installer of macOS Catalina, Mojave, and High Sierra guests in Virtualbox on x86 CPUs for Windows, Linux, and macOS项目地址: https://gitcode.com/gh_mirrors/ma/macos-virtualbox

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表