fix_ext2_magic v1.1 =================== ext2 ファイルシステムのマジックナンバーの表示/修正 ■はじめに LinkStation (HD-LAN、HD-HLAN、HD-HGLAN) のディスクを Linux でマウントできるようにファイルシステムのマジックナンバーを修 正するプログラムです。(関係者は、LinkStation のスレを見てい るに違いない :->) このプログラムは i386 プラットホームの Linux 上で動作します。 実行ファイルは共有ライブラリを使用しないため、ライブラリの バージョンには依存しません。また、ソースファイルをコンパイル すれば LinkStation 上でも動作します。(LinkStation 用の実行 ファイルはアーカイブには含まれていません) ■注意事項 使い方を誤ると重要な情報/データを失う恐れがあります。十分に 注意して使用して下さい。最悪の場合 LinkStation が使用できな くなります。 このソフトウェアを使用した事による損害に対しては一切保障をい たしません。全て自己責任でお願いします。 ■インストール方法 適当なディレクトリでアーカイブファイルを展開します。 ■アンインストール方法 インストール時に展開したアーカイブファイルを全て削除します。 ■使い方 Linux マシンに接続された、LinkStation のパーティションのデバ イスファイルは /dev/hdb1 として説明します。また、実行ファイ ルにはパスを通しておいて下さい。 1. パーティションのバックアップ ファイルシステムを直接扱うので、データが消えても困らない ようにバックアップを取ります。バックアップ先のディレクト リには、作業対象パーティションのサイズと同じ大きさのファ イルを置ける空き容量が必要です。 # cd <適当なディレクトリ> # dd if=/dev/hdb1 of=disk.img bs=64k 6023+1 records in 6023+1 records out # バックアップが正しく取れているか不安な人は、md5sum の結果 が等しいことを確認して下さい。 # md5sum /dev/hdb1 disk.img 1dbaf8b5ce258189f7a9ed218f5c5381 /dev/hdb1 1dbaf8b5ce258189f7a9ed218f5c5381 disk.img # 2. マジックナンバーの確認 いきなり修正を行う前に、とりあえずマジックナンバーを確認 します。マジックナンバーが 0xef54 の場合は修正する必要が あります。 # fix_ext2_magic /dev/hdb1 Block group 0: magic number = 0xef54 Block group 1: magic number = 0xef54 Block group 3: magic number = 0xef54 Block group 5: magic number = 0xef54 Block group 7: magic number = 0xef54 Block group 9: magic number = 0xef54 Block group 25: magic number = 0xef54 Block group 27: magic number = 0xef54 # 3. マジックナンバーの修正 以下のコマンドを実行して、マジックナンバーを修正します。 # fix_ext2_magic --fix /dev/hdb1 Block group 0: magic number = 0xef54 -> 0xef53 (fixed) Block group 1: magic number = 0xef54 -> 0xef53 (fixed) Block group 3: magic number = 0xef54 -> 0xef53 (fixed) Block group 5: magic number = 0xef54 -> 0xef53 (fixed) Block group 7: magic number = 0xef54 -> 0xef53 (fixed) Block group 9: magic number = 0xef54 -> 0xef53 (fixed) Block group 25: magic number = 0xef54 -> 0xef53 (fixed) Block group 27: magic number = 0xef54 -> 0xef53 (fixed) # 4. 念のためファイルシステムのチェック 念のためファイルシステムのチェックを行います。 # fsck -f -n /dev/hdb1 ここでエラーが出ていて修復したいなら # fsck -f -y /dev/hdb1 を実行します。 5. マウントして確認 マウントしてファイルの中身を確認します。 # mount -o ro /dev/hdb1 <適当なマウントポイント> 6. おわり ファイルの中身を確認して問題が無ければ、アンマウントしま す。 # umount /dev/hdb1 これで終わりです。 X. もしもうまく行かなかったら? バックアップファイルを元にリストアします。 # umount /dev/hdb1 # cd <disk.img があるディレクトリ> # dd if=disk.img of=/dev/hdb1 bs=64k リストアが正しく行われたか不安な人は、md5sum の結果が等し いことを確認して下さい。 # md5sum /dev/hdb1 disk.img 1dbaf8b5ce258189f7a9ed218f5c5381 /dev/hdb1 1dbaf8b5ce258189f7a9ed218f5c5381 disk.img # ■変更履歴 v1.1 2004/02/21 Super Block の位置を間違えることがあった問題を fix 2GB 以上のパーティションに対応 README.eucJP を修正 Makefile をアーカイブに追加 v1.0 2003/12/06 最初のリリース -- bonner@s45.xrea.com http://bonner.s45.xrea.com/