前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

作者头像
木子-Lee
发布2022-01-17 14:07:10
1.9K0
发布2022-01-17 14:07:10
举报

文章声明:此文基于木子实操撰写,本教程仅做为技术分享,请支持正版 生产环境:Proxmox 6.2-11, macOS Big Sur 问题关键字:macOS,macOS Big Sur,macOS Big Sur 虚拟机安装


前提要求

macOS对于苹果APP开发的同学来说是非常重要的,对互联网企业的持续集成与持续发布来说更是不可或缺,此次仅分享如何在Proxmox上安装macOS Big Sur,至于显卡直通、USB直通,不在本次的分享范围。本教程使用OpenCore安装macOS Big Sur至Proxmox 6.2虚拟化平台。首先确保您已经安装了Proxmox 6.x,另外您还需要一台真正的Mac电脑才能获取OSK密钥。另外您的Proxmox主机的CPU必须支持SSE 4.2,因此对于Intel,您的CPU必须至少需要Intel Nehalem微架构及以上版本,Intel Nehalem是第一代带有Core i5/i7品牌标识的CPU。较旧的CPU会导致finder在安装完成后反复崩溃(图形代码中出现非法指令异常)。现在AMD CPU也支持SSE 4.2,所以同样可以采用此操作指南。

制作BigSur镜像

如果您有Mac电脑,可以直接制作macOS Big Sur完整镜像,这样在安装的时候不需要从互联网下载镜像,安装速度相对于采用网络恢复模式来安装macOS Big Sur来说会快很多,但完整镜像制作只支持在Mac电脑上操作,不支持Linux操作系统,Linux操作系统只支持制作恢复镜像。

macOS上操作

代码语言:javascript
复制
xcode-select --install
git clone https://github.com/thenickdude/OSX-KVM.git
cd OSX-KVM/scripts/bigsur
make BigSur-full.img

Linux上操作

代码语言:javascript
复制
apt install qemu-utils make
git clone https://github.com/thenickdude/OSX-KVM.git
cd OSX-KVM/scripts/bigsur
make BigSur-recovery.img

镜像制作完成以后,将BigSur-full.imgBigSur-recovery.img文件上传到您的Proxmox的ISO存储目录(通常为/var/lib/vz/template/iso)。

准备OpenCore镜像

下载最新版本的OpenCore.iso.gz文件,解压后,将对应ISO文件上传至Proxmox的ISO存储目录(通常为/var/lib/vz/template/iso)。

获取OSK身份验证密钥

macOS检查它是否在真正的Mac硬件上运行,并拒绝在第三方硬件上启动。您可以通过从真实Mac硬件中读取身份验证密钥(OSK 密钥)来解决此问题。将本页的第一个C代码块保存为smc_read.c,在命令提示符下,切换到与该文件相同的目录并运行:

代码语言:javascript
复制
# 因为需要使用gcc,所以需要安装xcode-select
xcode-select --install
# 编译
gcc -o smc_read smc_read.c -framework IOKit
# 获取OSK,它会为您打印出64个字符的OSK,记下它。每台Mac都使用相同的OSK。
./smc_read
xxxxxx(c)AppleComputerInc

创建虚拟机

记住对应VM ID,后面需要修改对应配置文件。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

选择您上传的OpenCore ISO,并将操作系统类型设置为:Other。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

将图形设置为:VMWare Compatible,将BIOS设置为OVMF(UEFI),将Machine设置为Q35,勾选QEMU Agent,勾选添加EFI Disk,并选择存储,木子这里为SSD。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

设置硬盘大小为:100GB或更大。设置总线为:VirtIO Block,勾选“丢弃”,以支持TRIM。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

设置VM的核心数,使用2的幂(例如 1、2、4、8)。将CPU设置为:Penryn,勾选:启用NUMA。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

设置内存:16GB

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

网络模型设置为:VMWare vmxnet3,其它信息根据自己的实际情况进行设置。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

点击[完成]。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

添加CD/DVD驱动器

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

选择对应macOS BigSur镜像,并将对应总线设置为:IDE0。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

在VM的[选项]页面中,将[使用平板指针]设置为[是]。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

修改虚拟机配置文件参数

暂时不要启动VM。首先,通过SSH连接到您的Proxmox服务器,以便我们可以对配置文件进行一些编辑。编辑/etc/pve/qemu-server/VM-ID.conf。添加这一行,确保将您之前提取的OSK替换到正确的位置:

代码语言:javascript
复制
args: -device isa-applesmc,osk="xxxxxx(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2

这里添加了一个USB键盘,因为macOS不支持QEMU的默认PS/2键盘。确保参数都在一行上! 我们还需要添加一个-cpu参数。如果您的主机CPU是Intel,请将其添加到args行的末尾:

代码语言:javascript
复制
-cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc

如果您的主机CPU是AMD,或者上述参数对您不起作用,请使用此更兼容的替代方案:

代码语言:javascript
复制
-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

