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/