Mac G4において128GB超のハードディスクを認識させるには

Taq TuZino

下記内容は計算機に対して致命的な影響を与へる恐れがあります.実施について は全て自己責任において行なってください.

問題の所在

Macintosh G4ではDDMモデルを除いて128GB超のハードディスク(EIDE/ATA)を 換装しても正常に認識されず,128GBのHDDとしてしか割り当てられない.その場 合には先頭の128GBまでしか使えないし,以前にパーティションは参照されない.

これはBigDriveに対応していないためである(DDMモデルはBigDriveに対応し ている.G5はSATAなのでこの問題は無関係).BigDriveとはMatroxが提案するLBA の上限を拡張した規格である.128GBの壁は,LBAの上限が容量で云ふと128GBに なること(1kBの定義・勘定の仕方によつては137GBになる)が原因で,それ以上は ハードディスク上で位置を特定できないためである.LBAを拡張することにより ハードディスク上での特定可能な位置を広げることができるのである(くはしく はHDDの構造を研究されたし).LBAは48まで拡張されたので,これをLBA-48 と呼ぶ.Mac G4はLBA-48を標準ではサポートしていない.だから128GB超のハー ドディスクは正常に認識できないのである.

解決の方針

ただし,抜け道がある.

ATAのI/Oコントローラチップのデバイスの属性にLBA-48が定義されて いる場合があるのだ.つまり,ハードウェア(チップ)がLBA-48に対応していれば, OSとしてMacOS X(Panzer 10.3)はLBA-48に対応している.チップとOSが対応して いるから,Firmwareが対応していれば128GB超のドライブも使えるはずである.

チップがLBA-48対応がどうかは,

/Developer/Applications/Utilities/IORegistryExplorer.app
で知ることができる(Appleの開発環境をインストールする必要がある).

解決の方法

OpenFirmwareを編集する.

OpenFirmwareの起動

Macの起動時に,スターティングサウンドが鳴るころに, <CoMmanD>+<OPTion>+<O>+<F> を同時押しすることによりOpenFirmwareに移行できる.

ここで,OpenFirmwareって何?と不安に思うようなら,試さないほうがいい, あるいは慎重に自分で研究してから試すことを強くお勧めする.

devaliasの調査

自分が使うATAディスクがどのような別名(略称, alias)をもっているか調べる. 下記において,太字が入力すべき文字列である.
> devalias
略
hd      /pci/@d/pci-ata@1/ata-4@0/disk@0
cd      /pci/@d/mac-io/ata-3@2000/disk@0
ide0    /pci/@d/pci-ata@1/ata-3@0/disk@0
ide1    /pci/@d/pci-ata@1/ata-3@0/disk@1 
ultra0  /pci/@d/pci-ata@1/ata-4@0/disk@0
ultra1  /pci/@d/pci-ata@1/ata-4@0/disk@1
略

左に略称,右に正式名称である.hdultra0は同じ 正式デバイス名をもっているので同じデバイスだとわかる.普通, hdはプライマリケーブルのプライマリハードディスクである.自 分が挿しているHDDがどの名称になるのか記録しておく.たとへば,上記の表で CDドライブの下についているなら,ide1ということになる.

nvramrcの編集

例として全ての内蔵ハードディスクが128GB超の場合の設定を示す.

> nvedit
ok
dev ultra0
dev ..
" " " lba-48" property
device-end
dev ultra1
dev ..
" " " lba-48" property
device-end
dev ide0
dev ..
" " " lba-48" property
device-end
dev ide1
dev ..
" " " lba-48" property
device-end

入力するそばから改行ごとに文字列が消滅するが,それで正常である. 入力が終ったら,<ConTRoL>+<C>で,nveditから抜けることができ る.OpenFirmwareはスペース等の文法ミスに厳しく間違えるとそのまま歸って來 ない場合があるので要注意のこと.nveditで入力中に <ConTRoL>+<L>とすれば,これまで入力した文字列をレビューする ことができる.

"」は日本語キーボード(ISO配列)であってもASCII配列と同様の 位置である.すなわち,「L」の二個右のキーである.ISO配列な ら「* :」が印字されている.カナが印字されているキーボード なら「け」になっていることが多い.

現時点ではnvmrcに内容が格納されただけで,起動時にそれは参照されない.不 安なら,もう一度nveditを起動して入力内容を確認することをお 薦めする.入力内容でよいならnvmrcをOpenFirmwareに反映される.次の書式で 行う.

> nvstore
ok
> setenv use-nvramrc? true
今の入力内容は
> printenv
で確認できる.もしそれでよければ,
> reset-all
で再起動できる.OS X起動後は,ディスクユティリティーで確認するとよい.

nvedit

nveditの簡単な説明についてはNetBSDのnvedit How-to
http://www.netbsd.org/ja/Ports/macppc/nvedit.html
を参照されたい. よりくはしい説明はAppleのテクニカルノート#60285
http://doc.info.apple.com/article.html?artnum=60285
を参照されたい.

もう一度最初からやりなおしたい時

人生失敗がつきものである.
OpenFirmwareの記述に誤りがあると,Macがお歸りにならないので,リセットが必要で ある.

Macの起動時,スターティングサウンドが鳴るころに, <CoMmanD>+<OPTion>+<P>+<R>を同時押 しすることによりOpenFirmwareの設定をリセットできる.これをPRAMクリア と呼ぶ.2〜3回,スターティングサウンドが鳴るまで続ける方が確実である.

注意

工場出荷時とシステムの構成が違う場合(CPUの換装やグラフィックボードの交換 など),PRAMクリアによっても正常に機能しない場合がある.その場合は工場出 荷時の構成に戻すか,今の構成で適用したOpenFirmwareの入力を繰り返す必要が ある(他にもよい方法があるかもしれないが).

この方法でもやはり起動パーティッションは先頭から128GBより手前に存在して いないといけない.

参考にしたサイトおよび謝辞

下記のサイトの情報を参考にした.記して謝意を表す.

Studio Milehigh http://homepage.mac.com/milehigh/milehigh/index.html
128GB 以上のハードディスクを使う.
http://homepage.mac.com/milehigh/milehigh/cube/information/05_bigdrive/00_bigdrive.html

nand http://homepage.mac.com/nand/Menu6.html
ちょっと古いMacでのBig Drive
http://homepage.mac.com/nand/macosx/bigdrive.html


Copyright (C) 2007 Taqumi TuZINO. All rights reserved.
[XEmacs] [VI powered] [Powered by NetBSD]