NAS安装macOS虚拟机指南
一、概述
在 x86 架构的 NAS(或任何 Linux 主机)上,通过 QEMU/KVM + OpenCore 引导即可安装 macOS。推荐使用 Docker + Docker-OSX 方案,通用性强、参数预设完整、社区验证充分、便于备份迁移,适用于绿联、群晖、威联通、Unraid 等各类支持 Docker 的 NAS,也适用于普通 Linux 主机。
注意事项:
- 苹果 EULA 只允许 macOS 运行在苹果硬件上,装到 NAS 属于”黑苹果”,建议仅用于个人学习/测试。
- 虚拟机没有 GPU 加速,界面会有卡顿,适合轻度使用、测试、SSH/远程桌面场景。
- ARM 芯片的机型(Realtek 等)无法安装;必须是 Intel/AMD 的 x86 机型(如 N100、N305、N5105、i3 等)。
二、前提条件
| 条件 | 要求 |
|---|---|
| CPU | x86 且开启硬件虚拟化(VT-x/AMD-V) |
| macOS 版本 | 无 AVX2 指令集的 CPU(如 N5105)最高装到 Monterey;N100/N305 等新 CPU 可装 Sonoma/Sequoia |
| 内存 | 建议 16GB,至少分给虚拟机 8GB |
| 硬盘 | 预留 50GB 以上,SSD 体验更好 |
| 软件 | NAS 支持 Docker,且系统内核支持 KVM(存在 /dev/kvm) |
三、部署步骤(推荐:Docker + Docker-OSX)
多数 NAS 的 Docker 图形界面不支持传递 /dev/kvm 设备,需通过 SSH 命令行操作。
1. 准备工作
- 安装 Docker:NAS 在应用中心/套件中心安装 Docker 套件;Linux 主机用发行版包管理器安装
- 开启 SSH 并连接:
ssh root@NAS的IP - 确认 KVM 可用:
ls -l /dev/kvm
没有的话执行 modprobe kvm_intel(AMD 则是 kvm_amd)。
2. 复制镜像基础文件(实现数据持久化)
# /path/to 替换为你的实际数据目录
docker create --name macos-tmp sickcodes/docker-osx:latest
docker cp macos-tmp:/home/arch/OSX-KVM /path/to/
docker rm macos-tmp
数据目录因 NAS 品牌而异(如绿联
/volume1/docker、群晖/volume1/docker、威联通/share/Container等),可用df -h查看。
3. 启动 macOS 容器(以 Sonoma 为例)
docker run -itd --name macos \
--device /dev/kvm \
-p 50922:10022 \
-p 5900:5900 \
-p 5999:5999 \
-v /path/to/OSX-KVM:/home/arch/OSX-KVM \
-e RAM=8 \
-e SMP=4 -e CORES=4 \
-e GENERATE_UNIQUE=true \
-e CPU='Haswell-noTSX' \
-e CPUID_FLAGS='kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on' \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/master/config-custom-sonoma.plist' \
-e SHORTNAME=sonoma \
-e EXTRA="-display none -vnc 0.0.0.0:99" \
sickcodes/docker-osx:latest
参数说明:
RAM=8:内存 8GB;SMP/CORES:CPU 核心数SHORTNAME可换成:monterey(老 CPU 用这个)、ventura、sonoma、sequoia- 端口:50922 = SSH、5900 = macOS 屏幕共享、5999 = QEMU VNC(安装时使用)
- 首次启动会从苹果服务器自动下载几 GB 的安装镜像,用
docker logs -f macos查看进度
4. 安装 macOS
- 用 VNC 客户端(如 RealVNC Viewer)连接 NAS的IP:5999
- 出现 OpenCore 菜单后,回车选择 macOS Base System
- 进入恢复界面:
- 打开”磁盘工具” → 选中那块 200GB 的大磁盘 → 抹掉,格式选 APFS(小磁盘不要动)
- 返回选”重新安装 macOS”
- 安装中会重启多次(每次重启在 OpenCore 菜单选择 “macOS Installer” 或已安装的磁盘),全程约 1~2 小时,首次进入设置向导可能很卡,耐心等待
5. 装好后使用
- macOS 中打开”系统设置 → 通用 → 共享”,开启 屏幕共享 和 远程登录
- 以后直接用 VNC 连 NAS的IP:5900(macOS 原生屏幕共享,比 5999 更流畅),或
ssh -p 50922 用户名@NAS的IP - 设置容器随主机开机自启:
docker update --restart unless-stopped macos
- 安装完成后可去掉
-e GENERATE_UNIQUE=true再重建容器,避免每次启动都更换序列号
四、备选方案
方案 A:NAS 自带虚拟机应用
绿联、群晖、威联通等品牌的虚拟机应用(底层多为 KVM)也可以尝试:
- 下载 OpenCore 引导 ISO:
github.com/thenickdude/KVM-Opencore的 Releases(OpenCore-vXX.iso.gz,解压) - 准备 macOS 安装镜像(官方恢复镜像或社区制作版)
- 上传到 NAS,在虚拟机应用中新建:4 核 / 8GB 内存 / 64GB+ 磁盘,挂载 OpenCore ISO 为光驱并设为第一启动项
- 后续步骤同上:OpenCore → 磁盘工具抹盘(APFS)→ 安装 macOS
注意:各品牌虚拟机界面均为简化版,参数不可控,部分系统版本可能起不来,失败就改用 Docker 方案。
方案 B:Linux 主机直接跑 OSX-KVM
标准 Linux 主机(Ubuntu/Debian 等)可不依赖 Docker,直接使用 github.com/kholia/OSX-KVM 项目:
- 安装 QEMU 及依赖(要求 QEMU ≥ 8.2.2)
- 克隆仓库后运行
./fetch-macOS-v2.py下载官方恢复镜像 dmg2img转换为BaseSystem.img,qemu-img创建虚拟磁盘- 运行
./OpenCore-Boot.sh启动并按上文步骤安装
五、稳定性建议
- 版本匹配:CPU 无 AVX2(如 N5105)就选
monterey,不要强上新版 - 存储放 SSD:虚拟磁盘 I/O 是最大瓶颈,机械盘上会非常卡
- 资源不要超配:
RAM不超过物理空闲内存,核心数留 2 核给主机本身 - 设置自启:
docker update --restart unless-stopped macos - 定期备份:把
OSX-KVM数据目录整个纳入备份计划,坏了可随时恢复 - 关闭 macOS 自动更新:虚拟机里的系统更新偶尔会导致引导失败,需要升级时先备份再手动升
- 装完后应用 osx-optimizer(
github.com/sickcodes/osx-optimizer):关闭 Spotlight 索引、动画等,能明显提速
六、常见问题
- 容器秒退:检查
/dev/kvm是否存在、内存是否够(free -h) - 下载安装镜像慢/失败:在电脑上用 OSX-KVM 项目(
github.com/kholia/OSX-KVM)的fetch-macOS-v2.py下载BaseSystem.dmg,用dmg2img转成BaseSystem.img放进OSX-KVM目录 - 界面卡顿:关闭 macOS 的透明效果、禁用 Spotlight 索引
- iMessage/iCloud 可能无法正常登录,属正常现象
- 安全:5900/5999/50922 端口仅限局域网使用,不要映射到公网
参考项目:
github.com/sickcodes/Docker-OSX(52.9k stars)、github.com/kholia/OSX-KVM
作者:zws 创建时间:2026-08-31 13:42
最后编辑:zws 更新时间:2026-08-31 13:45
最后编辑:zws 更新时间:2026-08-31 13:45