PVE下mac直通显卡(非核显)
注:pve的安装过程省略
博主的主机配置如下:
处理器 | i3-10100T(带核显) |
内存 | 16G |
显卡 | NVIDIA GeGorce GT 730(1GB) |
Mac安装
下载镜像
- 执行以下操作下载并生成monterey恢复镜像
git clone https://github.com/thenickdude/OSX-KVM
# bigsur版本可以 cd OSX-KVM/scripts/monterey
cd OSX-KVM/scripts/monterey
make Monterey-recovery.img
- 上传Monterey-recovery.img至PVE中的local -> ISO镜像中
- 下载OpenCore,然后也上传至ISO镜像中
结果如下图:
安装
-
点击创建虚拟机
-
一般:输入名称:Mac
-
操作系统
a. ISO镜像:选择OpenCore-v16.iso
b. 访客OS:Other
-
系统
a. 显卡:VMWare兼容
b. 机器:q35
c. qemu代理:开启
d. BIOS:OVMF (UEFI),存储:local-lvm
-
硬盘
a. 总线:VirtIO Block
b. 大小:32G
c. 缓存:Write back (不安全)
-
CPU
a. 核:4
b. 类别:Penryn
c. 启用NUMA:开启
-
内存:8192
-
网络:模型:VirtIO (半虚拟化)
-
硬件 -> 添加CD -> 添加Monterey-recovery.img
-
参考2中编辑虚拟机配置文件
/etc/pve/qemu-server/102.conf
,添加args参数,且将CD中的media=cdrom改为cache=unsafeargs: -device isa-applesmc,osk="这里需要自己找或生成" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
最后硬件如图所示:
接下来就是常规Mac安装过程,注意事项:
- 中间除第一次选MacOS Base System外,多次重启后面都选macOS Installer,及你起的硬盘名称
- 安装时需要先erase擦除你的硬盘,再安装到该硬盘
Mac配置
- 安装完成后,此时启动还依赖OpenCore的CD镜像,需要在Mac虚拟机terminal中,迁移Opencore的EFI
a. 用diskutil list
查看OpenCore的CD镜像中EFI的盘符及Mac虚拟机硬盘中的EFI盘符
b. 使用sudo dd if=/dev/disk2s1 of=/dev/disk0s1
完成迁移操作,其中disk2s1为OpenCore的CD镜像中EFI的盘符,disk0s1为虚拟机硬盘中的EFI
c. 操作完成后,关闭虚拟机,以时便可以去掉(分离)2个依赖的CD镜像了 - 开启远程访问:系统设置 -> 分享 -> 屏幕共享 打开即可
- 安装依赖的软件,此处需要:
a. hackintool用于查看一些系统信息
b. OpenCore Configuration用于编辑EFI配置,注意需要在hackintool -> Boot中查看你的OpenCore版本,博主是0.7.8,来下载对应版本的OpenCore Configuration(2.57.0.0)
PVE配置
- 参考我的另一个PVE的window直通中的PVE配置,过程是一样的,https://iamroot.cn/pvean-zhuang-win/
OpenCore配置
- 打开OpenCore Configuration,Tools -> Mount EFI,选择对应的分区挂载
- 打开挂载的EFI/OC/config.plist来进行编辑
a. 修改Misc -> Boot -> timeout来启动默认进行Mac系统
b. 添加启动参数:NVRAM -> 7C4361100xxxxx -> Add -> boot-args -> 添加shikigva=40
c. 此处的参数修改可参考https://caizhiyuan.gitee.io/opencore-install-guide/ - 因为Monterey默认不支持我的gt730,所以此处还需要参考https://dortania.github.io/OpenCore-Legacy-Patcher/ ,下载OpenCore Patcher工具,执行 Post-Install Root Patch来完成补丁添加