現在的主機板大多已經支援組成RAID磁碟了,不過很可惜的是,一般Intel晶片組建立的Raid,OSX似乎不認得它,主機板一旦啓用RAID磁碟,進入Lion安裝時會說找不到RAID磁碟。查遍了論壇上的說法似乎如此,OSX不支援一般主機板內建的RAID,貌似無解,似乎只能去買貴森森的Apple認證過的RAID介面卡才行(Apple官網一張暴貴,約689美金)。安裝黑蘋果時,如果想把OSX安裝在RAID磁碟上要怎麼做?目前可行的做法就一種:使用Apple RAID,也就是軟體RAID磁碟。

白蘋果使用Apple RAID是很輕而易舉的事情,不過對黑蘋果來說就是頗麻煩的一件事。因為黑蘋果大多是使用變色龍(Chameleon)或Chimera(也是Chameleon的一種版本改製)作為BootLoader(開機引導程式)。把OSX裝在Apple RAID上,BootLoader並無法直接引導Apple RAID進行OSX的開機程序,又卡關了。那...這又要怎麼解?其實這有解法,用點手段,讓BootLoader能夠成功引導就行了。

從底下這張圖研究一下Apple RAID的結構。

螢幕快照 2012-07-07 下午7.44.27 

我找來兩顆支援SATA1的磁碟來做Apple RAID,分別是100GB與120GB,組成Apple RAID 0時是199GB,也就磁碟最小空間的100G兩倍。然後在每個磁碟機上各有一個隱藏分割「Boot OS X」,這個就是造成BootLoader無法引導的原因之。我們的做法就是設法把BootLoader需要的檔案(就是系統根目錄Extra底下的東西)複製一份丟到個磁碟的Boot OS X底下就行了。

以下的操作是從neilhart發表在TonyMAC上的教學文章參考而來(連結)。不過這篇文章有一個嚴重的錯誤,在提取RAID的UUID字串寫到org.chameleon.Boot.plist檔案內時,得複製Universal Unique Identifier,而不是RAID Identifier這行,參考時勿必注意。再來就是neilhart是先用一般的方式將OSX Lion裝起來,再建立RAID之後把系統倒到RAID上,而我的做法是直接在RAID上安裝。neilhart的做法保證可用,但需用到三顆硬碟,我的做法中間有一個步驟需要一點運氣,不過只需兩顆組成RAID磁碟就能做。廢話不多說,以下是操作步驟:

一、製作RAID磁碟,並將OSX Lion系統安裝在此

1.照先前寫的這篇「二、製作Lion USB安裝隨身碟」(連結)用UniBeast製作Lion安裝USB隨身碟。

2.用USB開機,製作RAID磁碟,如下:

螢幕快照 2012-07-07 下午9.35.41  

我是使用RAID 0,也就是「分區存放的RAID磁碟組」。好處是傳輸速度可以變快,磁碟空間也可以充分運用,壞處是只要其中一顆硬碟出包,整個RAID上面的資料就完蛋。捲冊名稱我用Lion(以下以Lion捲冊名稱做範例)。

3.安裝OSX Lion到Lion卷冊上。安裝完會自動重開機。

4.用USB開機,進入OSX Lion安裝畫面。執行終端機,執行兩個指令:

rm /Volumes/Lion/mach_kernel
cp /Volumes/USB/mach_kernel /Volumes/Lion/

意思是把USB(隨身碟A)上的mach_kernel複製到Lion卷冊上。然後結束安裝程式,重新開機。

5.接下來重點來了。開機時會看到兩個Lion卷冊以及一個USB卷冊,但只有USB卷冊可以開機。現在必須設法透過USB來讓RAID上的Lion開機一次,這就是我說的運氣部分。我的做法是USB開機進入選單之後,先進入Single User Model,在進入的同時於鍵盤上亂敲一通....進入Single User Model之後輸入exit [Enter],有機會從第3.步驟在RAID上安裝好的OSX Lion開機。(有空我再查查,應該有機會用Single USer Model下了什麼指令之後就能從別的卷冊開機)

