玄箱の HDD を交換 [linux]

[2008-09-06] に玄箱の HDD を交換したのですが、また空き容量が少なくなってきたのでより大容量の HDD に交換して容量を増やすことにしました。

現在の Seagate Barracuda ST31000340AS (1TB) から Seagate Barracuda ST31500541AS (1.5TB) に交換します。

Seagate Barracuda ST31500541AS は 秋葉原のクレバリー で 10,770円でした。


作業は、CD-ROM ブートの Ubuntu8.04 に新旧 HDD をそれぞれ USB 外付けで行いました。

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

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

$ sudo fdisk /dev/sdb

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

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

Disk /dev/sdb: 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/sdb1 1 261 2096451 83 Linux
/dev/sdb2 262 293 257040 82 Linux swap / Solaris
/dev/sdb3 294 121601 974406510 83 Linux


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

$ sudo fdisk /dev/sdc

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

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

Disk /dev/sdc: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 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 182401 1462782510 83 Linux

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

$ mkfs.ext3 /dev/sdc1
$ mkfs.ext3 /dev/sdc3


次に、元のディスクから新しいディスクにデータをコピーします。
Ubuntu 8.04 には dump, restore コマンドが入っていなかったので、今回は dd で行いました。

$ sudo dd if=/dev/sdb1 of=/dev/sdc1 bs=16k
1310281+1 records in
1310281+1 records out
2146765824 bytes (2.1 GB) copied, 99.8993 seconds, 21.5 MB/s
$ sudo dd if=/dev/sdb3 of=/dev/sdc3 bs=16k
60900406+1 records in
60900406+1 records out
997792266240 bytes (998 GB) copied, 44700.2 seconds, 22.3 MB/s


dd で行ったからか、前回は仮想マシンから作業していたからか、原因はわかりませんが、今回のほうがコピー時間は短かったです。
前回 64時間半が、今回は 12時間半でした。


次に MBR をコピーします。

$ sudo dd if=/dev/sdb of=mbr.img bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0192365 seconds, 26.6 kB/s
$ sudo dd if=mbr.img of=/dev/sdc bs=446 count=1
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.0501263 seconds, 8.9 kB/s


さらに容量を増やしたパーティションのファイルシステムのサイズをパーティションのサイズ一杯まで増やします。

$ mkdir /mnt/sdc3
$ mount /dev/sdc3 /mnt/sdc3
$ sudo resize2fs -p /dev/sdc3
resize2fs 1.40.8 (13-Mar-2008)
Filesystem at /dev/sdc3 is mounted on /mnt/sdc3; on-line resizing required
old desc_blocks = 59, new_desc_blocks = 88
Performing an on-line resize of /dev/sdc3 to 365695627 (4k) blocks.
The filesystem on /dev/sdc3 is now 365695627 blocks long.


これで作業は完了。

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

無事、起動しました。
空き容量が増えていることも確認できました。

HDD のスピンアップのタイミングが変わったからか、7200rpm から 5900rpm に変更して消費電力が減ったからか、LED 6 回点滅は発生しなくなりました。