11
07
2007
見捨てられた古いMacにLeopardをインストールする
見捨てられてしまった iBook G4 800MHz
Macユーザの皆さんの中にはもうLeopardをインストールして使っている方も多いかと思います.比較的最近発売されたMacであればLeopardをインストールして動かす事は問題ないのですが、やはりメモリは最低でも 1GBはないと辛いかもしれません.Windows Vista程ではないにしても、Leopardはやはりそれ相応のスペックのマシでなければきびきびとした動作は望めません.
さて今回、我が家の最低スペックマシンである iBookG4 (12inch PowerPC G4 800MHz Memory: 640MB HDは80GB 5400RPMに換装)にLeopard のリリース版をインストールし直そうとしましたが、「このマシンにはインストールできません」と断られてしまいました.
これまでデベロッパーシード版(9A466)では問題なくインストールできていて、ちょっと動作が遅い事以外は何の問題もなく動いていたのですが、推奨スペックを満たしていないからといって、インストールできないようにするというのは如何なものでしょうか.
インストールできないようにするのではなく、警告メッセージぐらいに留めておくべきではないでしょうか.
Leopardの最低スペックを確認してみたところ、
『Power PC G4 867MHz 以上、 512MB以上のメモリ』となっている.メモリの条件はクリアしているが、CPUのクロック数が足りないらしい.あともう少しなのですが.
という訳で、ちょっと頭にきたのでこのインストール制限を回避する方法を公開します.
ロースペックのマシンでサポートされていない新しいOSをインストールする場合の参考としてご覧下さい.
【前準備】
まず、この制限を回避するにはMac OS X のOSインストーラに手を加えないといけません.DVD-ROMやCD-ROMでは内容を書き換えることができませんので、先の記事(Mac OS X Tips #3 外付けHDからOSをインストールする)を参考にして、外付けドライブにOSのインストールシステムを作成しておいて下さい.
今回、LeopardのOSインストーラに手を加えるにあたり、これまで用いてきたインストーラーに手を加える方法がそのまま使えるものと思っていたのですが、実際やってみると今までの方法が使えないことがわかりました.どうやらLeopardではインストーラーのデータ構造に大幅な変更があったようです.Leopardのインストーラの変更点を調べてみましょう.
比較のため、Tiger のインストールDVDとLeopardのインストールDVDの内容を比較してみます.尚LeopardのインストールDVDの持ち合わせが無かったので、インストールDVDイメージをマウントした状態を表示します.中身は全く同じです.


Tigerではインストールされるパッケージは包み隠さず見せているのに対して、Leopardではインストーラ起動用アプリケーションと説明ドキュメント、オプションインストーラ以外は見えないようになっています.勿論これはFinderの上では見えないだけであって、コマンドライン上では全て見ることができます.
OSのインストーラ(Installer.app)は、”/System/Installation/Packages” ディレクトリに置かれているメタパッケージ(拡張子が .mpkg のファイル)に書かれている内容に従って、パッケージ(拡張子が .pkg のファイル)を展開し、インストールしていきます.”OSInstall.mpkg” がMac OS Xをインストールための元締めです.
Tigerではこのパッケージとメタパッケージはバンドル形式で作成されていて、マウスの右クリックで簡単に中身を見ることができたのですが、残念ながらLeopardでは単なるバイナリデータとしてしか認識されません.
試しに、このメタパッケージを右クリックしてみましょう.バンドル形式ではないので”Show Package Contents” (この項目の中身を見る)という項目がありませんが、”Open With”(このアプリケーションで開く)という項目に、通常の”Installer.app” 以外に “Flat Package Editor.app” という見慣れないアプリケーションが有りました.ひょっとしてこれでパッケージの中身が直接編集できるのではと期待して開いて見ましたが、編集どころか中身すらまともに見ることができませんでした.
ちなみに、この”Flat Package Editor.app”はデベロッパーツールの “/Developer/Applications/Utilities/PackageMaker.app” のバンドルの中身(”Contents/Resources/Flat Package Editor.app”)という変な所に置かれています.
とりあえず”OSInstall.mpkg” の中身を直接覗いてみることにしました.中身は本当に単純なバイナリデータの固まりでした.どうしようかと考えあぐねていましたが、よく見ると、先頭に “xar” という文字があることに気付きました.
ひょっとして xar は ”Mac OS X Archive” の xar かな? 多分データ圧縮形式を表すメタ記号のようなものだろうと思い、とりあえずGoogle で “xar Compress” というキーワードで検索してみました.
検索してみると、どうやら xar の X はMac OS Xの X ではなく、eXtensible の X ということのようです.何でも OpenDarwin プロジェクトから生まれたデータ圧縮の仕様でフリーの圧縮ツールなどもリリースされているようです.当然Leopard にもインストールされています.コマンドラインから man コマンドで “xar” を牽いてみました.確かに xar コマンドがインストールされています.どうやらこの xar コマンドで解凍してあげれば良さそうです.
早速”OSInstall.mpkg” を解凍してみました.解凍すると “Distribution”というファイル名の XML形式のテキストデータと”Resources”というディレクトリが現れます.
ここまで来れば後は簡単です.”Distribution”というファイルがOSインストーラのマシンチェックスクリプトです.この”Distribution”の中身を書き換えてやれば良さそうです.
【修正手順の例】(一部内容を追記しました 11/08 2007)
#cp OSInstall.mpkg OSInstall.mpkg.org (念のためバックアップ)
#xar -xvf OSInstall.mpkg (解凍する)
# ls -la (解凍された内容を確認してみる)
total 1680
drwxr-xr-x 5 root wheel 170 Nov 6 20:58 .
drwxrwxrwt 10 root wheel 340 Nov 6 20:58 ..
-rwxr-xr-x 1 root wheel 35573 Oct 12 15:35 Distribution
-rw-r--r-- 1 root wheel 821580 Nov 6 20:58 OSInstall.mpkg
drwxr-xr-x 20 root wheel 680 Nov 6 20:58 Resources
#vi Distribution (vi,picoなどのテキストエディタで中身を編集する)
#xar -cvf OSInstall.mpkg.new Distribution Resources
(OSInstall.mpkg.newというファイル名でフラットパッケージを作成する)
#rm OSInstall.mpkg (オリジナルを削除)
#mv OSInstall.mpkg.new OSInstall.mpkg (元の名前に戻す)
中身の詳しい説明はしませんが、マシンの種類やメモリ、クロック周波数、インストールされているOSのバージョンなど事細かにチェックしてインストールの可否を判定しています.全くプログラミング経験の無い人にはこのファイルの中身を見て、自分のマシンの条件に合うように修正を加えるのは難しいかと思いますが、WEBの作成などで多少なりともスクリプト系の言語をかじった事のある人であれば簡単に修正できるでしょう.
どうやら私の場合は、単純にCPUのクロックが条件に引っかかってしまっているようなので、その条件判定部分を探してみましょう.ありました.ここですね.
// require 867Mhz+
if (system.sysctl("hw.cpufrequency") < 866000000) {
return false;
}
“866000000”の部分の数値を自分のマシンに合わせて小さくするか、”return false”の部分を “return true” に書き換えてしまいましょう.単純に
//return false;
のようにコメントアウトしても良いです.
iBookG4 800MHz の場合は単にCPUクロックの部分を変更するだけで済みましたが、もっと古いマシンでは更に多くの部分の書き換えが必要になるでしょう.自分のマシンの条件に合わせて各自で調整してみて下さい.尤もあまり多くの条件に引っかかってしまうようなマシンの場合は諦めた方が良いかもしれません.

iBookG4 800MHz上で動作している Leopard
【追記 : 11/08 】
xar コマンドですが、Leopardでは標準でインストールされているのですが、Tiger にはインストールされていないようです.Tigerマシンで上記の書き換え作業を行う場合は、下記のURLから xar ツールをインストールして下さい.但しバイナリパッケージではなく、自分でコンパイルしてインストールする必要があるみたいです.
“Darwin Ports” : ”http://darwinports.com/download/” (Mac Portsに名称変更)
“Mac Ports“ http://www.macports.org/
【補足】UNIX系のOSに不慣れな初心者の方へ (11/08)
今回紹介した方法は、コンピュータの初心者にとっては難しいかと思います.そこでもう少し簡単な方法を紹介しておきます.ただ残念なことに、Leopardのインストール条件を満たしているコンピュータが手元にないと駄目です.
Step.1
Leopardをインストールするコンピュータ(ターゲットマシン)をFireWire(IEEE1394) ケーブルでLeopardがインストール可能なコンピュータ(ホスト)と接続します.
Step 2.
インストールするコンピュータ(ターゲットマシン)をターゲットモード(起動時に “T” のキーを押し続ける)で起動し、ホストコンピュータの外付けFirewire ハードディスクとして認識させる.
Step 3.
ホストコンピュータでLeopard インストールDVDから起動し、インストール先としてターゲットマシンのFirewire ハードディスクを指定する.後は通常のインストールを行えば良い.
Step 4.
OSのインストールが終わると自動的にホストコンピュータが再起動するので、すかさずFirewireケーブルを切り離す.切り離すタイミングが遅いとOSインストール直後の初期設定が始まってしまう.もし始まってしまったら途中で終了(コマンド+Q)してして下さい.できればホストコンピュータの起動ディスクを元の状態(内蔵ハードディスクから起動する状態)に戻しておきましょう.
Step 5.
切り離されたターゲットコンピュータの電源SWを押して一旦電源を切り、再度電源を投入して下さい.暫くすると先ほどインストールしたLeopardが起動し、インストール直後の設定画面が現れますので、画面に従って必要な情報を設定して下さい.
インストーラの情報を書き換える方法に較べればとても簡単ですね.Macの場合はWindowsとは違い、他の機種の異なるマシンにインストールしたOSでも、殆どの場合何の問題もなく他のマシンで起動することができます.ビデオカードなどの機種に固有なドライバ類も、最初から標準でインストールされています.Mac OS X のドライバ類は “/System/Library/Extensions”に置かれています.但し、Apple純正のハードウェアでもあまりにも古い機種やサードパーティー製のドライバ類はインストールされませんので、後で自分でインストールする必要があります.
【補足: 1/22 2008 】Open Firmware の設定を変えることでインストール可能とする方法
今回紹介した方法はコマンドラインを使ってインストールパッケージを改造するという、少し高度なテクニックが必要になります.UNIX系のOSに慣れ親しんでいる方を対象にしています.
UNIX系のコマンドライン操作に不慣れな方には、もっと簡単に行う方法がありますので、『iBookG4 800MHz にLeopard をインストールする方法』を参考にして下さい.