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