在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 古董盘 存放一些备份文件

准备文件

都放到 机械盘的 iso目录里面

pve的准备工作

pve 删除 local-lvm(非必须,但是你是新手的话,建议删掉)

  lvremove pve/data
  lvextend -l +100%FREE -r pve/root

在数据中心-存储中删除local-lvm分区,并编辑local,在内容一项中勾选所有可选项

更新国内源码

mkdir /root/bakfile
cp /etc/apt/sources.list //root/bakfile/sources.list
nano  /etc/apt/sources.list
## deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
## deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
## deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
## deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
cp /etc/apt/sources.list.d/pve-enterprise.list /root/bakfile/pve-enterprise.list
nano /etc/apt/sources.list.d/pve-enterprise.list
https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bullseye pve-no-subscription
cp /usr/share/perl5/PVE/APLInfo.pm /root/bakfile/APLInfo.pm
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
systemctl restart pvedaemon.service 
apt-get update && apt upgrade

处理一下kve的一点小问题

这步骤非必须的,如果你的macos虚拟机一直无限重启,就要在kve执行

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

或者自定下载后上传到pve的iso里面

注意这个虽然后缀是iso,但是实际上是raw格式的img文件,后面优化macos的时候我们还要对他进行一些处理。

获取 macos 13 ventura 恢复镜像

使用容器搭建一个编译环境

虽然pve也是一个完整的debian系统,但是本着各负其责的简单管理原则,尽量避免对pve本身进行太多的修改。所以建议从容器里面搞。你只要按照下面步骤操作 必定可以。

获取一个ct容器的ubuntu镜像

修改源从 pve后台: local>CT模板,获取一个Ubuntu18的镜像
或者直接下载后上传到pve

cd /var/lib/vz/template/cache/
wget https://mirrors.tuna.tsinghua.edu.cn/proxmox/images/system/ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz
创建一个ubuntu18的CT容器
容器名称 ubuntu18 密码 记住 这个密码是容器的root密码
模板选ubuntu18这个
磁盘大小16G
cpu 给几个 无所谓给4个
内存swap都给1024
网络dhcp 其他不用设置
控制台 用root 和上面的密码登录

更新一下这个CT容器

mv  /etc/apt/sources.list   /etc/apt/sources.list-bak
nano /etc/apt/sources.list

换国内源,清华源 应该是已经停止了对ubuntu18 的支持,建议调用 中科大的源,阿里的也可以用,但是阿里云的源从今年3月开始抽风,经常限速非常慢

#中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

更新系统

apt update
apt upgrade

安装工具包

sudo apt install qemu-utils make git

克隆 https://github.com/thenickdude/OSX-KVM.git

cd ~
#我这里用了ghproxy的代理加速,你也可以挂梯子 或者找别的代理加速
git clone https://ghproxy.com/https://github.com/thenickdude/OSX-KVM.git

编译获取恢复镜像

cd ~/OSX-KVM/scripts/ventura
make Ventura-recovery.dmg
# 实际下载地址:http://oscdn.apple.com/content/downloads/29/26/071-09012/dt7dmh4ttm1v5ze5989bid4gkovavkykjz/RecoveryImage/BaseSystem.dmg

根据提示,他最后一部 有执行 qemu-img convert BaseSystem.dmg -O raw Ventura-recovery.dmg 那么这个最终的dmg其实已经是raw文件了

拉到pve里面

pve 执行

pct pull 101 /root/OSX-KVM/scripts/ventura/Ventura-recovery.dmg /var/lib/vz/template/iso/Ventura-recovery.img

这样我们就拿到了Ventura-recovery.img

ubuntu18的 容器可以关掉,也可以删除了

创建虚拟机

主要参数

操作系统 : other iso文件:就是那个 OpenCore-vXX.iso 下一步   
显卡:Vmware兼容 Qemu代理:勾选 机器:q35 BIOS:UEFI UEFI下面:预注册密钥 去掉,efi储存到local  
总线:VirtIO 缓存:Write Back(不安全)格式qcow2 容量 28G+,建议32G+   
CPU核心: 是2的次幂 2 4 8 16 我12核心的,只能给8 ,不可以12 10 18 这样的核心数,类型:penryn Numa启用  
内存  4G以上,我这里 8192
网络模型:virtIO   

创建了虚拟主机 102(macos),102 ,你的可能是别的

在硬件里面,添加以恶搞cdrom到Ventura-recovery.img

开机之前手动编辑虚拟机配置

有两个地方需要修改 /etc/pve/qemu-server/虚拟机编号.conf

  • 前面挂载的opencoreXX.iso 以及 Ventura-recovery.img 改为硬盘模式

  • 添加kvm的args 硬件欺骗

    nano /etc/pve/qemu-server/102.conf
    

修改两个cdrom

找到前面opencoreXX.iso 以及 Ventura-recovery.img 两行,两个 media=cdrom删掉改为 cache=unsafe

修改args参数

在第二行添加

  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 写法不同

  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的虚拟磁盘上

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依次找到

MISC->Security->AllowSetDefault  勾选
Misc->Boot->Timeout  倒计时 时间 输入 5

文件 保存

重启以后,选择 卷标 按 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控制器

lspci -nn  | grep USB
00:14.0 USB controller [0c03]: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller [8086:a12f] (rev 31)

本文参考文章

https://www.nicksherlock.com/2021/10/installing-macos-12-monterey-on-proxmox-7/

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计