VineLinux4.1をインストールしたハードディスク(40GB)の使用率が90%を越えてきたので、250GBのものに換装することにした。今の環境を丸ごと新しいハードディスクに引越し、パーティション容量だけを変更した。
以下はネットのあちこちで調べた方法の切り貼りなので、より正確な元ネタがどこかのサイト・ブログに存在する。ここには自分用の備忘録としてメモしておく。
以下の情報を参考にするときは自己責任でどうぞ。
(多くの操作でroot権限が必要になるので適当にsuすること。)
ハードディスク(HDD)換装の手順は大きく分けて次の4段階になる。
- 現在のHDDの内容を新しいHDDにまるごとコピー
新しいHDDを接続する。パーティション設定やフォーマットは不要。
現在のHDDはIDEのプライマリマスター(/dev/hda)、コピー先である新しいHDDはIDEのセカンダリマスター(/dev/hdc)に接続した。
次のようにddコマンドで/dev/hdaの全内容を/dev/hdcにコピーする。
dd if=/dev/hda of=/dev/hdc conv=sync,noerror bs=65536
40GBコピーするのに約2時間かかった。
- ブートフロッピーを作る
多分不要な作業 ここから
最初はブートフロッピーを作らずに、直接/dev/hdcのMBRに書き込もうとしたが上手くいかなった。念のためその時の操作も記録しておく(多分関係無い)。
新しいHDDのブートローダを設定しようと
grub-install /dev/hdc
としたところエラーになった。エラーメッセージでぐぐると、/boot/grub/device.mapに/dev/hdcのエントリが無いのが原因らしい。device.mapを編集して、"(hd2) /dev/hdc" を追加した。
その後、もう一度"grub-install /dev/hdc"するとエラーは消えたが、/dev/hdcを/dev/hdaに繋ぎ替えてもエラーが出て起動できなかったので、ブートフロッピーを作ることにした。
多分不要な作業 ここまで
grubのブートフロッピーを作るには、フロッピードライブに空のフロッピーディスクを入れ、次のコマンドを入力する。
mke2fs /dev/fd0 mount -t ext2 /dev/fd0 /mnt/floppy grub-install --root-directory=/mnt/floppy '(fd0)' umount /mnt/floppy
- パーティションの編集
PartitionExpertなどの市販のツールか、KNOPPIXに含まれるqtpartedなどでパーティションを編集する。今回はPartitionExpert(Fat32、NTFS、Linux-swap、EXT2、EXT3、ReiserFSを編集可能)を使った。
容量を増やすのが目的なので、パーティションの順番はそのままで、容量の不足しているパーティションのサイズを大きくした。(一時的にパーティションを作成したり削除したりコピーしたりして最終的に目的のパーティションのサイズを変えた。ややこしくなるので省略。)
もしパーティションの数や順番を変えた場合は、後でLinuxの/etc/fstabなどを編集する必要があると思う。
- ブートローダの設定
HDDを換装後の状態に繋ぎ換える。元の/dev/hdaを取り外し、/dev/hdcに繋がっている新しいHDDを/dev/hdaに繋ぐ。
さっき作ったブートフロッピーでコンピュータを起動し、grubのコマンドプロンプトで/dev/hda(コピー済みの新しいHDD)にブートローダを設定する。
今回は/bootが /dev/hda1 にある。/dev/hda1 はgrubでは (hd0,0) と表現されるので
grub> root (hd0,0) grub> setup (hd0) grub> reboot
として/dev/hdaのMBRに書き込む。
以上で換装は終了。ブートフロッピーを取り出して正常に起動するか確認する。仮にダメだったとしても、元の/dev/hdaはそのまま残っているので、簡単に元に戻すせる。