6.進入剛裝好的OSX Lion之後,會有一些安裝時出現的註冊表單與設定,填一填之後就會進入OSX Lion桌面,此時RAID上的OSX Lion就算是安裝完成了(但還是不能夠直接開機)。

7.先執行BridgeHelper5.0.0,再執行MultiBeast,再執行一些必要的修正(例如DSDT/聲音驅動...因機器不同而異),這樣Lion就算是整個安裝並修正完成了。但此時還是因為RAID的原因無法從Lion卷冊開機,所以此時千萬不要做重開機的動作,不然又可能會卡在第5步驟。

二、RAID的開機修正

這個動作需要準備幾個工具程式:

(1) Chimera獨立安裝檔 (下載):我們需要安裝檔當中的部分檔案。

(2) Pacifist程式(下載):用來提取Chimera內某些檔案的工具。

做法如下:

1.執行Pacifist,將Chimera底下的i386目錄下的boot*檔案全部提取到桌面上。

螢幕快照 2012-07-07 下午10.08.51  

2.複製Lion卷冊的Extra目錄到桌面上。

3.執行磁碟工具程式,找出RAID的UUID,並將UUID補進桌面Extra目錄下的org.chameleon.Boot.plist內容的Kernel Flags區段。

螢幕快照 2012-07-07 下午10.13.55  

螢幕快照 2012-07-07 下午10.15.19

開啟終端機,先進入桌面目錄

cd Desktop [Enter]

進入管理員模式(須輸入安裝OSX Lion時設定的管理密碼

sudo su [Enter]

[password] [Enter]

先查看磁碟的分割表

diskutil list [Enter]

螢幕快照 2012-07-07 下午10.22.00  

以我的例子來說,disk0與disk1各自是兩顆實體的硬碟,disk2是製作出來的RAID磁碟。重點擺在「Boot OS X」這個隱藏卷冊,每棵RAID硬碟成員上都有一個,各自被系統配置在disk0s3與disk1s3的位置,

接下來執行以下指令

1.安裝boot0:

fdisk -f boot0 -u -y /dev/rdisk0 [Enter]
fdisk -f boot0 -u -y /dev/rdisk1 [Enter]

2.安裝boot1h:

dd if=boot1h of=/dev/rdisk0s3 [Enter] 
系統回應 "2+0 records in, 2+0 records out, 1024 bytes transferred in xxxx sec.

dd if=boot1h of=/dev/rdisk1s3 [Enter]
系統回應 "2+0 records in, 2+0 records out, 1024 bytes transferred n xxxx sec.

3.安裝boot到disk0s3:

diskutil mount disk0s3 [Enter]
系統回應 "Volume Boot OS X on disk0s3 mounted"
cp boot /Volumes/Boot\ OS\ X/ [Enter]
cp -R Extra /Volumes/Boot\ OS\ X/ [Enter]
diskutil unmount disk0s3 [Enter]
系統回應 "Volume Boot OS X on disk0s3 unmounted"

4.安裝boot到disk1s3:

diskutil mount disk1s3 [Enter]
系統回應"Volume Boot OS X on disk1s3 mounted"
cp boot /Volumes/Boot\ OS\ X/ [Enter]
cp -R Extra /Volumes/Boot\ OS\ X/ [Enter]
diskutil unmount disk1s3 [Enter]
系統回應"Volume Boot OS X on disk1s3 unmounted"

整個下指令的畫面顯示參考:

DU8  

整個動作就完成了。重開機時選單就會出現正常的RAID卷冊,可直接選取開機。

=============補充應用===============

Apple Raid也可以將磁碟切割如下:

螢幕快照 2012-07-08 下午11.50.09  

意思就是,兩顆硬碟各只切出一部份用來做RAID磁碟,剩餘的空間再切出獨立的可用的磁碟空間,並在該位置安裝別的作業系統。不過這麼做似乎又會造成傳輸速度降低(實測似乎會回到比單顆傳輸快一點點而已),所以這麼做除了可更充分運用實體硬碟空間之外,似乎就沒別的好處了。

 


 

arrow
arrow
    全站熱搜

    benjenq 發表在 痞客邦 留言(1) 人氣()