PowerPC MacからApple Siliconまで、クラシックなMac体験を届けるアプリを配布しています。 なぜまだ使えるMacを捨てるのか。究極のエコは使い続けること。
Mac OS X 10.4 Tiger(PowerPC)でexFATドライブの読み書き・マウントができるようにするメニューバーアプリと、 その下回りのコマンドラインツール一式です。exFAT対応はMac OS X 10.6.5から標準搭載されており、現行の MacFUSE/macFUSEもLeopard以降でPowerPCサポートを打ち切っているため、2026年のTiger PowerPC Macには本来 現代のexFATフラッシュドライブを読む手段がありません。
mount.exfat / fsck.exfat / mkfs.exfat / exfatlabel / dumpexfat / exfatattrib)。relan/exfat を元に、この古いMacFUSE向けに2つの小さなパッチを当ててビルド。exfat-tiger-ppc.zip を解凍し、そのフォルダ内で install.sh を実行します(CLIツールを /usr/local/sbin にコピーするだけです)。exFAT Menu.app を /Applications など好きな場所にドラッグし、ダブルクリックします。メニューバーにのみ常駐し、Dockアイコンは出ません。exFATドライブを挿すと、Tigerが「読み込めません」と文句を言いますが、無視してください。これはこのアプリでは なく、Tiger標準の壊れたNTFSドライバがファイルシステムを誤認識しようとして失敗しているだけです。
メニューバーの「exFAT」→「Mount: disk_s_ (...)」をクリックすると、デスクトップに
exFAT (disk_s_) という名前のフォルダエイリアスが現れます。それがドライブ本体です。取り外す際は、
他のドライブと同様に、先にアプリの「Eject」を実行してから物理的に抜いてください。
| 動作環境 | PowerPC Mac / Mac OS X 10.4 (Tiger) |
|---|---|
| 備考 | Intel Tigerでも動作する可能性がありますが、検証はしていません。 |
個人の趣味プロジェクトにつき無保証です。同梱のCLIツールは fuse-exfat(GPLv2)、アプリ本体の
ソースとアイコンはMITライセンスです。詳しいソースコードやライセンス、MacFUSE時代特有の技術的な工夫の
解説は上記のGitHubリポジトリをご覧ください。
中身は、他の人が作った2つのものをつなぐ薄い接着剤みたいなものです。exFATファイルシステムの実体は relan/exfatで、 それを2008年のGoogle製・Tiger向けMacFUSE実装であるMacFUSE Core 1.7.0の上で動かしてます。必要な パーツ自体はどれも既に世の中にあったんですが、私が調べた限り、実際のTiger PowerPC実機で組み合わせて 検証した人はいなかったみたいです。
これは正直、選択の余地がありません。現行のMacFUSE/macFUSEはLeopard以降でPowerPC対応を打ち切っているので、 Tiger PPCで動くFUSE実装はMacFUSE Core 10.4-1.7.0しか無いんです。しかも今はもう普通には手に入りません。 現在配布されている「公式」版は、Googleがとっくに停止したサーバーに問い合わせるだけの新しいスタブ インストーラーになっていて、実際に動くインストーラーはWayback Machineから拾ってくるしかありませんでした。
TigerのXcode 2.5にはautoconfもautomakeも入ってないので、relan/exfatのautotools製configure スクリプトはどこか他の場所で先に作っておく必要があります。下記のパッチを現代のMacに当ててから autoreconf -fivでconfigureとMakefile.inを生成して、そのツリーごとTiger機に コピーしてビルドする流れです。ここで一つ落とし穴があって、コピーされたファイルはTiger自身の時計より 未来のタイムスタンプを持った状態で届くので、makeが混乱しないよう、configure && make の前に 一旦touchでタイムスタンプを揃えておく必要があります。
relan/exfatはLinux以外の*BSD系ビルドだとデフォルトで-o big_writesを有効にするんですが、 MacFUSE 1.7.0(2008年)はそのオプション自体を知らなくて、fuse: unknown option 'big_writes' でマウントごと失敗します。これは単純に削除で対応。もう一つは、マウントオプションに -o nobrowseを追加するパッチです。こっちが必要になった経緯は、下の「ハマった点」に書いてます。
ソースコードはGitHubにあります。