4步装出macOS虚拟机:从官方镜像到可启动macOS虚拟机ISO的完整流程
4步装出macOS虚拟机:从官方镜像到可启动macOS虚拟机ISO的完整流程
【免费下载链接】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-virtualbox 是 VirtualBox 安装 macOS 的自动化脚本:它从 Apple 官方服务器下载安装文件,把 BaseSystem.dmg 转成可启动 ISO 介质,自动完成 macOS 虚拟机的创建、配置与引导。
动手之前
开始安装前先核对以下条件,缺失任意一项脚本都会明确报错并退出:
- 宿主系统:x86 CPU 且已开启 VT-x / AMD-V 虚拟化;支持 Linux(主流发行版)、Windows(Cygwin 或 WSL1)、macOS
- VirtualBox:≥ 6.1.6;安装 Catalina 版本时要求 ≥ 6.1.4
- 基础工具:bash ≥ 4.3、GNU coreutils、gzip、unzip、wget、xxd、dmg2img ≥ 1.6.5(Cygwin 源里没有 dmg2img,脚本会自动下载)
- 可选:tesseract-ocr ≥ 4,用 OCR 识别虚拟机画面,减少需要手动按键的次数
- 磁盘空间:约 50GB 可用空间(其中约 25GB 是安装完成后可删除的临时文件)
获取脚本:
git clone https://gitcode.com/gh_mirrors/ma/macos-virtualbox cd macos-virtualbox主流程四步走
第 1 步:获取官方安装镜像
脚本先查询 Apple 官方软件更新目录,定位脚本头部所选 macOS 版本(默认 Catalina)的安装地址,再从swcdn.apple.com下载BaseSystem.dmg、InstallESDDmg.pkg等文件:
# 直接跑完整流程,下载在 prepare_macos_installation_files 阶段完成 ./macos-guest-virtualbox.sh第 2 步:把 BaseSystem.dmg 转成可启动 ISO 介质
BaseSystem.dmg先由dmg2img转成原始镜像,再写入虚拟磁盘;数 GB 的安装包会被切成 1GB 分片、打包成 VISO(VirtualBox 的虚拟 ISO)镜像,原因是常规 ISO 文件系统放不下超过 2GB 的单文件:
dmg2img Catalina_BaseSystem.dmg Catalina_BaseSystem.img # DMG 转原始镜像 VBoxManage convertfromraw --format vdi Catalina_BaseSystem.img Catalina_BaseSystem.vdi第 3 步:创建并配置 macOS 虚拟机
脚本创建一个 64 位 macOS 虚拟机,并套用内置默认值:2 核、4096MB 内存、128MB 显存、80GB 虚拟磁盘、EFI 固件、1280x800 分辨率。
VBoxManage createvm --name "macOS" --ostype "MacOS1013_64" --register VBoxManage modifyvm "macOS" --cpus 2 --memory 4096 --vram 128 --firmware efi VBoxManage setextradata "macOS" "VBoxInternal2/EfiGraphicsResolution" "1280x800"第 4 步:启动验证
启动虚拟机后,脚本自动完成"写入安装介质 → 安装到目标磁盘"两趟流程,默认只需按提示按回车(不足 10 次):
VBoxManage startvm "macOS"⚠️ 在脚本跑完之前,不要手动操作虚拟机窗口,否则脚本的按键注入会乱序。
排错
症状:虚拟机提示找不到启动盘
原因:VISO 安装介质未正确挂载,或虚拟机存储配置被改动。修复:重新挂载安装介质,或从失败阶段重跑:
VBoxManage storageattach "macOS" --storagectl "SATA" --port 2 --type dvddrive --medium "Catalina_installation_files.viso" # 或者从失败阶段重跑 ./macos-guest-virtualbox.sh populate_bootable_installer_virtual_disk症状:卡在 Apple logo,或停在 "LoadKernelFromStream" / "EXITBS"
原因:宿主 CPU 型号未被 macOS 客户系统识别(macOS 并不支持 VirtualBox 支持的所有 CPU)。修复:在虚拟机关机状态下切换 CPU 档案,逐个尝试 6 个预置档案:
VBoxManage modifyvm "macOS" --cpu-profile "Intel Core i7-6700K" # 可选项:"Intel Xeon X5482 3.20GHz" "Intel Core i7-2635QM" "Intel Core i7-3960X" # "Intel Core i5-3570" "Intel Core i7-5600U" "Intel Core i7-6700K"症状:脚本报未使用硬件虚拟化(NEM)并退出
原因:Hyper-V、WSL2、Windows 内存完整性等功能占用了 VT-x / AMD-V,VirtualBox 回退到 NEM 模式,而 macOS 在 NEM 下存在内存损坏问题。修复:关闭上述 Windows 功能,或改用原生 Linux / macOS 宿主。
症状:安装中途被中断
原因:网络断开或误操作终止了脚本。修复:脚本支持按阶段续跑;用troubleshoot阶段可生成含系统信息与 VirtualBox 日志的文件辅助定位:
./macos-guest-virtualbox.sh populate_macos_target_disk and_all_subsequent_stages ./macos-guest-virtualbox.sh troubleshoot进阶调整
参数都位于脚本头部的set_variables()函数中;也可以不改源码,改用外部变量文件加载:
# 文件内容为变量赋值行,例如 macOS_release_name="HighSierra" export macos_vm_vars_file=/path/to/vars.txt常用参数与默认值:
| 变量 | 默认值 | 说明 |
|---|---|---|
macOS_release_name | "Catalina" | 安装的 macOS 版本,取舍见下文 |
storage_size | 80000 | 虚拟磁盘容量(MB),最小 22000 |
memory_size | 4096 | 内存(MB),最小 2048 |
cpu_count | 2 | CPU 核心数,最小 2 |
gpu_vram | 128 | 显存(MB),范围 34~128 |
resolution | "1280x800" | 主显示分辨率 |
storage_format | "vdi" | 磁盘格式,vmdk便于日后导入 QEMU/KVM |
cpu_profile | "host" | CPU 档案 |
macOS 版本取舍:
- Catalina(10.15):三者中最新,要求 VirtualBox ≥ 6.1.4 且虚拟磁盘 ≥ 25000MB
- Mojave(10.14):居中,对较旧 VirtualBox 的兼容性更好
- High Sierra(10.13):要求最低,适合较老的硬件
主分辨率支持 11 档:5120x2880、2880x1800、2560x1600、2560x1440、1920x1200、1600x1200、1680x1050、1440x900、1280x800、1024x768、640x480。
默认 80GB 虚拟盘不够用时,安装完成后再扩容:先用 VirtualBox 管理器或 VBoxManage 扩大磁盘镜像,再在虚拟机内执行:
sudo diskutil repairDisk disk0 # 让系统识别新容量 # 在磁盘工具中删除 "Free space" 分区,或: sudo diskutil apfs resizeContainer disk1 0 # 把 APFS 容器扩到剩余空间收尾
建议使用 VirtualBox ≥ 6.1.6 与 dmg2img ≥ 1.6.5 以获得稳定体验。装好后可在虚拟机内通过 Software Update 升级到更新版本的 macOS。更多参数说明随时运行./macos-guest-virtualbox.sh documentation查看内置文档。
【免费下载链接】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),仅供参考