|
今天試著用 Win7 + VirtualBox 4.3 + MacOSx 10.6 + hdiutil + Mavericks.app.dmg 純手工制作用于 VirtualBox 虛擬機(jī)安裝的 MacOSx 10.9 Mavericks ISO 安裝盤鏡像文件,本文中未使用github上那個基于 ruby 的 InstallESD 制作工具,也未用變色龍等啟動工具,就只用到下載的 Mavericks.app.dmg 安裝包、hdiutil 和幾個 kexts 等核心文件來制作虛擬機(jī)安裝盤 ISO/DMG 鏡像。 由于純手工安裝 mavericks 的過程相當(dāng)折騰,沒有一兩斤耐心,估計很難堅持到最后。不過,這一通折騰下來,相信自己對 MacOSX 系統(tǒng)的了解一定比只用鼠標(biāo)亂戳更深入一些。 為了理清思路,折騰過程被人為分成了零~五共六個階段。另外注意:試驗電腦為聯(lián)想 Thinkpad (Intel 芯片),家里沒有基于 AMD 芯片的電腦,所以本文中操作步驟還沒有在 AMD 電腦上作測試,結(jié)果亦未知。 下圖為安裝后虛擬機(jī)截屏:
## 第零階段:準(zhǔn)備工作首先將從 apple.com 或一些云網(wǎng)盤下載得到的 Mavericks 安裝包文件 mavericks.app.dmg (約5GB) 放在一個 Win7 目錄中(假設(shè)為 F:\downloads),不必將其復(fù)制進(jìn)到 MacOSX 虛擬機(jī)中,以免使虛擬機(jī) VDI 占用過大磁盤空間; 將此目錄在 Win7 中共享出來,權(quán)限設(shè)置為當(dāng)前用戶擁有“讀寫”權(quán)限,稍后可以在 MacOSX 中以當(dāng)前用戶的身份連接到該共享目錄;然后打開 VirtualBox,并啟動 MacOSX 10.6,連接到這個 Win7 共享目錄;具體方法是在 Finder 中選擇“前往 - 連接到服務(wù)器”,輸入 Win7 系統(tǒng) IP 或主機(jī)名稱,象這樣:smb://t400s 或 smb://192.168.1.13,然后提示輸入你在 Win7 中的登錄帳戶和密碼;連接共享目錄成功后,你的 Win7 目錄就會出現(xiàn)在 /Volumes 目錄下面,根據(jù)上面假設(shè)應(yīng)該為:/Volumes/downloads 注意:要想 MacOSX 成功連接 Win7 共享目錄,除了在 Win7 中正確設(shè)置共享帳戶/權(quán)限等,還必須在 [MacOSX 控制面板/共享] 中勾選 [文件共享] 選項;在 Win7 中設(shè)置共享時,記住一定要勾選中“寫”權(quán)限,因為下面命令會利用宿主機(jī)器的硬盤空間,而不必復(fù)制到虛擬機(jī)VDI中,前面說了,是為了避免虛擬機(jī) VDI 文件搞的過大。 還有一點切記:在 MacOSx 中操作這個共享目錄過程中,千萬不要到 Win7 中再對這個共享目錄作任何操作,哪怕是瀏覽都不可,否則極易導(dǎo)致 Win7 + VirtualBox 4.x 訪問該共享目錄出錯,并且此問題似乎來自 netbios 核心驅(qū)動程序,掛了就不可修復(fù),重啟 VM 不管用,除非重啟 Win7 再來。 下面假設(shè)掛載 Win7 共享目錄一切順利過關(guān),然后進(jìn)入該目錄,下面所有命令均以此為當(dāng)前目錄; # cd /Volumes/downloads# ls -trlF (列一下目錄看是否正常) 注意:當(dāng)前目錄 /Volumes/downloads 所在磁盤要留足夠空間,最好留夠20GB空閑磁盤空間,下面操作中涉及的 dmg/iso 文件都是尺寸在 6GB 左右的大塊頭兒。 ## 第一階段:初步制作 mavericks.sparseimage 啟動盤鏡像掛載 MacOSX 10.9 下載包 mavericks.app.dmg 到 MacOSX 虛擬機(jī)的文件系統(tǒng); # hdiutil attach ./mavericks.app.dmg -noverify -nobrowse -mountpoint /Volumes/app 再掛載 mavericks.app.dmg 內(nèi)部的 InstallESD.dmg (所在目錄:/Volumes/app/Install\ OS\ X\ Mavericks.app/Contents/SharedSupport/) # hdiutil attach /Volumes/app/Install\ OS\ X\ Mavericks.app/Contents/SharedSupport/InstallESD.dmg -noverify -nobrowse -mountpoint /Volumes/iesd 然后將 InstallESD.dmg 中的 BaseSystem.dmg 轉(zhuǎn)換成 UDSP 格式的 dmg,大概2GB左右,耗時約5分鐘; # hdiutil convert /Volumes/iesd/BaseSystem.dmg -format UDSP -o ./mav.sparseimage 將轉(zhuǎn)換得到的 mav.spareimage 空間擴(kuò)至 8GB,以便稍后添加 packages 等內(nèi)容; # hdiutil resize -size 8g ./mav.sparseimage 再將轉(zhuǎn)換得到的 mav.spareimage 掛載到文件系統(tǒng),以便復(fù)制 packages 包文件進(jìn)去,并對其內(nèi)容進(jìn)行適當(dāng)調(diào)整; # hdiutil attach ./mav.sparseimage -noverify -nobrowse -mountpoint /Volumes/mav 先刪除 /Volumes/mav/System/Installation/Packages 文件,這只是一個符號連接,直接刪除,稍后會復(fù)制進(jìn)真正的 Packages 內(nèi)容; # rm /Volumes/mav/System/Installation/Packages 復(fù)制進(jìn)真正的 Packages 內(nèi)容,大概需要10多分鐘; # cp -rp /Volumes/iesd/Packages /Volumes/mav/System/Installation/ 復(fù)制完成后,這個 mav.sparseimage 大概就超過5GB了,為了制作 ISO,需調(diào)整一下其尺寸; # hdiutil detach /Volumes/mav (調(diào)整尺寸前必須先卸載 DMG,否則會提示資源暫時不可用) # hdiutil resize -limits ./mav.sparseimage (先查詢一下最小尺寸) 這個命令會顯示出三個數(shù)字,象這樣:Num1 Num2 Num3,這里只需要記下第一個數(shù)字 Num1,然后運(yùn)行下面命令; # hdiutil resize -size Num1b ./mav.sparseimage (其中:將Num1換成上面顯示的第一個數(shù)字,注意后面加一個小寫‘b’字母,其他照寫) 完成以上步驟,基本就可以轉(zhuǎn)換成 ISO 安裝盤了,可用來安裝到 macbook,但在非 mac 硬件或虛擬機(jī)中還無法使用;
## 第二階段:調(diào)整驅(qū)動程序和核心模塊以下步驟將調(diào)整這個安裝包內(nèi)容,為了使其能安裝到非 mac 硬件或虛擬機(jī)中;針對不同硬件,以下步驟全盤照搬也許不能成功啟動/安裝,請根據(jù)硬件情況作調(diào)整; 首先需要準(zhǔn)備一些第三方核心和驅(qū)動程序文件,可從網(wǎng)絡(luò)上下載;我是從這里下載的:http://www./downloads/install109.zip 其中包含有 mach_kernel, kexts 等文件,下面步驟中主要用到其中的 mach_kernel 和 kexts 驅(qū)動程序文件。 由于第一階段中,在調(diào)整 DMG 尺寸時將其從文件系統(tǒng)卸載了,現(xiàn)在我們需要將其重新掛載到文件系統(tǒng),以便進(jìn)行修改; # hdiutil attach ./mav.sparseimage -noverify -nobrowse -mountpoint /Volumes/mav 掛載成功后,將 mach_kernel 文件復(fù)制到 /Volumes/mav 中,即安裝盤鏡像 DMG 文件的根目錄中; # cp -rp ./Install109/Kernel/mach_kernel /Volumes/mav 再將以下三個驅(qū)動程序復(fù)制到安裝包 Extensions 目錄中;
# cp -rp ./Install109/Kexts/*.kext /Volumes/mav/System/Library/Extensions # chmod -R 0755 /Volumes/mav/System/Library/Extensions (可能需要設(shè)置一下目錄/文件屬性) 為了方便后續(xù)操作,除了將 kexts 驅(qū)動程序復(fù)制到 /System/Library/Extensions 目錄中,我們還可以在此 ISO 安裝盤中創(chuàng)建一個 /Backup 目錄,用于保存這些第三方驅(qū)動和工具軟件,稍后會用到; # mkdir /Volumes/mav/Backup # cp -rp ./Install109/* /Volumes/mav/Backup 做完這一步,基本就可以轉(zhuǎn)換生成 ISO 用于虛擬機(jī)中啟動安裝了。網(wǎng)上還看到有一些教程,包括改動 OSInstall.pkg 等內(nèi)容,但那種情況似乎是要求在同一塊硬盤上同時安裝多個系統(tǒng) windows / macosx。若只安裝于 VirtualBox 似乎沒必要折騰它。 這里還考慮到一個具體情況,Mavericks 安裝要求電腦具備至少2GiB內(nèi)存,而目前一般電腦多配置4GB內(nèi)存,運(yùn)行 Win7 + VirtualBox + MacOSX 比較拮據(jù);若為虛擬機(jī)分配 2GB 內(nèi)存,宿主 Win7 系統(tǒng)運(yùn)行起來就顯得有點力不從心了。其實 Mavericks 安裝程序有 1GB 內(nèi)存就基本可以運(yùn)行了,不知為何 Mavericks 安裝程序默認(rèn)要求至少 2GB 內(nèi)存;考慮到這種情況,為了減少安裝時這個內(nèi)存最小需求,還得動手在上面安裝包中改一處設(shè)置;當(dāng)然,如果電腦中內(nèi)存不是問題就不必要改這個設(shè)置了,直接往下跳過這幾步即可。為了改這個2GB設(shè)置,有點興師動眾,可能需要安裝 XCode,需要利用其中一個開發(fā)工具:Flat package editor;首先將 /Volumes/mav/System/Installation/Packages/OSInstall.mpkg 復(fù)制到桌面或其他某個目錄;運(yùn)行 Flat package editor: # open /Developer/Utilties/PackageEditor.app (此工具深藏在 XCode 中) 再在該軟件中通過菜單打開 Flat package editor,載入復(fù)制出來的 OSInstall.mpkg 文件,將其中的 distribution 文件拖出來放到桌面,再用文本編輯器修改其中這一行: minRam=2048 (改為 1024,表示只要多于1GB內(nèi)存就能運(yùn)行 Mavericks 安裝程序了) 改好保存,再將其拖回放入 OSInstall.mpkg 包中,并把其中原版 distribution 文件刪除,然后將此 OSInstall.mpkg 包復(fù)制覆蓋到 mav.sparseimage 包的相應(yīng)目錄中; # cp ~/Desktop/OSInstall.mpkg /Volumes/mav/System/Installation/Packages/ # ls -trlF /Volumes/mav/System/Installation/Packages (確認(rèn)一下是否更新成功) 至此,安裝包制作的準(zhǔn)備工作基本就緒,接下來就是發(fā)布命令,轉(zhuǎn)換生成 iso 或 dmg 啟動盤鏡像,此轉(zhuǎn)換過程大約耗時18分; # hdiutil convert ./mav.sparseimage -format UDTO -o ./mav (由此生成 ./mav.cdr 改名為 ./mav.iso 即可) 或者, # hdiutil convert ./mav.sparseimage -format UDRO -o ./mav (這將生成 ./mav.dmg 包) 完成以上步驟,就得到一個 6GB 大小的 ISO 或 DMG 文件;這時,可以將當(dāng)前運(yùn)行的虛擬機(jī)關(guān)閉,如果內(nèi)存不足以再多開一個虛擬機(jī)同時運(yùn)行的話; 如果不關(guān)閉此虛擬機(jī)進(jìn)行后續(xù)操作,則最好及時將上面掛載的 DMG 和共享目錄全部卸載,如下: # hdiutil detach /Volumes/mav # hdiutil detach /Volumes/iesd # hdiutil detach /Volumes/app (iesd, app 這兩項卸載順序不要弄反) # hdiutil detach /Volumes/downloads (安全卸載共享目錄)
## 第三階段:VirtualBox 中安裝 Mavericks首先在 VirtualBox 4.3.x 中創(chuàng)建一個 Mavericks x64 虛擬機(jī)項目,多數(shù)默認(rèn)參數(shù)即可,除了以下幾項:
創(chuàng)建好虛擬機(jī)并啟動。。。如果啟動順利,此虛擬機(jī)會在2~10分鐘內(nèi)進(jìn)入圖形安裝界面,顯示出多國語種“歡迎”。。。通常,這個啟動過程通常會有各種“卡死”,可能會卡死在多個地方,我在此過程中就卡了無數(shù)次,通過反復(fù)試驗上網(wǎng)查資料,最終摸索出上述操作步驟才得以順利通關(guān),浪費了大量時間,你看上面步驟中動不動就是6GB的大塊頭兒和原地等待近20分鐘的轉(zhuǎn)換/復(fù)制!卡死的情況主要有以下一些情況:
如果你遭遇不同的卡死情況,可能需要返回第二階段重新操作,根據(jù)情況調(diào)整或刪除一些驅(qū)動程序后,再制作 ISO 安裝盤。。。注意:若要禁用某些驅(qū)動程序,建議將其暫時移動到安裝包 ISO/DMG 內(nèi)的 /Backup 目錄中,而不是直接刪除,以備未來不時之需。 如果在 VirtualBox 中順利啟動并進(jìn)入到圖形安裝界面,那就基本上宣告成功在望了。這時可作一些初步設(shè)置,讓安裝程序運(yùn)行完成;注意:其間,在選擇安裝盤時,最初磁盤分區(qū)列表可能為空白,因為虛擬機(jī) VDI 硬盤還沒有分區(qū)/格式化,你需要進(jìn)入菜單中的“磁盤工具”,抹掉 VDI 硬盤內(nèi)容,并設(shè)置一個卷標(biāo)號,這里假設(shè)為:Mavericks 這階段 Mavericks 安裝過程實際上大概需要50分鐘,盡管畫面提示只要23分鐘,那很可能是在 macbook 上的估算時間,在VirtualBox中安裝時,你的二分鐘被折算成了一分鐘;## 第四階段:在 VDI 硬盤中補(bǔ)充安裝驅(qū)動程序安裝完成后 Mavericks 就會自動重新啟動;這時你也許會長舒一口氣,以為大功告成,其實不然,這時你禁用光驅(qū)并直接從 VDI 硬盤啟動將 1000% 無法啟動成功;不過,也不要著急,只是還有點問題需要手工處理一下;為了處理這個啟動問題,暫時還是從上面制作的安裝光盤 ISO 鏡像啟動,當(dāng)進(jìn)入圖形安裝界面后,不要選擇繼續(xù)安裝,而是通過上方菜單直接進(jìn)入 Shell 終端控制臺,我們要對虛擬機(jī) VDI 硬盤中驅(qū)動程序進(jìn)行補(bǔ)充; 經(jīng)過上述安裝后無法啟動的原因是我們在 ISO 中加入的 kexts 驅(qū)動程序沒有被正確安裝到 VDI 硬盤 /System/Library/Extensions 目錄中,所以,我們需要再次手工安裝它們; 由于 Mavericks 安裝程序默認(rèn)按只讀方式掛載了 VDI 虛擬硬盤,所以得先卸載掉,再重新掛載為讀/寫模式,命令如下: # umount /Volumes/Mevericks (先卸下只讀盤,Mevericks是我們在上面安裝時格式化 VDI 硬盤時設(shè)置的名稱) # hdiutil attach /dev/disk0s2 -mountpoint /Volumes/mnt (用mount -t hfs+-o rw /dev/disk0s2 掛載失敗,提示:no such file or directory,而/etc/fstab又為只讀無法編輯,所幸換用 hdiutil 掛載,成功!) # cp -rp /Backup/Kexts/ElliottForceLegacyRTC.kext /Volumes/mnt/System/Library/Extensions # cp -rp /Backup/Kexts/FakeSMC.kext /Volumes/mnt/System/Library/Extensions # cp -rp /Backup/Kexts/NullCPUPowerManagement.kext /Volumes/mnt/System/Library/Extensions (安裝這三個驅(qū)動程序,其他幾個暫時不要安裝進(jìn)去;這里就用到了上面早有預(yù)謀的 /Backup 目錄和備份內(nèi)容,而不必又抓狂去掛載U盤啥的)
# chmod -R 0755 /Volumes/mnt/System/Library/Extensions # chown -R root:wheel /Volumes/mnt/System/Library/Extensions (更正文件目錄屬性) # hdiutil detach /Volumes/mnt (完成后立即卸下虛擬機(jī) VDI 硬盤) 操作成功后,直接關(guān)機(jī),然后在 Virtualbox 中將 iso 光驅(qū)卸下,或者更改啟動順序為從 VDI 硬盤重新啟動。。。如果一切順利,很快就能啟動進(jìn)入 MacOSX 10.9 了。。。
## 第五階段:調(diào)整 MacOSX 設(shè)置進(jìn)入 MacOSX 10.9后,最好先打開控制面板,在節(jié)能器中將節(jié)能選項全部關(guān)閉,以免過一會兒不用,虛擬機(jī)自動進(jìn)入節(jié)能導(dǎo)致無法喚醒。 還有一點,當(dāng) Reboot 時一般會在 "Waiting for DSMOS" 卡上好一陣子才能過關(guān),有人說用這個命令: # sudo chown root:wheel / 可解決;試了一下,似乎有效,通關(guān)卡的時間有所減少 :) 注意:按上述步驟安裝出來的 MacOSX 10.9 在 VirtualBox 4.3.6 中運(yùn)行沒有聲音,聲卡驅(qū)動程序的安裝步驟有待進(jìn)一步研究。。。 默認(rèn)安裝后,屏幕尺寸為 1024*768,為了加大屏幕尺寸,最簡單的方法是添加以下設(shè)置到虛擬機(jī)目錄中的 mavericks.vbox 文件中: <ExtraDataItem name="VBoxInternal2/EfiGopMode" value="4"/> 其中“4”表示:1440×900 0 – 640×480 關(guān)于virtualbox設(shè)置,可以參考 https://www./manual/ch03.html
本章就到此為止,以上就是本篇所有內(nèi)容,歡迎大家交流。
最后還是拉票階段:http://vote.blog.csdn.net/blogstaritem/blogstar2013/yorhomwang ,支持我的朋友不妨投我一票吧~
---------------------------------------------------------------- 歡迎大家轉(zhuǎn)載我的文章。 轉(zhuǎn)載請注明:轉(zhuǎn)自Yorhom's Game Box http://blog.csdn.net/yorhomwang 歡迎繼續(xù)關(guān)注我的博客 |
|
|