ネットブックで Mac OS X をブートするには ? という記事をいろいろ検索していて次の記事を見つけた。
[Guide] Boot from EFI partition, zero modification installs on Intel SSE2 or better..., Zero-modification Leopard installs. Share disks between macs & ha
使われていない EFI パーティションにブートローダーをインストールしようというものだ。私の MacBook のハードディスクは下記のようになっている。
$ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *149.1 Gi disk0
1: EFI 200.0 Mi disk0s1
2: Apple_HFS Macintosh HD 127.9 Gi disk0s2
3: Microsoft Basic Data 20.9 Gi disk0s3
$
Mac OS X で使っているのは disk0s2 で、Boot Camp で使っているのが disk0s3 である。disk0s1 は使っていない。このパーティションは、BIOS から起動される OS との互換性のためにあるそうだ。でも使ってない。ここをブートパーティションにして、ブートローダーをインストールし、カーネルエクステンションをインストールすることにより、Mac OS X のアップデートに対して耐性を付けようというものらしい。ただし、通常の EFI パーティションは FAT32 でフォーマットしてあるそうだが、HFS+ でフォーマットしてしまうので、BIOS から起動される OS は起動できないのではないかと思われる。
diskutil eraseVolume "HFS+" "EFI" /dev/disk0s1 でパーティションを削除(本当に?)
- efibootv6.1.zip をダウンロードして解凍
./fdisk -f boot0 -u -y /dev/rdisk0 でディスクの先頭に boot0 ローダーをインストール
dd if=boot1h of=/dev/rdisk0s1 で EFI パーティションの先頭に boot1h ローダーをインストール
mkdir /Volumes/EFI マウントポイントを作って
mount_hfs /dev/disk0s1 /Volumes/EFI マウント
cp boot-turbo-munky.bin /Volumes/EFI/boot と cp update.sh /Volumes/EFI/ でファイルをコピー
./fdisk -e /dev/rdisk0 で fdisk の プロンプトを表示
f 1 で 最初のパーティションを bootable に
w で書き込み
q で終了
- ディレクトリを作成
mkdir -p /Volumes/EFI/System/Booter
mkdir /Volumes/EFI/Extensions
mkdir /Volumes/EFI/.fseventsd
touch /Volumes/EFI/.fseventsd/no_log File System Events Daemon に無視するよう通告
/Volumes/EFI/Extensions に必要なカーネルエクステンションをコピー。そのため、事前にブート可能な状態に持っていってある必要がある
cd
cp -R *.kext /Volumes/EFI/Extensions)
cd /Volumes/EFI
chmod +x update.sh
sudo ./update.sh
- EFI パーティションをアンマウントし、マウントポイントを削除
umount /Volumes/EFI
rm -rf /Volumes/EFI
sudo -s
mkdir /Volumes/EFI
mount_hfs /dev/disk0s1 /Volumes/EFI
cd path/to/kext
cp -R Blah.kext /Volumes/EFI/Extensions
cd /Volumes/EFI
./update.sh
com.apple.Boot.plist については下記ディレクトリに置ける。
/Volumes/EFI/com.apple.Boot.plist
-or-
/Volumes/EFI/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
s efi-パーティションからブート
f markdown
u f8e5854d-f1ee-443e-8632-be47364b5bd6