EFI boot v6 を落として、USBデバイス経由でなく、スタンドアローンで起動するようにしてみました。この、EFI boot は、Boot-132にインスパイヤされたものだと作成者自身が記事で述べているように、GUIDパーティションに必ずついてくる EFIパーティションにブートローダやら、kextを突っ込んでしまえという方法です。元々 Apple はここを使ってないので、昨今の風潮にあわせた資源の有効活用ってやつですね。やり方はごっつ簡単。Leopard 導入済みの環境でも、DVDのインストーラから起動した環境でもインストール可能です。
■必要なもの
- efi_boot_v6.1.zip を InsanelyMac の [Guide] Boot from EFI partition, zero modification installs on Intel SSE2 or better…, Zero-modification Leopard installs. Share disks between macs & ha ってエントリから落とす。
- zip を展開しておく。
- DSDT Pacher で、DSDT.aml を造っておく。
[1] インストール先ディスクのデバイス名を取得する
- ターミナルを開き、sudo -s でルートになっておく。
- レパード実行環境なら、diskutil info / | grep Identifier を実行。表示されたディスク名(disk0s2 とか)をメモっとく。
- DVD起動なら、diskutil info /Volume/なんとか | grep Identifier。/Volume/なんとか は、対象のディスクのマウントポイント。
[2] EFIパーティションを初期化する
- さて、次に、EFIパーティションを使えるようにしなくてはなりません。通常、FAT32でフォーマットされているので、これを HFS+ に置き換えるわけです。そこで、次のコマンドを実行。
- diskutil eraseVolume “HFS+” “EFI” /dev/diskXs1 (diskXs1 の X は、[1]で取得したディスク名の最初の数字)
[3] ディスクを起動可能にする
- そのままでは、OSX86 をインストールした パーティションが、active (起動可能) になっているので、EFIパーティションが、active になるようおまじないをします。
- ./fdisk -e /dev/rdiskX (rdiskX の X は、[1]で取得したディスク名の最初の数字)
- すると、fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory なんてメッセージが出ますが、無視します。
- fdisk: X> とプロンプトが出ますので、f 1 と入力し、リターン。
- Partition 1 marked active. なんてメッセージが出力されます。
- 続いて、w と入力してリターン。これで、4 で変更した内容が書き込まれます。
- q と入力してリターン。で、終了。
[4] インストールする
- EFI Boot v6.1 を展開したディレクトリへ cd して、まずイニシャルブートローダを書き込む。
- と、その前に、コマンドに実行属性がなかったりするので、chmod +x fdisk とおまじないしておく。
- ./fdisk -f boot0 -u -y /dev/rdiskX を実行。(rdiskX の X は、[1]でメモったディスク名の最初の数字を指定して下さい)
- dd if=boot1h of=/dev/rdiskXs1 を実行。(最後の s1 が重要です。ここを変えたりしちゃいけません)
- mkdir /Volume/EFI
- mount_hfs /dev/diskXs1 /Volume/EFI (diskXs1 の X は、[1]でメモったディスク名の最初の数字を指定して下さい)
- cp boot-turbo-munky.bin /Volumes/EFI/boot
- cp update.sh /Volume/EFI/
- mkdir -p /Volumes/EFI/System/Booter
- mkdir /Volumes/EFI/Extensions
- mkdir /Volumes/EFI/.fseventsd (既にあったら造らなくてもよい)
- touch /Volumes/EFI/.fseventsd/no_log
- 必要な kext を /Volume/Extensions/ にコピーする。P5E WS PRO の場合は、次の通り。
- AppleAHCISupport.kext, AppleIntelPIIXATASupport.kext, SMBIOSEnabler.kext, dsmos.kext, AppleAHCIPort.kext, AppleYukon2Support.kext, AppleVIAATA.kext, OpenHaltRestart.kext (DSDT Patch を使用するので、Disabler系は不要)
- DSDT.aml を /Volume/EFI へコピーする。
- /Library/Preferences/SystemConfiguration/com.apple.Boot.plist を /Volume/EFI へコピーする。
- cd /Volume/EFI; chmod +x update.sh
- ./update.sh を実行する。警告が表示されても気にしない。
- cd .. して、umount /Volume/EFI で、アンマウントする。できない場合は、-f オプションをつけて強制アンマウント。
- 以上でインストール終了!
いざ、再起動です。kextが読まれるのが、暫し画面に表示された後、あの灰色の画面が…って、林檎マークが出ない…ま、そういう仕様なんですが、ちょっと寂しい。まあ、起動してしまえば、問題なく使えます。リブートとシャットダウンがシャキシャキと反応するようになったんで、DSDT Patch もちゃんと効いてるみたい。相変わらず sleep が復帰してこないんですが、うちの場合は許容範囲です。