Macを64bitカーネルで起動させる設定

Macを64bitカーネルで起動させるためのドキュメントです。 ハードウェア自体は対応しているが、標準で64bitカーネルでの起動に制限をかけている機種に対しての設定です。 MacPortsをインストールしていることを前提条件とします。

注意事項(2011年03月14日追記)

10.6.0 〜 10.6.4で有効な設定です。
カーネルが更新されたので、10.6.5以降では設定が異なります。

検証環境

OSMac OS X 10.6.4 Snow Leopard
HardwareMac mini with Snow Leopard Server(Late 2009)
HardwareMacBook 13-inch(Aluminum Late 2008)

バイナリエディタのインストール

$ sudo port install bvi

boot.efiの編集

$ cd /System/Library/CoreServices/
$ sudo cp -a boot.efi boot64.efi
$ ls -lO boot*
-rw-r--r--  1 root  wheel  uchg 319152  7 28 03:01 boot.efi
-rw-r--r--  1 root  wheel  uchg 319152  7 28 03:01 boot64.efi
$ sudo chflags nouchg boot64.efi
$ ls -lO boot*
-rw-r--r--  1 root  wheel  uchg 319152  7 28 03:01 boot.efi
-rw-r--r--  1 root  wheel  -    319152  7 28 03:01 boot64.efi

Mac mini

$ sudo bvi -b 0x266DB -e 0x266DB boot64.efi

:set memmove
     インサートモードがデフォルトではOFFになっている。
     x で削除。
     i で編集開始。80と入力。Esc。
:wq

MacBook

$ sudo bvi -b 0x266E8 -e 0x266E8 boot64.efi

:set memmove
     インサートモードがデフォルトではOFFになっている。
     x で削除。
     i で編集開始。04と入力。Esc。
:wq
$ sudo chflags uchg boot64.efi
$ ls -lO boot*
-rw-r--r--  1 root  wheel  uchg 319152  7 28 03:01 boot.efi
-rw-r--r--  1 root  wheel  uchg 319152  7 29 04:01 boot64.efi

boot.efiの置き換え

$ bless --info
finderinfo[0]:    135 => Blessed System Folder is /System/Library/CoreServices
finderinfo[1]: 209998 => Blessed System File is /System/Library/CoreServices/boot.efi     ※ この行に注目する。
finderinfo[2]:      0 => Open-folder linked list empty
finderinfo[3]:      0 => No alternate OS blessed file/folder
finderinfo[4]:      0 => Unused field unset
finderinfo[5]:    135 => OS X blessed folder is /System/Library/CoreServices
64-bit VSDB volume id:  0xC03A84C8CD9E8B50

$ sudo bless --folder /System/Library/CoreServices --file /System/Library/CoreServices/boot64.efi

$ bless --info
finderinfo[0]:    135 => Blessed System Folder is /System/Library/CoreServices
finderinfo[1]: 578969 => Blessed System File is /System/Library/CoreServices/boot64.efi     ※ この行に注目する。
finderinfo[2]:      0 => Open-folder linked list empty
finderinfo[3]:      0 => No alternate OS blessed file/folder
finderinfo[4]:      0 => Unused field unset
finderinfo[5]:    135 => OS X blessed folder is /System/Library/CoreServices
64-bit VSDB volume id:  0xC03A84C8CD9E8B50

ブートオプションの設定

$ sudo nvram boot-args="arch=x86_64"
$ nvram boot-args
boot-args     arch=x86_64
$ sudo reboot

32bitカーネルに戻す方法

$ sudo nvram -d boot-args
$ sudo reboot