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. 准备工作

  1. 安装 Docker:NAS 在应用中心/套件中心安装 Docker 套件;Linux 主机用发行版包管理器安装
  2. 开启 SSH 并连接:ssh root@NAS的IP
  3. 确认 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 用这个)、venturasonomasequoia
  • 端口:50922 = SSH、5900 = macOS 屏幕共享、5999 = QEMU VNC(安装时使用)
  • 首次启动会从苹果服务器自动下载几 GB 的安装镜像,用 docker logs -f macos 查看进度

4. 安装 macOS

  1. 用 VNC 客户端(如 RealVNC Viewer)连接 NAS的IP:5999
  2. 出现 OpenCore 菜单后,回车选择 macOS Base System
  3. 进入恢复界面:
    • 打开”磁盘工具” → 选中那块 200GB 的大磁盘 → 抹掉,格式选 APFS(小磁盘不要动)
    • 返回选”重新安装 macOS”
  4. 安装中会重启多次(每次重启在 OpenCore 菜单选择 “macOS Installer” 或已安装的磁盘),全程约 1~2 小时,首次进入设置向导可能很卡,耐心等待

5. 装好后使用

  1. macOS 中打开”系统设置 → 通用 → 共享”,开启 屏幕共享远程登录
  2. 以后直接用 VNC 连 NAS的IP:5900(macOS 原生屏幕共享,比 5999 更流畅),或 ssh -p 50922 用户名@NAS的IP
  3. 设置容器随主机开机自启:
docker update --restart unless-stopped macos
  1. 安装完成后可去掉 -e GENERATE_UNIQUE=true 再重建容器,避免每次启动都更换序列号

四、备选方案

方案 A:NAS 自带虚拟机应用

绿联、群晖、威联通等品牌的虚拟机应用(底层多为 KVM)也可以尝试:

  1. 下载 OpenCore 引导 ISO:github.com/thenickdude/KVM-Opencore 的 Releases(OpenCore-vXX.iso.gz,解压)
  2. 准备 macOS 安装镜像(官方恢复镜像或社区制作版)
  3. 上传到 NAS,在虚拟机应用中新建:4 核 / 8GB 内存 / 64GB+ 磁盘,挂载 OpenCore ISO 为光驱并设为第一启动项
  4. 后续步骤同上:OpenCore → 磁盘工具抹盘(APFS)→ 安装 macOS

注意:各品牌虚拟机界面均为简化版,参数不可控,部分系统版本可能起不来,失败就改用 Docker 方案。

方案 B:Linux 主机直接跑 OSX-KVM

标准 Linux 主机(Ubuntu/Debian 等)可不依赖 Docker,直接使用 github.com/kholia/OSX-KVM 项目:

  1. 安装 QEMU 及依赖(要求 QEMU ≥ 8.2.2)
  2. 克隆仓库后运行 ./fetch-macOS-v2.py 下载官方恢复镜像
  3. dmg2img 转换为 BaseSystem.imgqemu-img 创建虚拟磁盘
  4. 运行 ./OpenCore-Boot.sh 启动并按上文步骤安装

五、稳定性建议

  1. 版本匹配:CPU 无 AVX2(如 N5105)就选 monterey,不要强上新版
  2. 存储放 SSD:虚拟磁盘 I/O 是最大瓶颈,机械盘上会非常卡
  3. 资源不要超配RAM 不超过物理空闲内存,核心数留 2 核给主机本身
  4. 设置自启docker update --restart unless-stopped macos
  5. 定期备份:把 OSX-KVM 数据目录整个纳入备份计划,坏了可随时恢复
  6. 关闭 macOS 自动更新:虚拟机里的系统更新偶尔会导致引导失败,需要升级时先备份再手动升
  7. 装完后应用 osx-optimizergithub.com/sickcodes/osx-optimizer):关闭 Spotlight 索引、动画等,能明显提速

六、常见问题

  1. 容器秒退:检查 /dev/kvm 是否存在、内存是否够(free -h
  2. 下载安装镜像慢/失败:在电脑上用 OSX-KVM 项目(github.com/kholia/OSX-KVM)的 fetch-macOS-v2.py 下载 BaseSystem.dmg,用 dmg2img 转成 BaseSystem.img 放进 OSX-KVM 目录
  3. 界面卡顿:关闭 macOS 的透明效果、禁用 Spotlight 索引
  4. iMessage/iCloud 可能无法正常登录,属正常现象
  5. 安全: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