pjmeyer / OSX-KVM

Running Mac OS X El Capitan and macOS Sierra on QEMU/KVM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Host System Details

Ubuntu 15.10 running on i5-6500 CPU.

Fedora 24 running on i5-6500 + i7-6600U CPU.

Tested with QEMU 2.4.1 and QEMU 2.5.

ISO Creation

  • Download OS X El Capitan or macOS Sierra installer from Apple App Store.

  • Run the ISO creation script create_install_iso.sh, making sure to use 'sudo'.

  • Copy the ISO from your Mac to your QEMU/KVM machine.

Installation

See boot.sh / boot-macOS.sh file for a more solid alternate to the following virsh method.

  • Create a virtual HDD image where the operating system will be installed.

     qemu-img create -f qcow2 mac_hdd.img 64G
  • Edit macOS-libvirt.xml file and change file paths for mac_hdd.qcow2 (HDD), Install_OS_X_10.11_El_Capitan.iso (bootable ISO image) and enoch_rev2839_boot suitably.

  • Create a VM by running the following command

    virsh --connect qemu:///system define macOS-libvirt.xml
    
  • Start the VM in virt-manager and hit return in the console window.

  • After booting, the initial language selection should show up. screenshot_01

  • After selecting the language, fire-up the Disk Utility ... screenshot_02

  • ... and initialize the new harddisk. screenshot_03 screenshot_04

  • After disk initialization, open a terminal window (in the Utilities menu) and recursively copy the /Extra folder to the newly initialized target volume using

     cp -av /Extra "/Volumes/NewVolumeName"
  • When done, quit Terminal. screenshot_05

  • Now, you can continue with the installation as usual screenshot_06

  • When finished, the VM will reboot automatically and the first time setup continues as usual. screenshot_07

Debugging

  • For macOS Sierra change the CPU model from core2duo to Penryn. The boot-macOS.sh script already has this change.

  • While booting from the macOS Sierra ISO installer, you might get stuck on the "Language Chooser" menu bar (with no option to launch Disk Utility). The solution is to wait for a few seconds on the "Language Chooser" screen itself without pressing the forward button.

  • Host machine may need the following tweak for this to work,

    echo 1 > /sys/module/kvm/parameters/ignore_msrs
    
  • Type the following in the bootloader if the guest VM fails to boot (some older ISO images may require this),

    "KernelBooter_kexts"="Yes" "CsrActiveConfig"="103"
    
  • If you see "hdiutil: attach failed - Resource busy" error message during the ISO creation step, quit the "Install macOS Sierra" program and unmount (eject) the "Install macOS Sierra" device. Disk Utility can help for unmouting disk images.

    $ hdiutil info
    $ hdiutil detach /dev/disk2  # or something similar
    

Credits

  • Robert DeRose (RobertDeRose) and Dirk Bajohr (isolution-de) - macOS support

  • Fritz Elfert (felfert) - cleanups, better documentation, and nicer ISO creation script

  • Ian McDowell (IMcD23) - more documentation, and better ISO creation script

  • voobscout - libvirt XML file

  • Evgeny Grin (Karlson2k) - for the original ISO creation script

  • Gabriel L. Somlo - for getting things started

  • http://www.insanelymac.com/ - Enoch bootloader

References

About

Running Mac OS X El Capitan and macOS Sierra on QEMU/KVM


Languages

Language:Shell 87.8%Language:C 9.5%Language:Makefile 2.6%