Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75569
  • 博文数量: 32
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 450
  • 用 户 组: 普通用户
  • 注册时间: 2019-01-22 08:36
个人简介

专注虚拟化性能优化,硬件显卡网卡虚拟加速,面向容器的轻量虚拟化开发 永远的Linux Geeker!

文章分类

全部博文(32)

分类: 虚拟化

2019-01-28 10:15:19

由于版权的关系,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”

点击(此处)折叠或打开

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


4. 创建系统盘

请参考此处脚本文件

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

第一行,添加

点击(此处)折叠或打开

  1. <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  2. Click and drag to move
然后加入UEFI引导文件

点击(此处)折叠或打开

  1.   <os>
  2.     <type arch='x86_64' machine='pc-q35-2.10'>hvm</type>
  3.     <loader readonly='yes' type='pflash'>/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
  4.     <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>
  5.     <bootmenu enable='yes'/>
  6.   </os>
设置CPU

点击(此处)折叠或打开

  1.   <cpu mode='custom' match='exact' check='partial'>
  2.     <model fallback='allow'>Penryn</model>
  3.     <feature policy='require' name='invtsc'/>
  4.   </cpu>
设置系统盘

点击(此处)折叠或打开

  1.     <disk type='block' device='disk'>
  2.       <driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
  3.       <source dev='/dev/path/to/lvm/volume'/>
  4.       <target dev='sda' bus='sata'/>
  5.     </disk>
设置网络

点击(此处)折叠或打开

  1. <interface type='network'>
  2.       <source network='default'/>
  3.       <model type='e1000-82545em'/>
  4.     </interface>
加入usb外设

点击(此处)折叠或打开

  1. <input type='tablet' bus='usb'/>
  2.  <input type='keyboard' bus='usb'/>
设置标准视频输出

点击(此处)折叠或打开

  1. <video>
  2.       <model type='vga' vram='65536'/>
  3.     </video>
添加额外的SMC外设,因为libvirt还不支持,我们在这里通过QEMU命令行来实现

点击(此处)折叠或打开

  1. <qemu:commandline>
  2.     <qemu:arg value='-readconfig'/>
  3.     <qemu:arg value='/path/to/macintosh.cfg'/>
  4.   </qemu:commandline>
macintosh.cfig 文件如下:

点击(此处)折叠或打开

  1. [device "smc"]
  2. driver = "isa-applesmc"
  3. osk = ""

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

点击(此处)折叠或打开

  1. qemu-system-x86_64 -machine q35,accel=kvm -bios ~/OVMF.fd -m 4096 \
  2. -cpu Penryn -smp 4,cores=2 \
  3. -usb -device usb-kbd -device usb-tablet \
  4. -device isa-applesmc,osk="insert-real-64-char-OSK-here" \
  5. -netdev user,id=usr0 -device e1000-82545em,netdev=usr0,id=vnet0 \
  6. -device ide-drive,bus=ide.2,drive=MacHDD \
  7. -drive id=MacHDD,if=none,file=~/mac_hdd.img \
  8. -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/


阅读(1492) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册