今天,os x虛拟化是一件很容易搞定的事情,因為os x主機完全支援vmware和virtualbox。 但是在裸機和qemu上虛拟化會是什麼情況呢?在linux下呢?最終我在qemu上完全搞定了mavericks (沒有額外核心拓展哦(!)),不過真不容易。
從業人員
許多關于這件事的工作都歸于 gabriel l. somlo ,他完成了這件事的初步工作,然而我不能從他的指南裡得到任何幹淨的安裝引導的os x mavericks 版本。是以我隻能自己調試了。
為什麼?
雲中os x. 這是一個僅供娛樂的項目來看看是否我能在一個專用伺服器上得到一個虛拟化的os x, 并且我成功了。注意,這僅用于教學目的,并且不被推薦 -- 沒有穩定性的保障,另外可能違背蘋果的使用者最終許可協定。
要準備的東西
為了完成安裝,你需要做如下準備:
可以運作kvm的機器
bash shell基本知識
mavericks .iso (由這個shell腳本生成)
mountain lion .iso (由這個shell腳本生成)
git
build-essential (gcc, make, iasl, linux核心headers)
上面的兩個shell腳本是相同的,它适用于這兩個版本的os x。
安裝帶os x支援的kvm
首先你需要從git倉庫下載下傳最新的kvm代碼(這是必須的,因為atp或yum倉庫中的kvm沒有os x的更新檔)。你也需要git倉庫中的kvm-kmod代碼,你可以通過以下指令獲得并建構它們。
安裝最新的帶os x支援的qemu
我們要從git倉庫中下載下傳最新的且打過支援os x更新檔的qemu和seabios。
chameleon bootloader引導進入安裝程式和os x
你可以在安裝os x之後将chameleon安裝到磁盤,但友善起見,我們可以向qemu傳送一個二進制檔案來啟動chameleon。
下載下傳這個二進制檔案并将它放到與剛才下載下傳的檔案夾相同的目錄中。
安裝 mountain lion
在我們安裝mavericks之前,我們必須先安裝 mountain lion,然後再進行更新(這是由于直接安裝mavericks會導緻qemu卡住)。
現在,確定你的 mountain lion 和 mavericks 的 .iso 檔案在同一個目錄中,從現在開始,我用 mountainlion.iso 和 mavericks.iso 來稱呼它們。
現在,我們需要建立一個空白的檔案來安裝os x(待會兒可以用dd将這拷貝到一個lvm或分區中,但是,不幸的是,在分區被使用的時候,我沒有得到用來啟動的安裝器)。
我們必須使用下面的指令來啟動這個客戶機:
你可能需要輸入一個key,該key可以在一個apple的電腦中使用這裡的第一塊代碼獲得。
你需要将./share/qemu/bios-mac.bin 路徑替換成你自己的路徑(相對你目前的路徑,這可能在一個./share 或 ./usr/share中)。
這将會在localhost:5901上開啟一個vnc會話,可以連接配接到該會話,并啟動到安裝器!
這裡的 -smp 定義了客戶機中可以使用的核心數。我将它設為4,并且工作很好。但是,隻是用一個核也可以使os x運作的很好。
正常安裝os x,之後按照下一節的内容繼續進行。
更新到 mavericks
這一步和上面的非常像,使用下面的指令打開同一個客戶機:
在chameleon中,確定從"os x base system"(你的.iso檔案) 中啟動,而不是你的hdd。然後在同一個分區中以正常的方式安裝mavericks,一定不要格式化該分區。
這步完成之後,你就有了一個可以正常工作的mavericks了!
沒有kexts?
這是一個完全原生的系統,不需要對kext做任何改動,甚至都不需要fakesmc。我沒有使用fakesmc做過測試,但是它應該可以正常工作。
網絡
現在,qemu預設的網卡驅動并不好使,建議你使用 virtio。你可以通過以下方式下載下傳它:
接下來,将下面的指令添加到上面提到的指令中,運作一個客戶機,然後安裝從挂載的fat驅動器中安裝.pkg檔案,之後重新開機,網卡就可以正常工作了!