这会假装您的CPU是Penryn,即使您的主机CPU是AMD,它也会让macOS运行,并在上面添加了一堆更新的必需和可选的CPU功能。您的主机CPU不支持的功能将被忽略(使用启动时将向控制台打印警告qm start 1xx),但请注意如果没有SSE4.2支持,macOS将无法运行。 现在找到定义两个ISOide0ide2)的行,并从中删除media=cdrom部分,在其位置添加cache=unsafe,这会将其视为硬盘而不是DVD驱动器。设置引导磁盘bootdiskIDE2启动(即OpenCore 映像),保存您的更改。 您的最终VM配置文件应类似于:

代码语言:javascript
复制
root@S001:~# cat /etc/pve/qemu-server/120.conf
args: -device isa-applesmc,osk="xxxxxx(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
balloon: 0
bios: ovmf
boot: dcn
bootdisk: ide2
cores: 4
cpu: Penryn
efidisk0: SSD:vm-120-disk-1,size=1M
ide0: local:iso/BigSur-full.img,cache=unsafe,size=14G
ide2: local:iso/OpenCore-v13.iso,cache=unsafe
machine: q35
memory: 16384
name: macOSBugSur
net0: vmxnet3=5E:89:04:45:DC:A6,bridge=vmbr1,tag=3
numa: 1
ostype: other
scsihw: virtio-scsi-pci
smbios1: uuid=c9b7e2bf-6c52-4065-a588-380fa9a9a20a
sockets: 2
vga: vmware
virtio0: SSD:vm-120-disk-0,cache=unsafe,discard=on,size=100G
vmgenid: d795b429-82b1-4cb8-840b-26f5b94c0cb2

配置Proxmox

在Proxmox上运行以下命令,以避免在macOS启动期间出现引导循环。

代码语言:javascript
复制
# 临时生效
echo 1 > /sys/module/kvm/parameters/ignore_msrs
# 永久生效
echo "options kvm ignore_msrs=Y" >> /etc/modprobe.d/kvm.conf && update-initramfs -k all -u

安装macOS Big Sur

现在启动您的虚拟机,它应该启动到OpenCore启动选择器,选择[Install macOS Big Sur],按Enter启动。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

在这里等待的时间会比较长,不要着急。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

初始化磁盘,选择[Disk Utility],点击[Continue]。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

点击[Erase],在弹出的擦除框中进行以下设置: Name:macOS Big Sur(名字随便,默认为Untitled) Format:APFS Scheme:GUID Partition Map 再点击[Erase],完成磁盘格式化,退出磁盘工具。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

点击[Install macOS Big Sur],开始安装macOS Big Sur。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

点击[Continue]

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

点击[Agree]

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

选择您刚刚擦除的磁盘,用于安装macOS Big Sur,开始安装。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

安装第一阶段相对时间比较长,第一阶段以后,虚拟机会连续重启3到4次,每次都必须选择[macOS Installer]选项(这里是第二个,带有硬盘图标)才能继续安装。它不会自动为您选择:

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

安装完成以后,选择要启动的主磁盘的名称(木子的名为:Untitled)。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

安装完成,启动macOS Big Sur,开始初始化配置。

初始化macOS Big Sur

初始化过程没有什么太多好说的,主要是国家选择、数据迁移等,这里略过。 选择[China mainland]

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

中间的步骤略过,包括设置账号密码、数据迁移等,初始化完成。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

设置OpenCore永久引导

我们目前正在从附加的OpenCore ISO中使用OpenCore进行引导。让我们将其安装到硬盘驱动器上。打开[终端]并运行diskutil list以查看我们有哪些驱动器可用。使用sudo dd if=<source> of=<dest>从OpenCore CD复制EFI分区并覆盖硬盘上的EFI分区。OpenCore CD是一个小磁盘(~150MB),上面只有一个EFI分区,主硬盘是一个大(>30GB)名称带Apple_APFS Container的硬盘。 以木子的为例:OpenCore ISO的EFI分区为:disk0s1,主硬盘的EFI分区为:disk1s1,所以木子这里运行sudo dd if=/dev/disk0s1 of=/dev/disk1s1(注意不要覆盖错误,不然您得重新开始安装系统!)。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

现在关闭VM,并从硬件选项卡中删除OpenCore和Big Sur安装程序驱动器。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

在[选项]选项卡上,编辑引导顺序以将virtio0磁盘作为第一引导项。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

开机,如果一切顺利,您应该会看到OpenCore启动菜单,选择[Untitled]磁盘来启动macOS Big Sur。

#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机

睡眠管理

木子发现无法使用鼠标或键盘将macOS Big Sur从睡眠中唤醒。如果遇到同样的问题,您可以在Big Sur的[节能]设置中禁用系统睡眠以避免该问题,或者您可以通过运行以下命令手动从Proxmox中唤醒虚拟机:

代码语言:javascript
复制
qm monitor VM-ID
system_wakeup
quit
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
#导入MD文档图片# 在Proxmox 6.2 上安装 macOS Big Sur 虚拟机
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-08-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前提要求
  • 制作BigSur镜像
  • 准备OpenCore镜像
  • 获取OSK身份验证密钥
  • 创建虚拟机
  • 修改虚拟机配置文件参数
  • 配置Proxmox
  • 安装macOS Big Sur
  • 初始化macOS Big Sur
  • 设置OpenCore永久引导
  • 睡眠管理
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档