写点什么

在 KVM 中运行苹果操作系统

作者:lyan
  • 2022 年 5 月 23 日
  • 本文字数:1362 字

    阅读完需:约 4 分钟

 由于版权的关系,MacOS 目前只能在苹果自家的硬件设备上运行,虚拟机方面只有 VMWare。本文介绍一种在 Linux KVM 下运行的方式,请确保在 MacOS 下运行你的 Linux 虚拟机,当然一般的 Linux 系统可以, 但是因为版权的问题,责任自负 :-)

目前苹果 QEMU 虚拟机只能在 UEFI 模式下启动,在这里你需要先下载一个特殊的UEFI固件

下面,我将手把手教你在 KVM 下安装运行你的苹果操作系统


1. 准备一个 USB 启动盘

请参考此处

2. 设置你的 UEFI 固件

已测,最新的 OVMF 版本即可,不需要而外的 patch

3. 准备 QEMU

推荐 2.10 以上,或者 2.9 但合并了 patch“77af8a2b95b79”

hw/i386: Use Rev3 FADT (ACPI 2.0) instead of Rev1 to improve guest OS support

4. 创建系统盘

请参考此处脚本文件

5. 使用 Libvirt 管理你的虚拟机,参照以下步骤生成你的 libvirt 配置文件

第一行,添加

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
复制代码


然后加入 UEFI 引导文件

  <os>    <type arch='x86_64' machine='pc-q35-2.10'>hvm</type>    <loader readonly='yes' type='pflash'>/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>    <nvram template='/usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd'>/var/lib/libvirt/qemu/nvram/macos-test-org-base_VARS.fd</nvram>    <bootmenu enable='yes'/>  </os>
复制代码


设置 CPU

<cpu mode='custom' match='exact' check='partial'>    <model fallback='allow'>Penryn</model>    <feature policy='require' name='invtsc'/>  </cpu>
复制代码


设置系统盘

 <disk type='block' device='disk'>      <driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>      <source dev='/dev/path/to/lvm/volume'/>      <target dev='sda' bus='sata'/>    </disk>
复制代码


设置网络

    <interface type='network'>      <source network='default'/>      <model type='e1000-82545em'/>    </interface>
复制代码


加入 usb 外设

 <input type='tablet' bus='usb'/>    <input type='keyboard' bus='usb'/>
复制代码


设置标准视频输出

   <video>      <model type='vga' vram='65536'/>    </video>
复制代码


添加额外的 SMC 外设,因为 libvirt 还不支持,我们在这里通过 QEMU 命令行来实现

  <qemu:commandline>    <qemu:arg value='-readconfig'/>    <qemu:arg value='/path/to/macintosh.cfg'/>  </qemu:commandline>
复制代码


macintosh.cfig 文件如下:

[device "smc"]driver = "isa-applesmc"osk = "<insert-real-osk-here>"
复制代码


6.  直接使用 QEMU 命令行管理你的虚拟机

qemu-system-x86_64 -machine q35,accel=kvm -bios ~/OVMF.fd -m 4096 \      -cpu Penryn -smp 4,cores=2 \      -usb -device usb-kbd -device usb-tablet \      -device isa-applesmc,osk="insert-real-64-char-OSK-here" \      -netdev user,id=usr0 -device e1000-82545em,netdev=usr0,id=vnet0 \      -device ide-drive,bus=ide.2,drive=MacHDD \      -drive id=MacHDD,if=none,file=~/mac_hdd.img \      -monitor stdio
复制代码


结语:

这样,我们就可以在 Linux 的 KVM 下运行苹果操作系统了。


Enjoy, have a lot of fun!


参考:

http://www.contrib.andrew.cmu.edu/~somlo/OSXKVM/

https://www.kraxel.org/blog/2017/09/running-macos-as-guest-in-kvm/

发布于: 刚刚阅读数: 3
用户头像

lyan

关注

还未添加个人签名 2019.02.24 加入

还未添加个人简介

评论

发布
暂无评论
在KVM中运行苹果操作系统_lyan_InfoQ写作社区