Linux下用KVM虛擬Mac OS X Sierra系統

KVM虛擬Mac OS X Sierra

大致可行的方法有兩種:

第一種,重新編譯內核、編譯qemu、編譯kvm、kvm-mod,加上OS X的支持。
詳情:http://www.tuicool.com/articles/JBzANrU
在使用此種方法編譯kvm時,報錯,無法安裝,文件內容都與作者標識的不一致。才疏學淺,未能成功。。。

第二種,GitHub上有OSX-KVM項目,相對來說較爲簡單,本次採用此種方法。
具體請參考:https://github.com/kholia/OSX-KVM

本文所需文件:

在Mac下製作的Install_macOS_Sierra_OS_X_10.12.iso
引導文件enoch_rev2839_boot
創建的磁盤mac_hdd.img
qemu配置文件OSX_KVM.xml

鏈接:http://pan.baidu.com/s/1qYbe12W 密碼:6znh

環境準備

物理機系統說明:

作者在以下系統中測試過:
Ubuntu 15.10 running on i5-6500 CPU.
Ubuntu 16.10 running on i7-3960X CPU.
Fedora 24 running on i5-6500 + i7-6600U CPU.

QEMU版本:2.4.1, 2.5, 2.6.1, and 2.8.

AMD CPU有問題。AMD FX-8350 可以工作,但是Phenom II X3 720不工作
需要開啓  Intel VT-x/AMD-v虛擬化技術

本次使用環境:
Ubuntu Server 16.04 LTS  
QEMU:2.5.0

安裝qemu和virt-manager

sudo apt-get install qemu uml-utilities virt-manager

安裝橋接網絡管理管理工具

sudo apt-get install bridge-utils

配置橋接網絡

root@fin75:~# vim /etc/network/interface
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto br0
iface br0 inet static
    address 10.207.0.75
    network 10.207.0.0
    netmask 255.255.255.0
    broadcast 10.207.0.255
    gateway 10.207.0.1
    dns-nameservers 223.5.5.5
    bridge_ports eno1
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0
    post-up ip link set br0 address 78:2b:cb:0f:9d:6d

root@fin75:~# reboot

注意:virbr0是安裝kvm時系統建立的,爲NAT網絡專用,跟我們要使用的橋接完全不同

按照官方文檔直接重啓服務會失敗,重啓物理機就可以了。

參考:https://help.ubuntu.com/community/KVM/Networking

創建磁盤文件

qemu-img create -f qcow2 /u01/mac_hdd.img 200G

安裝方法可以使用boot-macOS.sh/boot.sh,或者使用macOS-libvirt.xml
本次使用libvirt文件的方式

修改libvirt文件

#只需修改這幾處即可。

#引導文件位置
<kernel>/u01/boot/enoch_rev2839_boot</kernel> 

#磁盤文件位置
<source file='/u01/mac_hdd.img'/> 

#ISO鏡像位置
<qemu:arg value='id=MacDVD,if=none,snapshot=on,file=/opt/Install_macOS_Sierra_OS_X_10.12.iso'/>

#如果有多臺OS X系統,還需修改

<uuid>c757b31e-115f-4d1a-b574-0ae7b3cc8a58</uuid>

#kvm中合理的Mac地址爲52:54:00開頭
<mac address='52:54:00:3d:f8:25'/> 

#可在shell中執行以下命令獲取合理的Mac地址:
MACADDR="52:54:00:$(dd if=/dev/urandom bs=512 count=1 2>/dev/null | md5sum | sed 's/^\(..\)\(..\)\(..\).*$/\1:\2:\3/')"; echo $MACADDR

#vnc中的port需更改爲與第一個虛擬機不同
<graphics type='vnc' port='5900' autoport='no' listen='127.0.0.1' keymap='en-us'>

重新定義libvirt文件

virsh define /somepath/OSX-KVM/macOS-libvirt.xml 

#定義後,在/etc/libvirt/qemu/目錄下會有macOS-libvirt.xml文件,以後修改後只需重新定義此文件即可

安裝OS X

在virt-manager中啓動OSX

步驟:

選擇磁盤工具

格式化KVM磁盤

退出磁盤工具,打開終端

輸入命令,拷貝安裝文件:

cp -av /Extra /Volumes/KVMDisk

退出終端,啓動安裝即可!

錯誤合集

virt-manager啓動虛擬機,打不開安裝界面,顯示boot,無限重啓

解決辦法:開啓ignore_msrs

echo 1 > /sys/module/kvm/parameters/ignore_msrs

開機執行

vim /etc/rc.local
echo 1 > /sys/module/kvm/parameters/ignore_msrs

啓動域時出錯:

internal error: process exited while connecting to monitor: 2017-04-05 T06:\25:53.648209Z qemu-system-x86_64: -drive id=MacDVD,if=none,snapshot=on,file=/opt/Install_macOS_Sierra_OS_X_10.12.iso: Could not open ‘/opt/Install_macOS_Sierra_OS_X_10.12.iso’: Permission denied

解決辦法

kvm需要selinux裝載安全模塊,默認的Ubuntu server沒有安裝selinux

sudo apt-get install selinux
#設置selinux=permissive
reboot

virt-manager顯示亂碼

sudo apt install font-manager 
sudo apt install fonts-arphic-ukai 
sudo apt install ttf-wqy-zenhei xfonts-wqy ttf-wqy-microhei 
sudo apt install fonts-cwtex-fs 
sudo apt install ttf-hanazono 
sudo apt install ttf-mscorefonts-installer 

Ubuntu Linux下用KVM虛擬Windows系統

需要將顯示協議由Spice服務器更改爲VNC服務器,並且將鍵映射改爲:en-us,不然會出現鍵盤無法使用的情況

需要將顯卡由QXL改爲Cirrus,不然kvm安裝windows系統時會卡在Starting Windows畫面
http://serverfault.com/questions/776406/windows-7-setup-hangs-at-starting-windows-using-proxmox-4-2

需要將NIC網卡由rtl8139更改爲e1000,不然會出現斷網的情況

參考

https://github.com/kholia/OSX-KVM
http://www.tuicool.com/articles/JBzANrU
http://www.jianshu.com/p/e95c458d78bd
https://blog.ostanin.org/2014/02/11/playing-with-mac-os-x-on-kvm/
http://www.cnblogs.com/huntaiji/p/3918941.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章