Files
oneclickvirt.github.io/docs/guide/pve/pve_macos.md
spiritlhl 774cb0c8b3 fix
2025-05-26 22:31:58 +08:00

9.6 KiB
Raw Blame History

outline
outline
deep

开设MacOS虚拟机

前置需求

系统和硬件配置要求 --> 检测环境

只有检测环境检测出宿主机支持KVM嵌套虚拟化时才可以开设MACOS虚拟机否则会被硬件识别无法开设。

前置环境设置

  • 自动识别 CPU 类型AMD 或 Intel并根据类型设置嵌套虚拟化参数。
  • 修改 GRUB 启动参数,启用 IOMMU 和禁用默认 framebuffer。
  • 添加 VFIO 模块支持,便于直通硬件设备。
  • 黑名单声卡和显卡驱动模块,避免与 macOS 冲突。
  • 配置 KVM 相关内核参数,忽略 MSR 错误,提高兼容性。
  • 修补 Proxmox 前端状态检测逻辑,绕过状态限制。

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/extra_scripts/configure_macos.sh -o configure_macos.sh && chmod +x configure_macos.sh && bash configure_macos.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/extra_scripts/configure_macos.sh -o configure_macos.sh && chmod +x configure_macos.sh && bash configure_macos.sh

执行成功后会显示15秒后重启本机这是正常的流程不重启无法使得内核参数生效。

系统镜像下载

  • 所有镜像已预装组件体积较大最小约4.9GB),下载与解压任务将后台挂起执行。
  • 镜像为完整系统含所有组件,无需联网即可引导使用。
  • 若系统盘空闲空间不足镜像大小的2倍将拒绝下载。
  • 镜像为7z压缩格式下载后需解压才能使用。
  • 可随时查看当前下载与解压任务状态,完成后方可创建虚拟机。

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/install_macos_images.sh -o install_macos_images.sh && chmod +x install_macos_images.sh && bash install_macos_images.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/install_macos_images.sh -o install_macos_images.sh && chmod +x install_macos_images.sh && bash install_macos_images.sh

bash install_macos_images.sh

后台下载任务挂起执行后可关闭SSH窗口等待半小时到3个小时(具体等待时间取决于你的服务器带宽大小和连通性)下载iso的7z压缩包。

下载任务执行完毕后查询显示当前下载任务为空时就可以选择解压任务执行了解压挂起执行等待的时间取决于你的服务器CPU性能。

当解压任务执行完毕,查询显示当前解压任务为空时,一切准备工作就算准备好了。

相同类型的任务可以并发也可以随时取消某个任务取消时需要输入PID的值。

通过 https://github.com/oneclickvirt/macos 制作的目前支持的镜像压缩包:

# 按系统发布时间从旧到新
high-sierra.iso.7z (大小: 5.23GB)
mojave.iso.7z (大小: 6.03GB)
catalina.iso.7z (大小: 8.33GB)
bigsur.iso.7z (大小: 12.21GB)
monterey.iso.7z (大小: 12.36GB)
ventura.iso.7z (大小: 12.31GB)
sonoma.iso.7z (大小: 14.41GB)
sequoia.iso.7z (大小: 15.02GB)

MACOS虚拟机模板设置

  • 系统high-sierramojavecatalina需要至少2核4G内存40G硬盘进行开设
  • bigsur及更新版本的MACOS系统需要至少6核6G内存50G硬盘进行开设
  • 系统版本越新(下载的序号越靠后)所需的硬件就越多
  • 所有镜像均为启动盘镜像,未设置任何个人数据,所以关于硬盘分配,登录信息设置,网络设置都需要后续按照说明手动设置
  • 需要手动在web端启动虚拟机启动前可以查看所有模板是否符合预期再启动

下载模板脚本

国际

curl -L https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_macos.sh -o buildvm_macos.sh && chmod +x buildvm_macos.sh

国内

curl -L https://cdn.spiritlhl.net/https://raw.githubusercontent.com/oneclickvirt/pve/main/scripts/buildvm_macos.sh -o buildvm_macos.sh && chmod +x buildvm_macos.sh

参数含义

# ./buildvm_macos.sh VMID CPU核数 内存 硬盘 SSH端口 VNC端口 系统 存储盘 独立IPV6(留空默认N)

:::tip 这块的硬盘大小只是你开设的虚拟机的硬盘大小,实际开设过程中,程序还会挂载引导盘和系统镜像,所以实际开设一个虚拟机的硬盘需求是 虚拟机硬盘大小+镜像本体大小+引导盘大小(500MB) 请时刻注意你的硬盘空间是否足够开设虚拟机 :::

