如何在kvm/qemu上运行macOS

时间:2020-02-23 14:45:11  来源:igfitidea点击:

MacOS是由Apple Inc.自2001年开发的专有图形操作系统。
它是Apple的Mac计算机的主要操作系统。
Microsoft Windows后,它是第二次使用的桌面操作系统。
在本文中,我们将查看如何在QEMU上运行或者安装麦克斯,由KVM加速。

对于此设置,我们将使用Github中可用的MacOS-Simple-KVM项目代码在KVM/QEMU上运行MacOS。
为我们能够在QEMU/KVM上运行MacOS,我们需要带有QEMU,Python3,PIP和启用KVM模块的Linux系统。

第1步:环境准备

让我们首先确保我们拥有安装的依赖项和在KVM工作中运行麦克斯所需的服务。

ubuntu/debian基于Linux:

sudo apt update
sudo apt -y install qemu-kvm libvirt-daemon qemu-system qemu-utils python3 python3-pip bridge-utils virtinst libvirt-daemon-system virt-manager

确保加载和启用vhost_net模块。

$sudo modprobe vhost_net 
$lsmod | grep vhost
vhost_net              24576  0
tun                    49152  1 vhost_net
vhost                  49152  1 vhost_net
tap                    28672  1 vhost_net
$echo vhost_net | sudo teaa -a /etc/modules

Fedora Linux:

sudo dnf -y install git bridge-utils libvirt virt-install qemu-kvm qemu qemu-img python3 python3-pip virt-manager

开始KVM:

sudo systemctl start libvirtd
sudo systemctl enable libvirtd
sudo dnf -y install virt-manager

安装后,验证是否已加载内核模块

$lsmod | grep kvm
kvm_intel 233472 0
kvm 737280 1 kvm_intel

我建议我们将virt-manager配置为非root用户,因此我们可以在没有sudo的情况下将其用于其他目的。

Arch Linux/Manjaro:

sudo pacman -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat python python-pip ebtables iptables

完成安装后,启动并启用LibVirtd服务以启动启动:

sudo systemctl enable libvirtd.service
sudo systemctl start  libvirtd.service

第2步:下载宏的安装媒体

确保安装了Git。

--- Ubuntu/Debian --
$sudo apt -y install git
--- Fedora --
$sudo dnf -y install git

然后克隆GitHub上的项目代码。

git clone https://github.com/foxlet/macOS-Simple-KVM.git

更改为下载的目录。

cd macOS-Simple-KVM

运行Installer脚本以下载麦斯科斯的安装媒体(需要互联网)。

./jumpstart.sh --catalina

默认安装使用Catalina,但我们可以通过添加-high-sierra,-mojave或者-catalina来选择哪个版本。

示例安装

........
dmg2img v1.6.7 (c) vu1tur (Hyman@theitroad)
/var/home/jkmutai/Downloads/macos/macOS-Simple-KVM/tools/FetchMacOS/BaseSystem/BaseSystem.dmg --> /var/home/jkmutai/Downloads/macos/macOS-Simple-KVM/BaseSystem.img

decompressing:
opening partition 0 ...             100.00%  ok
opening partition 1 ...             100.00%  ok
opening partition 2 ...             100.00%  ok
opening partition 3 ...             100.00%  ok
opening partition 4 ...             100.00%  ok
opening partition 5 ...             100.00%  ok
opening partition 6 ...             100.00%  ok
opening partition 7 ...             100.00%  ok
Archive successfully decompressed as /var/home/jkmutai/Downloads/macos/macOS-Simple-KVM/BaseSystem.img

该目录将内容如下所示:

$ls -l
total 2.1G
-rw-------. 1 jkmutai jkmutai 2.0G Mar 20 17:15 BaseSystem.img
-rwx------. 1 jkmutai jkmutai 1.1K Mar 20 17:10 basic.sh
drwx------. 2 jkmutai jkmutai 4.0K Mar 20 17:10 docs
-rw-------. 1 jkmutai jkmutai  13M Mar 20 17:10 ESP.qcow2
drwx------. 2 jkmutai jkmutai 4.0K Mar 20 17:10 firmware
-rwx------. 1 jkmutai jkmutai 1.5K Mar 20 17:10 headless.sh
-rwx------. 1 jkmutai jkmutai  874 Mar 20 17:10 jumpstart.sh
-rwx------. 1 jkmutai jkmutai  732 Mar 20 17:10 make.sh
-rw-------. 1 jkmutai jkmutai 3.0K Mar 20 17:10 README.md
drwx------. 4 jkmutai jkmutai 4.0K Mar 20 17:10 tools
-rwx------. 1 jkmutai jkmutai  946 Mar 20 17:10 virtio.sh

第3步:启动机器并安装麦斯科座

我们需要使用qemu-img创建一个空的硬盘。

$qemu-img create -f qcow2 macOS.qcow2 50G
Formatting 'macOS.qcow2', fmt=qcow2 size=53687091200 cluster_size=65536 lazy_refcounts=off refcount_bits=16

修改Basic.sh文件并将以下行添加到最后。

-drive id=SystemDisk,if=none,file=macOS.qcow2 \
-device ide-hd,bus=sata.4,drive=SystemDisk \

我们现在可以运行命令:

./basic.sh

单击MacOS图标以安装MacOS基础系统。

安装程序将在几秒钟内开始。

在下一个屏幕中选择"磁盘实用程序"。

格式化所创建的磁盘以安装MacOS基础系统。

磁盘应在形成后显示大小和分区类型。

关闭磁盘实用程序,然后选择"重新安装MacOS"。

通过击中"继续"按钮确认操作系统安装。

选择以前分区的磁盘。

在安装开始时要耐心 - 这可能需要很长时间,具体取决于互联网速度。

步骤4:将安装程序导入riveManager

而不是qemu,我们想将设置导入到Virt-Manager以获取更多配置,刚刚运行:

sudo ./make.sh --add

运行上面的命令后,将MacOS.qcow2添加为VM的新添加条目属性中的存储。