PS2ブラウザ用FSモジュール (version 0.9) ------------------------------ Copyright (c) 2002 Andrew Church 当ソフトは、自由に使って頂いて構いませんが、上記の著作権表示及びソースフ ァイル内の著作権表示を変更・削除しないでください。なお、当ソフトは無償で 提供しているため、一切の動作保証を致しかねますので、自己責任にてご利用く ださい。当ソフトの利用に起因する、データ喪失及びハード損壊を含むあらゆる 損害について、その原因が明らかに当ソフトの作者の過失と認められる場合であ っても、当ソフトの作者は一切の責任を負いかねます。 なお、当ソフトはあくまで自己所有のデータをアクセスするために作られており、 他者の著作権等の権利を侵害することを許容するものではありません。他者から 当ソフトの利用により権利を侵害されたとの通告を受けて確認した場合、直ちに 当ソフトの公開を中止します。 概要 ---- このソフトは、プレイステーション2のブラウザ機能で利用するハードディスク のファイルシステムをアクセスするためのカーネルモジュールです。ゲームのセ ーブデータをバックアップするなどに便利です。 動作環境は、カーネル2.2または2.4のLinuxシステムで、インテル系CPUまたは MIPS R5900(つまりPS2)です。PS2(カーネルバージョン2.2.1)及び PentiumII搭載パソコン(2.4.18)にて動作確認済です。但し、SMPシステムでは 動作確認をしておらず、不具合が起こる可能性がありますのでご注意下さい。 現在のバージョンは、ファイルの内容を上書きする機能はありますが、充分に試 験しておらず、データを壊してしまう可能性がありますのでご注意下さい。この バージョンからファイルサイズの変更が可能となりましたが、新ファイル・ディ レクトリの作成はできません。(作成しようとするとディレクトリごと破壊され てしまうこともありますのでご注意ください) 使い方 ------ まずは、ソースコードをコンパイルする必要があります。tar.gzファイルを解凍 した状態ですぐmakeを使えるようになっており、カーネルバージョンも自動判定 します。(ただし、2.2及び2.4以外のカーネルは判定できませんのでコンパイル しないでください) コンパイルの結果、ps2fs.oというファイルが出来ますので、insmodでロードし てください。これでPS2ファイルシステムがマウントできるようになります。 PS2のパーティションはLinuxに認識されないため、パーティション名をmount コマンドで「partition=」オプションで指定しなければなりません。例えば 「__common」というパーティション(セーブデータが保存されるパーティション) を/mnt/commonにマウントする場合、 mount -t ps2fs -o ro,partition=__common /dev/hda /mnt/common といった形でマウントできます。パーティションデバイス(/dev/hdaN)ではな く、ディスク全体を指すデバイス(/dev/hda)を使用することに特に注意してく ださい。但し、ループデバイスなどでパーティションがデバイスの先頭から始ま る場合はpartition=を指定する必要はありません。例えば、セクタ0x200000 (ps2fdiskで確認)から始まるパーティションをマウントする時は losetup -o 1073741824 /dev/loop0 /dev/hda mount -t ps2fs /dev/loop0 /mnt/common でマウントできます。(ただ、PS2においてループデバイスが正しく動作しない ようです。) 現時点で判明している不具合・未実装機能 -------------------------------------- ・複数の領域をまたがるパーティションで、1番目のパーティションにしか書き  込めない ・ディレクトリのリンクカウントは常に1に設定される ・ディレクトリ編集(エントリの追加等)はうまくいかず、ディレクトリデータ  を破壊することもある ファイルシステムに関する疑問点 ------------------------------ ・0x400000以前の領域は何に使うか、どのような形式になっているのか  (一応システムファイルが保存されているようだが、形式はファイルシステム   本体と微妙に異なるみたい) ・inodeのブロックデータで、1つの要素のブロック数が0x7FFFを超えても良い  のか ・inodeのブロックデータが113個(満杯)に達した時はどうなるか