示例命令

以最旧的版本(high-sierra)为例,实验支持的配置如下(非常卡顿)

./buildvm_macos.sh 100 2 4096 45 44022 45901 high-sierra local N

模板开设完毕可执行cat vm100查看信息或到WEB端对应VM的NOTES中查看

:::tip 如果你不是通过本项目在Debian上安装的PVE而是直接使用的官方ISO安装的PVE且没有合并local和local-lvm分区或者local分区未启用支持虚拟机磁盘类型那么上面的一键命令中的local请改成local-lvm需要使用支持虚拟机磁盘的分区进行虚拟机创建 :::

以下为开设的示例VM的信息

属性
VMID 100
CPU核数 2
内存大小 4096MB
磁盘大小 45G
SSH端口 44022
VNC端口 45901
系统 high-sierra
宿主机的存储盘 local
绑定独立IPV6(留空默认N) N

:::tip 注意这里的VMID仅可使用100到256其他数字不可用 :::

MACOS系统引导和安装

前面的流程走完后,面板端可以看到一个灰色的虚拟机待启动

mac0

点击启动后进入VNC面板左侧选择框有一个全屏按钮实际操作时建议全屏操作避免分辨率问题

mac00

经过大概3分钟的引导盘加载后屏幕中央靠左侧会显示有一个启动盘可用直接点击或回车

然后又是大概3~5分钟的启动盘加载后会出现四个选择框选择Disk Utility点击进入

mac1

进入后可以看到有三个盘和一个镜像找到那个盘大小大于40G且名字叫QEMU HARDDISK Media的盘,点击Erase

mac2

此时会出现一个弹窗,需要给name重命名为macos方便后续识别使用,然后点击Erase继续初始化

mac3

初始化完毕后,点击Done

mac4

此时需要退出Disk Utility界面,右上角点击Disk Utility选择Quit Disk Utility退出当前选择框

mac5

然后回到了之前那四个选择框那里,选择Install macOS XXXX(由于我在以Big Sur为示例安装所以XXXX为Big Sur系统),点击continue

mac6

后续就是继续点击continue,然后点击Agree,然后又是点击Agree

mac7

mac8

mac9

直到又出现那三个盘但在这块可以那个盘大小大于40G且名字叫macos的盘,选择它,然后点击continue

mac10

一段时间的文件复制硬盘加载(大概跑个12分钟)后,正式进入系统安装环节,这块看你宿主机在哪个地区选哪个

mac11

选择完地区后一路点击continue

mac12

mac13

直到出现数据迁移选项Migration Assistant,选择左下角的Not Now不导入用户数据

mac14

然后就会提示你创建用户,填写用户名和账户名,还有登录所需的密码,设置完毕后点击continue

mac15

然后后面就会一路畅通点击continue,直到系统安装完毕了

网络配置

由于是离线环境进行的系统安装,所以这块需要手动配置静态网络连接宿主机的网桥

右上角点击WIFI按钮关闭WIFI后点击Network Preferences ...

mac16

进入设置界面后,点击Advanced按钮,进入高级设置界面

mac17

TCP/IP这一栏填写静态网络配置

Configure IPV4: Manually

IPV4 Address: 172.16.1.xxx(xxx换成你想绑定的ip我的vmid是100为了方便写了100)

Subnet Mask: 255.255.255.0

Router: 172.16.1.1

如果你需要配置IPV6网络类比上面的IPV4设置需要填写的会是虚拟机绑定的公网IPV6地址(PVE面板中的Note框有写)子网掩码填128默认网关填写cat /usr/local/bin/pve_check_ipv6在宿主机执行后显示的地址。

mac18

DNS这一栏填写静态网络的DNS配置

一般加入8.8.8.81.1.1.1足够了,中国境内使用114.114.114.114即可。

mac19

填写完毕且apply后,设置的左上角会显示网络已连通

mac20

此时打开默认的浏览器,随便打开一个网址,都是可访问公网资源的,证明网络已配置成功

mac21

卸载iso镜像

在ProxmoxVE的web端手动在Hardware[硬件]中点击对应的CD选择Remove[删除]然后再重启虚拟机,这样就能直接使用了

wk

Macos系统就是卸载opencore.isoxxxx(安装使用的系统镜像).iso类似上面示例图片的Windows系统卸载win镜像和virtio镜像一样。