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