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