写在前面
宿主物理机的BIOS设置,是很多人容易忽略的一项,BIOS设置不正确,也很容易导致安装不成功,有些时候即使macOS系统安装上了,后续需要直通核显,也会出现因BIOS设置不正确,导致核显无法被驱动,正常情况,只要宿主物理机可以安装黑苹果,并且安装后可以成功各项驱动,那在虚拟机中直接用宿主物理机这一份引导,也是同样可以进入黑苹果系统的,如果在虚拟机中直接使用宿主物理机调试好的引导无法进系统,那就需要检查你BIOS的设置,特别留意CSM,以及预分配内存一般为 64M,如果您的 CPU 有 iGPU,将主显示器设置为 CPU/iGPU .否则可能会出现使用同一份OC引导,因为BIOS未正确设置,之前可以进mac系统,或者是之前在物理机安装可以进mac系统,PVE下在使用相同的引导却无法进mac系统的情况.
一、PVE(Proxmox)安装macOS苹果系统如果需要直通独立显卡,建议在安装前就把直通的显卡直通好,直通好之后再安装macOS系统。
这里做一下我遇到的情况分享,我使用OpenCore引导把系统安装后,直通一张GTX 770的显卡,不管怎么配置OpenCore引导,及配置直通GTX 770的显卡都无法进系统,一开始勾选了显卡的所有的直通选项,并将显示设置为了“无(none)”
出现了如下图的错误Couldn’t alloc class “AppleKeyStoreTest”,详见下图:
也有的会卡在如下前后的位置
ASP: initializing bastion sandbox callback
no external trust caches found (segment length is zero)
IOAPIC: Version 0x20 Vectors 64:111
ACPI: Executed 62 blocks of module-level executable AlL code
ACPI: sleep states S3 54 S5
CaddMemoryRange ()] AppLeVTD is not yet installed as System
LaddMemoryRange()] AppLeVTD is not yet installed as System
CaddMemoryRange ()] AppLeVTD is not yet installed as gSystem
[ PCI configuration begin
LIOPCIConfigurator: :conf lgure()] PCI configuration PCIO
console relocated to 0x7f80000000
I PCI configuration end, bridges 5,
devices 20
解决方式一:将安装MacOS苹果系统虚拟机环境搭建好后,直通显卡再安装系统,就不会有这个错误提示。
解决方式二:20240701更新这个解决方式,我自己遇到的问题是:macOS系统安装后直通不管是核显还是独立显卡,都会遇到这个错误,其实这是由于PVE的虚拟机硬件配置发生了改变,没有更新同步导致的,只需要重启PVE的宿主物理机,即可解决该问题,可以说,这个就不是问题.
二、PVE使用OpenCore安装MacOS系统,直通显卡安装系统卡IOPCIConfigurator: :configure kIOPCIEnumerationWaitTime is 900
1.解决方式一
这个与引导无关,英特尔10代及以下CPU,物理机BIOS上有CSM的设置,开启CSM,并将CSM下设置为UEFI,如果你电脑支持传统模式+UEFI模式混合的这种选项,就两者都开启。
如果CSM也是开启的,也按照上述的设置了,还是同样问题,就检查关于CSM的其他项设置,如果自己也分的不是很清楚,就把关于CSM下的其他项全部设置其他选项,同时确保预分配内存64M
2.解决方式二
20240304更新一个解决方式,关于这一个方式,感谢李晓流的实测:
在上述卡IOPCIConfigurator: :configure kIOPCIEnumerationWaitTime is 900的情况,我是在直通英特尔10代及以下CPU核显遇到的这个问题,但是后续在英特尔十代以上的CPU直通独立显卡也遇到这个问题,解决方式也很简单,BIOS中先把resize bar设置为关掉,然后把4g above关掉,这样虚拟机不勾选pcie就不出900秒问题,但是没有dp或者hdmi声音。勾选pcie有900秒问题,然后有画面和hdmi声音.
3.解决方式三
卡IOPCIConfigurator: :configure kIOPCIEnumerationWaitTime is 900.其实等2-15分钟会自动过了,也就能顺利进系统了.只不过一般开机等不了这么久,这个解决方式还是不推荐的
4.解决方式四
这种解决方式在直通580满血版独立显卡的时候经过测试,将显示无(none)修改为标准VGA或VMWare兼容,这种也可以跳过卡IOPCIConfigurator: :configure kIOPCIEnumerationWaitTime is 900,这种缺点就是引导的界面与选择,还是需要在管理后台WEB中操作,如果你用的是OC引导.也还是可以通过设置OC引导默认进入系统项解决这个问题的.
5.20240307终极解决方式,感谢李晓流提供:
原理就是,通过强制把显卡声卡挂载到q35的机型上,比如pci.0这个固定pci设备位置上,虚拟机开机后里面的显卡和声卡就是个固定的pci编号,也就不是动态显卡(也就不能动态卸载)。再把显卡声卡的addr挂相近的地址,这样方便Mac苹果系统中的驱动去驱动显卡及显卡中的声卡,达到画面和hdmi或者dp声音正常。
注:开始前建议物理机BIOS关闭(Disabled)Re-Size BAR Support及Above 4G Decoding,此方法仅限pve q35可用。关于直通显卡及声卡可选配置的大致原则:0挂显卡,勾选pcie,1挂声卡,不勾pcie,成功了后,可以两个pcie换来换去组合测试。一般独显声卡不勾,核显声卡随意。独显核显的pcie勾选不无所谓。
以下使用的方式有三种,三种方式任选,我个人的是 AMD 580 满血版独立显卡直通,测试下述三种方式发现第一种方式相对好操作些,不挑直通显卡及声卡可选配置组合。
注:修改args参数的位置及命令,100为你自己的虚拟机ID
nano /etc/pve/qemu-server/100.conf
(1)args里面增加下面内容(不挑直通显卡及声卡可选配置组合)
-set device.hostpci0.bus=pci.0 -set device.hostpci1.bus=pci.0 -set device.hostpci0.addr=0x01.0 -set device.hostpci1.addr=0x02.0
或者随意成双成对的挂pci.0 1 2 3都行并且addr地址挨着,就是不能挂pcie.0
# nano /etc/pve/qemu-server/xxx.conf配置文件完整示例 acpi: 1 agent: 1 args: -set device.hostpci0.bus=pci.0 -set device.hostpci1.bus=pci.0 -set device.hostpci0.addr=0x01.0 -set device.hostpci1.addr=0x02.0 -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on balloon: 0 bios: ovmf boot: order=ide0;sata0;virtio1 cores: 4 cpu: Haswell cpuunits: 1024 efidisk0: local-lvm:vm-101-disk-0,efitype=4m,size=4M hostpci0: 0000:01:00.0,pcie=1,romfile=amd580.rom,x-vga=1 hostpci1: 0000:01:00.1,rombar=0 ide0: local-lvm:vm-101-disk-3,cache=unsafe,size=1720M machine: pc-q35-7.2 memory: 4096 meta: creation-qemu=7.2.0,ctime=1685719709 name: Sonoma14.1 net0: virtio=DA:D8:83:DC:DF:55,bridge=vmbr0 numa: 1 ostype: other sata0: local-lvm:vm-101-disk-1,cache=unsafe,size=900M scsihw: virtio-scsi-pci smbios1: uuid=6bea0641-7c93-44b4-af72-409c6649ff38 sockets: 1 tags: imacos.top;macos;sonoma14.1_23b74 usb0: host=3-6,usb3=1 usb1: host=3-5,usb3=1 vga: none virtio1: local-lvm:vm-101-disk-2,cache=unsafe,discard=on,iothread=1,size=50G vmgenid: 14ae7089-60e4-49f5-9022-1ee17b6df4ce
(2)或args里面增加下面内容(直通显卡及声卡可选配置组合参考下图)
-set device.hostpci0.bus=pci.3 -set device.hostpci1.bus=pci.3 -set device.hostpci0.addr=0x18.0 -set device.hostpci1.addr=0x19.0
# nano /etc/pve/qemu-server/xxx.conf配置文件完整示例 acpi: 1 agent: 1 args: -set device.hostpci0.bus=pci.3 -set device.hostpci1.bus=pci.3 -set device.hostpci0.addr=0x18.0 -set device.hostpci1.addr=0x19.0 -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on balloon: 0 bios: ovmf boot: order=ide0;sata0;virtio1 cores: 4 cpu: Haswell cpuunits: 1024 efidisk0: local-lvm:vm-101-disk-0,efitype=4m,size=4M hostpci0: 0000:01:00.0,romfile=amd580.rom,x-vga=1 hostpci1: 0000:01:00.1,pcie=1,rombar=0 ide0: local-lvm:vm-101-disk-3,cache=unsafe,size=1720M machine: pc-q35-7.2 memory: 4096 meta: creation-qemu=7.2.0,ctime=1685719709 name: Sonoma14.1 net0: virtio=DA:D8:83:DC:DF:55,bridge=vmbr0 numa: 1 ostype: other sata0: local-lvm:vm-101-disk-1,cache=unsafe,size=900M scsihw: virtio-scsi-pci smbios1: uuid=6bea0641-7c93-44b4-af72-409c6649ff38 sockets: 1 tags: imacos.top;macos;sonoma14.1_23b74 usb0: host=3-6,usb3=1 usb1: host=3-5,usb3=1 vga: none virtio1: local-lvm:vm-101-disk-2,cache=unsafe,discard=on,iothread=1,size=50G vmgenid: 14ae7089-60e4-49f5-9022-1ee17b6df4ce
(3)或者只设置hostpci0显卡但是只能挂pci.0,不设置声卡,args里面增加下面内容(直通显卡及声卡可选配置组合参考下图,如果是有两张独立显卡的情况,也推荐3这种方式)
-set device.hostpci0.bus=pci.0 -set device.hostpci0.addr=0x01.0
# nano /etc/pve/qemu-server/xxx.conf配置文件完整示例 acpi: 1 agent: 1 args: -set device.hostpci0.bus=pci.0 -set device.hostpci0.addr=0x01.0 -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on balloon: 0 bios: ovmf boot: order=ide0;sata0;virtio1 cores: 4 cpu: Haswell cpuunits: 1024 efidisk0: local-lvm:vm-101-disk-0,efitype=4m,size=4M hostpci0: 0000:01:00.0,pcie=1,romfile=amd580.rom,x-vga=1 hostpci1: 0000:01:00.1,rombar=0 ide0: local-lvm:vm-101-disk-3,cache=unsafe,size=1720M machine: pc-q35-7.2 memory: 4096 meta: creation-qemu=7.2.0,ctime=1685719709 name: Sonoma14.1 net0: virtio=DA:D8:83:DC:DF:55,bridge=vmbr0 numa: 1 ostype: other sata0: local-lvm:vm-101-disk-1,cache=unsafe,size=900M scsihw: virtio-scsi-pci smbios1: uuid=6bea0641-7c93-44b4-af72-409c6649ff38 sockets: 1 tags: imacos.top;macos;sonoma14.1_23b74 usb0: host=3-6,usb3=1 usb1: host=3-5,usb3=1 vga: none virtio1: local-lvm:vm-101-disk-2,cache=unsafe,discard=on,iothread=1,size=50G vmgenid: 14ae7089-60e4-49f5-9022-1ee17b6df4ce
注:如果你使用的是双独立显卡,可以使用以下参数,注意hostpci0与hostpci2对应你直通的显卡值
-set device.hostpci0.bus=pci.0 -set device.hostpci0.addr=0x01.0 -set device.hostpci2.bus=pci.2 -set device.hostpci2.addr=0x02.0
6.20240322更新大大帅666的解决方式:
args里面增加下面内容
-global pcie-root-port.hotplug=off
只适用于独显。直通独显pci后,勾选所有功能和pcie即可。注意这个方式不适用于核显。核显无法输出声音,核显也没法勾全功能。即使分开也不能出声。
7.20240422更新解决方式
上述1-6的解决方案都是基于q35机型,我在英特尔十代及以下的设备中也遇到了这个问题,解决方式是直接设置的BIOS里的Graphics Configuration下的设置项,这种方式理论上适用于英特尔十代及以下的设备:
IGFX Multi-Monitor:Disabled
Primary Display:IGFX
Internal Graphics:Enabled
GTT Size:8MB
Aperture Size:256MB
DVMT Pre-Allocated:64M
DVMT Total Gfx Mem:MAX
8.20240428更新
900的问题很多啊,晓流再次提供了一个解决方式。有些主板要关一个选项才能不出900秒,主要对于es主板而言,Es cpu主板插入黑苹果免驱独显,直通给pve黑苹果需要的主板bios设置。关两个4g 和一个bar,主要显示器设置为igfx,以下为BIOS设置的参考。
注:除了“4G以上解码、重新调整 BAR支持”这两个关闭外,有些主板还要关“开启4GB以上 MMIO BI0S分配”中的选项,适用于黑苹果直通免驱独显,核显。
三、安装阶段卡剩余12分钟,如下图
我自己的处理方式是将直通的所有USB设备去掉,然后将安装系统的硬盘缓存修改为“默认(无缓存)”
在安装时候我还遇到了日志为"Ignoring BOM<->filesystem mismatches due to security settings",也是在剩余13或12分钟左右,这里的话我等待了10分钟左右就过去了.
关于卡12分钟的情况还有另外的一个方式,就是修改SCSI控制器,理论上也可以(建议自己多尝试吧)
四、在PVE下使用OpenCore引导安装macOS提示[AHCIJIHBA1[00070000] start: :512:Successfully initialized AHCI controller,随后还会出现禁止图标
我自己的情况属于使用了机型为i44fx安装,将机型改为q35安装就可以了.
五、在PVE下使用OpenCore引导安装macOS出现一直卡在如下位置不动,或者刚到如下位置后就重启
#[EB.LD.LF|IN] O 1<“‹null string)”> <“1”> #[EB.B. SBS|SZ] 719416 #LEBIB:SHA1 #[EB.WL.PWLFNVI!] Err (OxE) #[EB.LD.OFS|OPEN!1Err(0xE) ‹”boot\\System\\Library\\KernelCollections\\BootKernelExtensions.kc.development”› #LEB.LD.LKC|R.21<"boot\System\Library\KernelCollections\BootKernelExtensions.kc"›
这个问题一般是nano /etc/pve/qemu-server/”VMID”.conf配置文件中args:参数的问题,我这里例举我自己的供大家参考
以下是使用OpenCore引导遇到了卡上图错误的参数
args: -bios /root/OVMF_CODE.fd -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+hypervisor,kvm=on,vmware-cpuid-freq=on
修改好的参数
args: -bios /root/OVMF_CODE.fd -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -global nec-usb-xhci.msi=off -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off -cpu host,vendor=GenuineIntel,+invtsc,+hypervisor,kvm=on,vmware-cpuid-freq=on
六、PVE web端虚拟机鼠标及键盘无法使用的原因
这通常是nano /etc/pve/qemu-server/"VMID".conf args参数原因导致的,在 Proxmox VE 虚拟机的args参数中,一般会指定USB鼠标键盘设备的参数,例如 -device usb-kbd,bus=ehci.0,port=2 -device usb-mouse,bus=ehci.0,port=3 ,当然你的或许有一定差异。这个参数告诉 Proxmox VE 将一个 USB 鼠标键盘设备连接到指定的 USB 控制器、总线和端口上,因为硬件设备或PVE安装的虚拟机系统兼容原因,就会导致web界面的鼠标或键盘无法使用.
解决方式一:
不指定任何参数:如果您不指定任何参数,Proxmox VE 可能会尝试自动检测可用的 USB 控制器、总线和端口,并将键盘设备连接到合适的位置上,例如我这里,将-device usb-kbd,bus=xhci.0,port=2 -device usb-mouse,bus=xhci.0,port=3参数直接删除掉。
解决方式二:
指定不同的 USB 控制器:除了 ehci.0 外,Proxmox VE 还支持其他类型的 USB 控制器,例如 uhci、xhci 等。您可以尝试将键盘设备连接到其他类型的 USB 控制器上。例如将-device usb-kbd,bus=ehci.0,port=2 -device usb-mouse,bus=ehci.0,port=参数修改为-device usb-kbd,bus=xhci.0,port=2 -device usb-mouse,bus=xhci.0,port=3参数
解决方式三:
指定不同的端口号:除了 port=2 外,您还可以尝试将键盘设备连接到其他端口上,例如 port=3、port=4 等。
解决方式四:
除了 bus=ehci.0 外,您还可以尝试将键盘设备连接到其他 USB 总线上,例如 bus=ehci.1、bus=uhci.0 等。
我个人的情况是使用PVE版本8.0.3安装macOS Sonoma 14.4时候遇到这个问题,主要表现为在安装阶段无法在web端使用鼠标及键盘,但是系统安装好之后,进mac系统鼠标键盘正常,使用了上述方式一问题解决.
注:如果您遇到web管理界面鼠标指针不重合,可以在args参数中添加-device usb-tablet
,然后直通USB鼠标进Mac系统一次后,即可解决该问题
七、PVE 虚拟机直通USB鼠标及键盘进入Mac系统后无法使用
一般也是nano /etc/pve/qemu-server/"VMID".conf args参数原因导致的,查看自己的参数,我自己的配置中使用的是 USB 控制器。在args一行参数中添加如下参数即可
args: -device usb-tablet
还有另外的一种情况,加了定义USB鼠标键盘的参数也会导致在web管理页面进Mac系统或在安装mac系统界面无法使用键盘鼠标,这种情况也可以将定义USB鼠标键盘的参数去掉,例如我的有-device usb-kbd,bus=ehci.0,port=2与-device usb-mouse,bus=ehci.0,port=3参数.将这两个参数去掉也可以
八、pve黑苹果大于4核不能正常关机、不能正常重启,cpu和内存都100%
这个原因经晓流测试,是由于加载了VirtualSMC.kext或FakeSMC.kext驱动导致的,这两个驱动主要用来告诉系统这是Apple的硬件信息,允许系统安装在非苹果的硬件上,所以这是黑苹果的关键。但是在PVE中,安装环境发生了变化,这个驱动不是必要的,所以解决方式就是不要加载驱动就可以,您可以进入/EFI/OC/config.plist->Kernel->取消VirtualSMC.kext或FakeSMC.kext驱动的加载即可。
九、[EB|BST.FBS|RHPSZ] 3658
[EB|#LOG:DT] 2024-06-29T09:21:40
[EB|#LOG:EXITBS:START] 2024-06-29T09:21:40
如上述错误,这个问题是由于macOS 仅接受 2 的幂次的 CPU 核心。这意味着只有 1、2、4、8、16、32、64 等可以在本机运行。建议可以将CPU核心数设置为1、2、4、8、16、32、64。如果您想进一步了解,可查看此文https://imacos.top/2024/04/29/158/
这个错误理论上有其他的解决方式,后续我看看是否能有机会提供其他方式!
十、vm_shared_region_start_address failed或如下图的错误,不同macOS系统版本,可能卡的位置不一样、
一般这种错误,通常会出现在E系列的v2处理器上,如48x Intel(R) Xeon(R) CPU E5-2696 v2@ 2.50GHz ,这个型号的CPU就出现这个问题,我估计是AVX2指令集的问题(未经验证),出现这种情况,恢复模式是可以进去的,重新进恢复模式,重新格式盘,在重新安装一次系统就可以了。恢复模式如下图。
评论9