此文档是介绍在QEMU/KVM中安装macOS VM的操作。
大多数内容翻译自foxlet所写的项目README.md,当然也修改和增加了一些内容。
项目github链接。
此项目由[@FoxletFox](https://twitter.com/foxletfox)发起,获得其他许多人的帮助。
macOS和KVM的新手? 请看the FAQs。
需要说明的是苹果公司不允许macOS系统在非MAC电脑上安装,所以本文的方法请不要用于商业用途,仅供想折腾的极客参考。
我(陈孝松)有一台macbook pro,但还是更喜欢用Linux(Fedora),有极少数的商业软件没有提供Linux版本,又不想用windows系统,所以偶尔使用QEMU/KVM下安装的macOS系统。
你将需要一个具有qemu
(3.1或更高版本),python3
,pip
和KVM模块已启用的Linux系统。 不需要 Mac电脑。 不同发行版的一些安装命令(本人用的是Fedora):
sudo apt-get install qemu-system qemu-utils python3 python3-pip # for Ubuntu, Debian, Mint, and PopOS.
sudo apt-get install qemu-kvm virt-manager bridge-utils -y # ubuntu 20.04
sudo pacman -S qemu python python-pip python-wheel # for Arch.
sudo xbps-install -Su qemu python3 python3-pip # for Void Linux.
sudo zypper in qemu-tools qemu-kvm qemu-x86 qemu-audio-pa python3-pip # for openSUSE Tumbleweed
sudo dnf install @virtualization -y # for Fedora
sudo emerge -a qemu python:3.4 pip # for Gentoo
运行jumpstart.sh
脚本下载macOS的安装介质(需要连接互联网)。 默认安装使用Catalina,但是你可以通过添加--high-sierra
,--mojave
或--catalina
来选择要获取的版本。 例如:
./jumpstart.sh --catalina
注意: 如果已经下载了
BaseSystem.img
,则可以跳过此步骤。 如果你具有BaseSystem.dmg
,则需要使用dmg2img工具进行转换。
使用qemu-img
创建一个空硬盘,根据你的需要修改名称和硬盘大小:
qemu-img create -f qcow2 MyDisk.qcow2 64G
将以下内容添加到basic.sh
脚本的末尾:
-drive id=SystemDisk,if=none,file=MyDisk.qcow2 \
-device ide-hd,bus=sata.4,drive=SystemDisk \
注意: 如果你运行在headless system (如 Cloud providers),,则需要加
-nographic
, 要支持VNC需要加-vnc: 0 -k en-us
。
然后运行basic.sh
来启动机器并安装macOS。 请记住首先在“磁盘工具”中进行分区!
sudo ./make.sh --add
。MyDisk.qcow2
SATA Disk。OVMF_CODE.fd
和 OVMF_VARS-1024x768.fd
放到 /usr/share/OVMF/macOS/
路径下(或其他路径,在home目录下会报OVMF_CODE.fd权限错误
)。detail->overview->xml
中将OVMF_*
路径修改成/usr/share/OVMF/macOS/
下的文件(要先允许xml编辑)如果你使用的是cloud-based/headless system,则可以使用headless.sh
来设置一个快速的VNC实例。 设置是通过变量定义的,如以下示例所示。 默认情况下,VNC将在端口 5900
上启动。
HEADLESS=1 MEM=1G CPUS=2 SYSTEM_DISK=MyDisk.qcow2 ./headless.sh
一切搞定!
要微调系统并提高性能,请查看docs文件夹,以获取更多信息,如adding memory,设置bridged networking的更多信息,添加 passthrough hardware (for GPUs),调整screen resolution并启用声音功能。