ちょっと古い Mac での Big Drive


[2004/1/11]

Big Drive (Extended LBA / LBA48) にちゃんと対応する以前の Mac に 137GB 以上のドライブを接続するとどうなるか、 よくわからなかったので、試してみました。 (以下、GB は10の9乗バイト)

iMac 350 (Indigo/BootROM は 4.x にアップデートしてあります) に Maxtor の 160GB ドライブを接続してみたところ、 Mac OS X 10.3 のインストール CD の Disk Utility は 137GB ドライブとしてしか認識してくれませんでした (ので、そこで実験を打ち切りました。 137GB ドライブとしてちゃんと機能するかどうかも確認していません)。

事前に私が予想したのは、OpenFirmware は先頭 137 GB 未満 (あるいは、機種によっては 8GB) しか認識できないので、 起動パーティションはその領域に収まっていなければならないが、 Mac OS X が立ち上がってしまえば、全領域認識できる、 というものでした。この結果は意外でした。

ソースを見てみたところ、Keylargo (ATA その他のI/Oのコントローラチップ) のデバイスの属性に lba-48 というキーの属性が存在するときのみ Mac OS X のデバイスドライバは 137GB 超のドライブを扱える、 というふうになってました。 この lba-48 属性は OpenFirmware によって設定されるのだと思います。

ATA コントローラが CPU の介在なしに自らディスクドライブにコマンドを発行するような インテリジェントな設計になっていないかぎり、 Big Drive への対応は OS のデバイスドライバの変更だけで済むはず、 と思っていたので、これらの結果は意外でした。
もしかすると、 Mac の ATA コントローラは そういうインテリジェントな設計になっているのかもしれません。
そうではなくて、ハード的には対応可能ではあるが、 OpenFirmware が対応していないのであれば、 OS のデバイスドライバも対応しないと言う方針なのかも知れません。
まだ釈然としないので、今後暇を見つけて調査したいと思っています。

ところで、 Keylargo が LBA48 に対応している (137GB 超に対応している) かどうかは、 開発環境をインストールしてあれば、 /Developer/Applications/Utilities/IORegistryExplorer.app を使って、知ることができそうです。例えば、 iMac TFT/800 の場合は IODeviceTree plane の pci@f2000000:mac-io@17:ata-4@1f000 に lba-48 というキーの属性が存在するので、対応していると予想されます ([2005/7/9 追記] 確認しました。250GB に入れ換えて使っています)。
PowerMac G5 の ATA コントローラ (Keylargo ではなくて Kauai ですが) も lba-48 属性を持つので、 DVD ドライブを外してそこにハードディスクを置く場合にも Big Drive に対応していると予想されます (確認はしていません)。


[2004/3/5]

iMac 350 と同様、LBA 48 に対応していない PowerMac G4/350 (AGP) の Keylargo に Maxtor 160GB (4R160L0) を接続して実験してみました。 (このマシンの boot drive は ACARD,6860M に接続しています)

というわけで、ハード的には全領域使えるが、 OpenFirmware が LBA48 に対応していないので、 137GB 超のドライブとして使ってしまうと、 ブートできなくなるなどの問題が出てくるので、 Mac OS X ではわざと使えないようにしている、 ということのように見えます。

なお、上記実験で lba-48 属性を追加するには、OpenFirmware で

dev hd
dev ..
" " " lba-48" property
device-end

を実行してから、(reset-all など行なわずに) boot しました。 hd は最初から定義されている devalias です。 (この効果は一時的なものなので、(再)起動の度に実行する必要があります。 私は nvramrc に登録しました。)
なお、上記の操作で、OpenFirmware が実際に LBA48 対応になるわけではないので、 137GB を超える領域を含むパーティションからブートできないことに変わりはないはずです。
実際、この設定のドライブを起動ディスクとして使ってみたところ、 137GB までにあるパーティションからはブートできましたが、 137GB よりも後にあるパーティションからは OpenFirmware でエラーが 発生してブートできませんでした。


nand@mac.com     目次へ $Revision: 1.8 $ $Date: 2005/07/08 18:39:36 $