LinkStation v2.30改造の記録
■マジックナンバーの修正
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