LinkStation v2.30改造の記録

[ホーム][戻る][次へ] 07 by A.Sato


■マジックナンバーの修正

LinkStationのHDDは、そのままLinuxマシンに接続しても、マウントできないようにプロテクトがかかっています。これを解除するのにマジックナンバー修正ツールで0xef54 -> 0xef53に修正します。

http://bonner.s45.xrea.com/ にマジックナンバー修正ツールがあります。すでにダウンロードが完了していると思います。
README & Change Log の説明にしたがって作業します。

Linuxマシンを立ち上げ、交換用新HDDをUSBで接続します。
必要なファイル(fix_ext2_magic、utelnetd)はftpuser(/mnt/usbhdd3/ftpuser)の中に入っている時の説明をします。

デバイスと初期状態の確認
# mkdir /mnt/usbhdd1 ・・・マウントする場所を作ります(sda1用)
# mkdir /mnt/usbhdd3 ・・・マウントする場所を作ります(sda3用)
# mount -t ext3 /dev/sda1 /mnt/usbhdd1 ・・・USBHDDをマウントします
でもプロテクトがあってこれは↑エラーになります
# mount -t ext3 /dev/sda3 /mnt/usbhdd3 ・・・USBHDDをマウントします
# cd /mnt/usbhdd3/ftpuser カレントディレクトリを変えます
# ls 必要なファイルがあるか確認します。
# mkdir /root/tool linux本体のHDDにコピーする場所を作ります
# cp /mnt/usbhdd3/ftpuser/* /root/tool linux本体のHDDにコピーしておきます
fix_ext2_magic、utelnetdが/root/toolに入っているはずです。
# cd /root/tool カレントディレクトリを変えます
# chmod 777 fix_ext2_magic 実行できるようにアクセスモード変更を変更します
# chmod 777 utelnetd 実行できるようにアクセスモード変更を変更します

LinuxのgFTPとかでも「アクセスモード変更...」でrootユーザが実行できるようにできます。

1. パーティションのバックアップ

# cd /mnt/usbhdd3/ftpuser     ftpuserにバックアップを取ります
# dd if=/dev/sda1 of=disk.img bs=64k   数分かかります
6023+1 records in
6023+1 records out

バックアップが正しく取れているか不安な人は、md5sum の結果が等しいことを確認して下さい。

# md5sum /dev/sda1 disk.img    かなり時間がかかります
1dbaf8b5ce258189f7a9ed218f5c5381 /dev/sda1
1dbaf8b5ce258189f7a9ed218f5c5381 disk.img

2. マジックナンバーの確認

マジックナンバーを確認します。マジックナンバーが 0xef54 の場合は修正する必要があります。

# cd /root/tool
# ./fix_ext2_magic /dev/sda1        ;頭の「./」を忘れずに
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/sda1     ;頭の「./」を忘れずに
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/sda1

ここでエラーが出ていて修復したいなら

# fsck -f -y /dev/sda1

を実行します。

5. マウントして確認

マウントしてファイルの中身を確認します。

# mount -o ro /dev/sda1 /mnt/usbhdd1
# ls /mnt/usbhdd1 -l ファイルの中身を表示します

6. おわり

ファイルの中身を確認して問題が無ければ、アンマウントします。

# umount /dev/sda1

これで終わりです。

X. もしもうまく行かなかったら?

バックアップファイルを元にリストアします。

# umount /dev/sda1
# cd <disk.img があるディレクトリ>
# dd if=disk.img of=/dev/sda1 bs=64k

リストアが正しく行われたか不安な人は、md5sum の結果が等しいことを確認して下さい。

# md5sum /dev/sda1 disk.img
1dbaf8b5ce258189f7a9ed218f5c5381 /dev/sda1
1dbaf8b5ce258189f7a9ed218f5c5381 disk.img


[ホーム][戻る][次へ] 07 by A.Sato