PS2 Linux Release 1.0 をゲームデータと共存させる手順 ---------------------------------------------------- 作成者:Andrew Church 注意:この手順は、あくまでも作成者が自分の環境で行ったもので、結果を保証    するものではない。なお、万一データの損失等があった場合でも、作成者    は一切の責任を負いかねます。自己責任にてご利用下さい。 ------------------------------------------------------------------------ 用意するもの: ・PS2 Linuxのインストールに必要なもの ・500MB以上のディスク空き容量があり、PS2とイーサネット通信ができるLinux  パソコン(下記手順では、IPアドレスは192.168.0.1と仮定する) 手順: 1. インストーラを通常通り起動する。 2. パーティションを切るところ(「HDD Setup」画面)で、Disk Druidやfdisk をすぐには選択せずに、下記手順でパーティションを切る。 (a) Alt-F2で第2仮想コンソールに切り替える。(シェルが起動されている) (b) 「mknod /dev/hda b 3 0」でHDD用デバイスファイルを作成する。 (c) 「fdisk -u /dev/hda」で、fdiskをセクタ単位モードで起動する。 (d) パーティションをPS2形式に合わせて作成する。(下記一覧表参照) PS2では、パーティションは128MBの倍数でなければならず、最初の8セ クタはパーティションデバイスに含まれない。なお、パーティションは 複数のサブ・パーティションから構成されることが可能で、1つのサブ・ パーティションのサイズは128、256、512、1024MBのいずれかである(従 って、1GBを超えるパーティションは必ず複数のサブ・パーティションか ら構成される)。複数のサブ・パーティションを利用する場合、各サブ・ パーティションから最初の8セクタをパーティションデバイスから除く。 サイズ | セクタ数 || サイズ | セクタ数 || サイズ | セクタ数 ---------+----------++---------+----------++---------+---------- 128MB | 262136 || 5120MB | 10485720 || 21504MB | 44040024 256MB | 524280 || 6144MB | 12582864 || 22528MB | 46137168 384MB | 786416 || 7168MB | 14680008 || 23552MB | 48234312 512MB | 1048568 || 8192MB | 16777152 || 24576MB | 50331456 640MB | 1310704 || 9216MB | 18874296 || 25600MB | 52428600 768MB | 1572848 || 10240MB | 20971440 || 26624MB | 54525744 896MB | 1834984 || 11264MB | 23068584 || 27648MB | 56622888 1024MB | 2097144 || 12288MB | 25165728 || 28672MB | 58720032 1280MB | 2621424 || 13312MB | 27262872 || 29696MB | 60817176 1536MB | 3145712 || 14336MB | 29360016 || 30720MB | 62914320 1792MB | 3669992 || 15360MB | 31457160 || 31744MB | 65011464 2048MB | 4194288 || 16384MB | 33554304 || 32768MB | 67108608 2560MB | 5242856 || 17408MB | 35651448 || 34816MB | 71302896 3072MB | 6291432 || 18432MB | 37748592 || 36864MB | 75497184 3584MB | 7340000 || 19456MB | 39845736 || 38016MB | 77856464 4096MB | 8388576 || 20480MB | 41942880 || 4096MB(4GB)パーティションの作成例: Command (m for help): n (新規パーティション) Command action e extended p primary partition (1-4) p (基本パーティションを作成) Partition number (1-4): 1 (第1パーティションを指定) First sector (63-78124094, default 63): (Enterを押して先頭セクタの  デフォルト値を使用) Using default value 63 Last sector or +size or +sizeM or +sizeK (63-78124094, default 78124094): +8388575 (最終セクタを相対値で指定。  注:セクタ数から1を引いた    数を指定する) (e) 作成したパーティションを「p」コマンドで確認する場合、ブロック数 はセクタ数の半分になっていることを確認して下さい。なお、下記のよ うな警告メッセージが出力される場合があるが、無視してよい。 Device Boot Start End Blocks ID System /dev/hda1 63 8388638 4194288 83 Linux Partition 1 does not end on cylinder boundary: phys=(522,42,63) should be (522,254,63) (f) 「w」コマンドで、パーティションテーブルをHDDに書き込む。 (g) Alt-F1でインストーラに戻る。 (h) インストーラで「fdisk」を選択し、次の画面で「Done」を選択する。 (i) パーティション一覧が表示されるので、(d)で作成したパーティション のマウントポイントを設定し、更にスワップパーティションを作成する。 (スワップパーティションは(d)で作成してもよいが、データはコピー されないのでPS2形式にこだわる必要はない。) (j) 「Done」を選択する。 3. インストールを通常通り完了させる。 4. PS2を再起動し、rootでログインする。 5. http://achurch.org/ps2/から「initrd起動用メモリカードファイルシステム」 を適当な場所にダウンロードする(環境に適切なものを一つ選択)。 6. 起動用メモリカードをマウントする。(例:mount /mnt/mc00) 7. メモリカード内のファイルを全て削除する。(例:rm -f /mnt/mc00/*) 注意:この操作を行うと、Linuxが起動不可になりますので、次のステップ が完了するまでPS2を再起動したりシャットダウンしたりしないで下さい。 8. メモリカード内で、手順5でダウンロードしたファイルを解凍する。 (例:tar Cxzvf /mnt/mc00 /tmp/ps2linux-boot-vga.tar.gz) 9. PS2 Linuxを再起動して、起動メニューで「Initrd」を選択する。 10. 適当なユーザ名を入力してログインする。必要に応じて、ifconfigコマンド でIPアドレスを変更する。(デフォルト値は192.168.0.3/24) 11. Linuxパーティションのデータを用意したパソコンに転送する。下記コマン ド例で、「pc:~>」はパソコンのシェルに、「ps2:~>」はPS2のシェルにコマ ンドを投入することを意味している。 pc:~> nc -lp12345 | gzip -1 > ps2-hda1.gz ps2:~> dd bs=4M if=/dev/hda1 | nc 192.168.0.1 12345 転送が終わってもプログラムは終了しないので、ddの「### blocks out」 メッセージが表示されたら^Cで終了させて下さい。なお、受信側を終了させ るとデータ損失が発生するため、必ず送信側で終了させて下さい。 ※ncは、catのネットワーク版のようなもので、ホスト間で簡単なデータ通 信を行うのに便利なツールで、i386システム用の実行ファイルは http://achurch.org/ps2/nc.gz.binからダウンロード可能。 圧縮されたパーティションイメージは通常、500MB以下に収まるが、HDDに以 前のデータが残っていると、サイズが大幅に増えることがある。最近の環境 では容量以外の問題はないが、古い環境ではファイルサイズ上限(2G-1バイ   ト)に達し、転送が失敗することもある。この場合は、当該パーティション をマウントして、「cat /dev/zero >/mnt/temp1」などで空き領域全てにゼ ロデータのファイルを作成すれば圧縮律を上げることができる。(再転送す る前にumountコマンドでパーティションのアンマウントを忘れないこと) なお、PS2の最新モデルでは、ネットワークドライバの不具合のために転送 中に固まってしまうことがあるらしい。この場合は、以下のように差し換え 版ドライバを使ってみて下さい。 ps2:~> /sbin/rmmod smap ps2:~> /sbin/insmod smap-alt ps2:~> /sbin/ifconfig eth0 192.168.0.3 netmask 255.255.255.0 12. HDDユーティリティディスクをPS2に挿入して、PS2を再起動する。 13. HDDユーティリティディスクでHDDの初期化を行う。 14. PS2 Linuxのディスク(DISC 1)を挿入してPS2を再起動し、起動メニューで 「Initrd」を選択し、ログインする(手順10同様)。 15. ps2fdiskコマンドでLinux用のパーティションを切る。サイズは手順2で作 成したのと同じサイズ・パーティション番号とすること。ps2fdisk終了時、 新しいパーティションテーブルが正常に読み込まれたことを確認する(正常 に読み込まれなかった時は手順14と同じ要領で再起動する)。 ※このps2fdiskは、β版でソニー社が提供したものではなく、パーティショ  ンテーブルのデータを解析して新たに作ったものであり、ソースはinitrd  内の/root/ps2fdisk.cまたはhttp://achurch.org/ps2/から取得可能。 16. LinuxパーティションのデータをパソコンからPS2に転送する。コマンド例: ps2:~> nc -lp12345 | reblock > /dev/hda1 pc:~> (zcat ps2-hda1.gz; echo >&2 done) | nc 192.168.0.3 12345 echoコマンドは、転送完了を通知するために追加してある。手順11同様、転 送が終わったら^Cで送信側を終了させる必要がある。 ※reblockコマンドは、データを4MBのブロックでまとめてHDDに書き込むプ  ログラムで、ddを使った時と比べて書き込み速度が2倍以上になる。 17. PS2 Linuxを再起動し、起動メニューで「Memory Card」を選択する。Linux が通常通り立ち上がれば完了。 ------------------------------------------------------------------------ 以前からのゲームデータをそのまま保持してLinuxをインストールしたい時は、 手順を始める前にHDDの内容を全てパソコンに転送し、手順12〜13の代わりに HDDイメージをPS2に戻せばよい。但し、2GBを超えるファイルの作成ができない システムでは、HDDの内容によってイメージが2GBに収まらないこともあるので、 分割して転送しなければならない可能性がある。(分割するところは、予め4GB 毎などと決めて分割するか、試行錯誤でファイルが2GBを超えるところを探すし かない。) コマンド例: # 最初の4GBを転送 pc:~> nc -lp12345 | gzip -1 > ps2-hda.1.gz ps2:~> dd bs=4M count=1024 if=/dev/hda | nc 192.168.0.1 12345 # 次の16GBを転送 pc:~> nc -lp12345 | gzip -1 > ps2-hda.2.gz ps2:~> dd bs=4M skip=1024 count=4096 if=/dev/hda | nc 192.168.0.1 12345 # 残る17GB余りを転送 pc:~> nc -lp12345 | gzip -1 > ps2-hda.3.gz ps2:~> dd bs=4M skip=5120 if=/dev/hda | nc 192.168.0.1 12345 # 復元時は、データを一括でPS2に転送 ps2:~> nc -lp12345 | reblock > /dev/hda pc:~> zcat ps2-hda.[1-3].gz | nc 192.168.0.3 12345