玄箱の HDD を交換 [linux]

玄箱の空き容量が少なくなってきたので HDD を交換して容量を増やすことにしました。

現在の日立 Deskstar HDT725050VLA360 (500GB) から Seagate Barracuda ST31000340AS (1TB) に交換します。

Seagate Barracuda ST31000340AS は アーク で 13,980 円でした。

作業は、VMware で動かした KNOPPIX から。

まず、パーティションを作成します。
第1パーティション、第2パーティション (swap) は元の HDD と同容量にし、データ用の第3パーティションは MAX 確保しました。

元のディスクのパーティションはこんな感じ。

# fdisk /dev/sdb
コマンド (m でヘルプ): p

このディスクのシリンダ数は 60801 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): p

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

 デバイス Boot Start End Blocks Id System
/dev/sdb1 1 261 2096451 83 Linux
/dev/sdb2 262 293 257040 82 Linux swap / Solaris
/dev/sdb3 294 60801 486030510 83 Linux


新しいディスクにパーティションを作成し、このようになりました。

# fdisk /dev/sdc

このディスクのシリンダ数は 121601 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): p

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

 デバイス Boot Start End Blocks Id System
/dev/sdc1 1 261 2096451 83 Linux
/dev/sdc2 262 293 257040 82 Linux swap / Solaris
/dev/sdc3 294 121601 974406510 83 Linux


次に、パーティションをフォーマットします。

# mke2fs /dev/sdc1
# mke2fs /dev/sdc3


次に、元のディスクから新しいディスクにデータをコピーします。
パーティション1 は 7分ほど、パーティション3 は 64時間半かかりました。

# mount /dev/sdb1 /mnt/sdb1
# mount /dev/sdc1 /mnt/sdc1
# cd /mnt/sdc1
# dump 0auf - /mnt/sdb1/ | restore xf -
# cd
# umount /mnt/sdb1 /mnt/sdc1
#
# mount /dev/sdb3 /mnt/sdb3
# mount /dev/sdc3 /mnt/sdc3
# cd /mnt/sdc3
# dump 0auf - /mnt/sdb3/ | restore xf -
# cd
# umount /mnt/sdb3 /mnt/sdc3


次に MBR をコピーします。

# dd if=/dev/sdb of=/root/from_mbr.img bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0928491 seconds, 5.5 kB/s
# dd if=/dev/sdc of=/root/to_backup_mbr.img bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0636712 seconds, 8.0 kB/s
# dd if=/root/from_mbr.img of=/dev/sdc bs=446 count=1
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.0159327 seconds, 28.0 kB/s


これで作業は完了。

新しい HDD を KURO-BOX に組み込み、起動してみます。

が、起動 NG.
LED 6 回点滅の HDD 異常となりました。


念のためパーティション1 を dd コマンドでコピーし直してみました。

# dd if=/dev/sdb1 of=/dev/sdc1


しかし、同じく LED 6 回点滅の HDD 異常となりました。

調べてみたところ、HDD の起動時間と KURO-BOX に相性があるらしく、電源ボタンを連打すると起動できることがあるとのこと。

LED 6 回点滅の後に、3回くらい電源ボタンを連打してみると、起動できました。


しかし、まだ問題が。
パーティション3 を /etc/fstab でオートマウントする設定にしていたのですが、マウントできていない模様。

これは、パーティション3 を ext3 でなく ext2 としてフォーマットしてしまったのが原因のようです。

パーティション3 を ext3 に変換するとオートマウントできるようになりました。

KURO-BOX $ su -
KURO-BOX # tune2fs -j /dev/hda3


パーティション1 も ext2 としてフォーマットしたので、起動不良はそれが原因かもしれません (未確認)。


メモ。
玄箱/HG Debian化(カーネル2.6) 語の EM モード の入り方。

# echo -n "NGNG" > /dev/mtdblock2


ref.
* MBR(マスターブートレコード)をバックアップするには / @IT
* Sylver Image - Cant go to EM Mode / Kuro Box User Community