在pve上直接安装macos13 Ventura 初步优化并直通显卡 蓝牙 wifi 声卡给macos
这里假定你已经安装好了pve,并且有一定的linux和macos基本基础,本文基于最新版pve7.2-11
其次,pve折腾一个流畅好用的黑苹果是一个非常漫长的过程,很多参数和配置,别人的教程都是仅供你参考,尤其是硬件直通,还是很复杂,你要有时间研究折腾 我的pve 是 用ventoy启动的硬盘vhd文件放在exfat分区 所以后面一部分内容可能和ventoy有关,如果你是直接安装在硬盘上的 可以跳过这部分内容
我的硬盘只有两块 - 第一块硬盘 nvme ssd 512G - 硬盘安装了ventoy - 三个分区
- 第一分区 是放ventoy的启动文件也可以作为第二efi分区 分区大小800M左右fat32格式 - 第二分区是ventoyefi 32m fat16格式 , - 第三分区我主要数据分区也是ventoy的保留分区实际大小465G,pve系统的虚拟磁盘文件也放在这里 - 第二硬盘 1T 古董盘 存放一些备份文件
准备文件
- macos的恢复镜像Ventura-recovery.img
- OSX-KVM 已经支持在linux下直接获取Ventura的恢复镜像了
- opencore镜像,基于kvm优化过的OpenCore OpenCore-v19.iso https://github.com/thenickdude/KVM-Opencore/releases/
- 可选:集成virtio的winpe,方便改错ocpencore后进pe修复, https://blog.csdn.net/flydream3618/article/details/47357895
- 可选:win10安装盘iso 以及Windows的virtio-win.iso 驱动 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
- 可选:显卡直通需要的vbois文件 我的是uhd630 你如果是同款核显可以直接用 https://github.com/joyanhui/file.leiyanhui.com/tree/main/pve-unraid-kvm vbios_gvt_uefi.rom
都放到 机械盘的 iso目录里面
pve的准备工作
pve 删除 local-lvm(非必须,但是你是新手的话,建议删掉)
1 | lvremove pve/data |
在数据中心-存储中删除local-lvm分区,并编辑local,在内容一项中勾选所有可选项
更新国内源码
1 | mkdir /root/bakfile |
处理一下kve的一点小问题
这步骤非必须的,如果你的macos虚拟机一直无限重启,就要在kve执行
1 | echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u |
提示No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.
没关系的,添加此行后 pve主机控制台会提示 一个 类似kvm [1219]: ignored
的信息,你如果感觉烦躁 你可以 修改成options kvm ignore_msrs=Y report_ignored_msrs=N
忽略这个提示
重启pve
准备主要文件 opencore和macos的恢复镜像
下载 kvm-opencore,目前最新版是v19
1 2 3 |
cd /var/lib/vz/template/iso/ wget https://ghproxy.com/https://github.com/thenickdude/KVM-Opencore/releases/download/v19/OpenCore-v19.iso.gz gzip -d OpenCore-v19.iso.gz |
---|---|
Copy
或者自定下载后上传到pve的iso里面
注意这个虽然后缀是iso,但是实际上是raw格式的img文件,后面优化macos的时候我们还要对他进行一些处理。
获取 macos 13 ventura 恢复镜像
使用容器搭建一个编译环境
虽然pve也是一个完整的debian系统,但是本着各负其责的简单管理原则,尽量避免对pve本身进行太多的修改。所以建议从容器里面搞。你只要按照下面步骤操作 必定可以。
获取一个ct容器的ubuntu镜像
修改源从 pve后台: local>CT模板,获取一个Ubuntu18的镜像
或者直接下载后上传到pve
1 | cd /var/lib/vz/template/cache/ |
创建一个ubuntu18的CT容器
1 | 容器名称 ubuntu18 密码 记住 这个密码是容器的root密码 |
更新一下这个CT容器
1 | mv /etc/apt/sources.list /etc/apt/sources.list-bak |
换国内源,清华源 应该是已经停止了对ubuntu18 的支持,建议调用 中科大的源,阿里的也可以用,但是阿里云的源从今年3月开始抽风,经常限速非常慢
1 | #中科大源 |
更新系统
1 | apt update |
安装工具包
1 | sudo apt install qemu-utils make git |
克隆 https://github.com/thenickdude/OSX-KVM.git
1 | cd ~ |
编译获取恢复镜像
1 | cd ~/OSX-KVM/scripts/ventura |
根据提示,他最后一部 有执行 qemu-img convert BaseSystem.dmg -O raw Ventura-recovery.dmg 那么这个最终的dmg其实已经是raw文件了
拉到pve里面
pve 执行
1 | pct pull 101 /root/OSX-KVM/scripts/ventura/Ventura-recovery.dmg /var/lib/vz/template/iso/Ventura-recovery.img |
这样我们就拿到了Ventura-recovery.img
ubuntu18的 容器可以关掉,也可以删除了
创建虚拟机
主要参数
1 | 操作系统 : other iso文件:就是那个 OpenCore-vXX.iso 下一步 |
创建了虚拟主机 102(macos),102 ,你的可能是别的
在硬件里面,添加以恶搞cdrom到Ventura-recovery.img
开机之前手动编辑虚拟机配置
有两个地方需要修改 /etc/pve/qemu-server/虚拟机编号.conf
前面挂载的opencoreXX.iso 以及 Ventura-recovery.img 改为硬盘模式
添加kvm的args 硬件欺骗
1
nano /etc/pve/qemu-server/102.conf
修改两个cdrom
找到前面opencoreXX.iso 以及 Ventura-recovery.img 两行,两个 media=cdrom
删掉改为 cache=unsafe
修改args参数
在第二行添加
1 | args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -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 |
如果你是amd的cpu 写法不同
1 | args: -device isa-applesmc,osk="这里得自己找~" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -cpu Penryn,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+fma,+fma4,+bmi1,+bmi2,+xsave,+xsaveopt,check |
osk 是白苹果的一个类似设备编号的代码,同型号的macos都有相同这个代码,你可以网上搜索一下其他的代码
参考我的
安装基本的macos
只所以说是基本的macos,是因为macos非常依赖显卡,这里暂时只搞到一个可以启动的macos13 动画部分会比较卡,也不支持硬件加速。
安装过程中,第一次 启动选 macos base,然后格式硬盘 卷标输入自定义一个,比如我就输入的kvm
,后面会重启多次,有 macos installer的时候 选macos install,有前面输入的卷标kvm
的时候选择kvm 其他安装过程和白苹果一样,并不复杂,进mac桌面后,自己修改成中文 开机自动倒计时进macos的优化 看后面章节 核显直通和蓝牙直通接力 等 请看 后面的进阶教程
macos的简单优化
安装完成后,在pve里面删除 挂载的 Ventura-recovery.img
中文化和时区
OSX-KVM拉回来的镜像是英文版的,
点左上角苹果,system setting,搜索 lang,添加中文 删除英文。提示重启,重启一下
重启后,右上角键盘位置 设置输入法,通用设置 时间日期 时区 输入上海,回车。 提示重启的时候,建议不重启直接关机
可选操作:打开macos的远程桌面 方便不使用网页控制他
系统偏好设置,搜索 共享,打开共享设置, 打开远程管理(vnc+ard) 和远程登陆(ssh)
可选:点击 远程管理 后面那个叹号 ,再点 电脑设置 设置一个vnc 密码
点网络 以太网 查看一下ip,然后用vnc客户端远程,后面的操作用vnc客户端来操作,会比pve 的vnc网页控制台好用一些。
opencore的简单优化
准备工作1:把opencore 到硬盘 方便后续修改
为了方便,强烈建议你 吧opencore复制到一个独立的虚拟硬盘。而不是和其他人的教程一样dd到macos所在的硬盘
关机,删除前面挂载的Ventura-recovery.img 恢复镜像,我们已经用不到他了 pve添加一个硬盘 大小0.5 就好我这里用0.5 用来做efi分区。 建议 ide挂载,格式raw(文件不大,兼容性比qcow2好也方便其他软件修改编辑)。
macos 开始会提示 不能识别按照提示初始化,选择这个500M左右的硬盘 点抹掉 卷标 OPENCORE,格式fat,分区格式主引导记录。
格式完成后,再方达里面推出 这个OPENCORE卷,不然没法进行下一步 打开macos的终端 diskutil list
查看所有硬盘,可以看到 500多M这个硬盘是对应的硬盘编号是disk1 分区是 disk1s1 另外有一个 150M左右的 是我们前面的opencore的iso。 对应 disk0s1。我们用dd命令把oencore 弄到这个500M的虚拟磁盘上
1 | sudo dd if=/dev/disk0s1 of=/dev/disk1s1 |
DD会同时把卷标OPENCORE 改成disk0s1的卷标EFI这个不影响。关机,在pve中删除前面的opencoer.iso ,选项里面 启动启动顺序 只选中这个 500M的 raw ,再次开机 就ok了
如果要编辑efi,在磁盘工具里面直接装载 这个硬盘即可。
准备工作2:安装使用opencore configurator
用macos自带的safari 打开本站,然后在本站搜索本页面标题打开下面的地址下载 opencore configurator,或者你也可以用你喜欢的其他工具 比如 ProperTree也不错
https://mackie100projects.altervista.org/download-opencore-configurator/
safari下载后会自动解压。双击运行,然后打开 ,提示安全性问题,新版macos 在设置的隐私与安全性 地方,滚动到下面 找到 对应名称的 仍要打开,输入密码打开。
如果你前面和我一样的操作,opencore的那个虚拟磁盘,会自动挂载到 /Volumos/OPENCORE ,否则请点击工具 挂载efi
文件打开 找到 efi目录 oc 下的 config.plist, 就可以进行一些配置编辑工作了
opencore开机打印信息
开机不再显示白苹果进度条,而且跑代码显示操作,方便后续处理 opencore configurator依次找到
NVRAM ,里面一般有三个,找到一个带 bootarge的,在他原来的选项后面 输入 空格-v ,新版 直接右键 选择 -v 就可以了
opencore开机倒计时启动
opencore configurator依次找到
1 | MISC->Security->AllowSetDefault 勾选 |
文件 保存
重启以后,选择 卷标 按 ctrl+回车 以后启动就会自动选择这个了。
注意 倒计时 不会显示时间的,到时间 就会自动启动了
修改前的文件备份 https://github.com/joyanhui/file.leiyanhui.com/blob/main/pve-unraid-kvm/config-1.plist
修改后的 https://github.com/joyanhui/file.leiyanhui.com/blob/main/pve-unraid-kvm/config.2.plist
备份 准备做硬件直通
查看 :https://dev.leiyanhui.com/pve/mac-bak/
进阶
板载声卡 板载wifi直通 usb设备直通
最新版pve7.2-11 直接添加pci设备 就可以了,不需要额外处理
usb3.0设备 如果使用端口模式直通的话,需要在同一个端口上分别插入usb3 和usb1-2的设备,分别添加两次,如果基于供应商设备的直通,好像不可热拔插。
显卡直通,并再HDMI口输出显示
显卡直通先完成win10下的直通
在macos这个主机上,添加一个16G左右的硬盘,挂载一个win10安装盘,设置好引导顺序安装一个win10进去,
然后查看文章 https://dev.leiyanhui.com/pve/win-gpu/ 先搞定win10下可以点亮屏幕
其他处理中
只有一个usb控制器的情况下的pcie蓝牙直通
简单的方案 就是把唯一的一个usb控制器给到虚拟机,在硬件里面 添加pice 直接选中这个usb,就把所有usb口直通进去了。。。那就导致 你鼠标键盘 U盘 都无法在pve下宿主机使用。 。另外一个方案 就是增加硬件 另外价格pcieusb控制器 ,其他方案 可能会复杂很多 我选择直接 直通进去 查看usb控制器
1 | lspci -nn | grep USB |