ハードディスク換装

3ヶ月前に仕入れてきた500GBのハードディスクを装着した。80GBだとぎちぎちいっぱいだったのでいっそのこと交換しようと思い、ついに決行した。

ぎちぎちいっぱいだと断片化が起きまくっているせいでアクセス速度がダウンすると聞いた。そういえば俺のハードディスクはやたら遅かった。hdparmだと50MB/sくらい出るけど、体感速度が遅いということは、断片化が原因だろう。

データのコピーは問題なかった。SystemRescueCdから起動してMatzにっき(2006-09-07)を参考にした。

hda: 500GB(新規) hda1(起動用) hda2(データ用)
hdc: 80GB (旧データ用)
hdd: 10GB (起動用)

$ mkdir /new1 /new2 /m /mw
$ mount -t ext3 /dev/hda1 /new1
$ mount -t ext3 /dev/hda2 /new2
$ mount -t ext3 /dev/hdc1 /m
$ mount -t ext3 /dev/hdd1 /mw
$ rsync -aP -H -E -S -x /mw /new1
$ rsync -aP -H -E -S -x /m /new2
$ rsync -aP -H -E -S -x /mw/dev /new1

以前のディスクは非常時&バックアップのため2基とも装着している。省電力化のため「hdparm -S 5」で普段はモーターの回転を止めている。そのかわりCD-RWドライブは取り外し。今時さすがにCD-RWじゃなぁ。

しかし、奇妙なことに新しいディスクから起動しようとするとkernel panicが起こってしまう。以前の起動ディスク(/dev/hdd)かならばなぜかブートできる。だから/boot/grub/menu.lstのエントリはこんな感じ。rootは(hd0,0)ではなくて(hd2,0)となっている。/dev/hddが壊れたらどうしよう…先行き不安だ。

title		Debian GNU/Linux, default
root		(hd2,0)
kernel		/vmlinuz root=/dev/hda1 ro 
initrd		/initrd.img
savedefault

kernel panicのメッセージはこんな感じ。書き写しなので間違いがあるかも。 8388608は2**23だからなにか意味があるかも。838861といえば桁溢れを利用してFC版ドラクエ4のカジノのコインを格安で買う裏技だったな。

RAMDISK: Compressed image found at block0
RAMDISK: incomplete write (-28 != 32768) 8388608
invalid compressed format (err=1)
VFS: Cannot open root device "hda1" or unknown-block(0,0)
Please append a correct "root=" boot option: here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

最初/dev/hda1を10GBにしていたから、もしかして大きすぎるのかと思い、gpartedで2GBに縮めた。こいつが馬鹿みたいに時間がかかる。空のセクタも全部コピーしやがるから5時間もかかった。時間の無駄だった。それでもkernel panicは直らなかった。gpartedを使うくらいならばパーティションを切り直してデータをコピーしなおしたほうがましだ。gpartedは最終手段だな。

ぐぐって調べてみてカーネルパラメータにramdisk=16384 udev=nomountとか指定しても効果がなかった。俺には解決できない…
いびつな形になってしまうが、ブート用CDを作成したほうがいいかもしれない。

なんとか起動して、ベンチマーク測定。

$ sudo hdparm -tT /dev/hda

/dev/hda:
 Timing cached reads:   800 MB in  2.00 seconds = 399.53 MB/sec
 Timing buffered disk reads:  230 MB in  3.01 seconds =  76.43 MB/sec
$ df /dev/hda
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/hda1              2063632    484220   1579412  24% /
/dev/hda2            471097808  72445676 398652132  16% /m

わお、速い!!!!交換するだけで1.5倍高速化した。断片化がない状態だから体感速度も大幅に上がるだろう。
ディスク使用量も95%以上だったのがわずか16%。これで当分の間空容量を気にせずに使える。せっかくなのでテレビ録画のbitrateも2000から5000に上げた。

あとはバックアップスクリプトを書き換えないと…

結局換装作業で昨日まる一日かかってしまい他のことがまったくできなかった。自己嫌悪。

追記

ハードディスク を長持ちさせるための対策- HDD 大量搭載実験サイトによると省電力は絶対やってはいけないらしい。だから予備用のディスク/dev/hddも常に回転させておいた。