酒井です。
私がよく使っている方法は、ライブCDのシステムを使って作業する方法です。
Inside Security Rescue Toolkit(以下Inside)を使います。最新バージョンは、
1.3.9bです。
まず、古いHDDをPrimaryMaster(hda)とします。新しいHDDは、何でも良いのです
が、私の場合はUSB2<=>ATAブリッジを使うことが多いので、sdaとします。
Insideを立ち上げメニューから、スーパーユーザーモードのターミナルを上げま
す。
1.fdiskコマンドを使って古いHDDのパーティションテーブルを確認
このとき表示単位は、シリンダ単位ではなくセクタ単位で表示させる
#fdisk -u -l /dev/hda
このとき、それぞれのパーティションに割り振られているセクタ数を
計算しておく。単純に、[終了セクタ番号]−[開始セクタ番号]
hdaのパーティション構成
63 1000 2000 5000 (セクタ番号)
|hda1| hda2 | hda3 |
hda1:1000-63=937セクタ
hda2:2000-1000=1000セクタ
hda3:5000-2000=3000セクタ
2.新しいディスクにfdiskで、1で調べたセクタ数のパーティションを作成
する。もし、パーティションを拡張したい場合は、各パーティションの間
に後で拡張できるように拡張したいパーティションの後ろのパーティショ
ンの開始セクタ番号をずらしておく。
sdaのパーティション構成
63 1000 2000 3000 6000 9000 15000(セクタ番号)
|sda1|ギャップ| sda2 |ギャップ| sda3 |未使用領域|
3.2で作成したパーティションのブートフラグやパーティションタイプを1
で調べた状態にします
4.ddコマンドを使って、古いHDDから新しいHDDへデータをコピーします。
#dd if=/dev/hda1 of=/dev/sda1 bs=1M 第1パーティションのコピー
#dd if=/dev/hda2 of=/dev/sda2 bs=1M 第2パーティションのコピー
#dd if=/dev/hda3 of=/dev/sda3 bs=1M 第3パーティションのコピー
#dd if=/dev/hda of=/dev/hda bs=446 count=1 MBRのコピー
正常にコピーができたかどうか心配であれば、
#md5sum /dev/hda1 /dev/sda1 などとして比較すればOK
5.新旧ディスクを交換し、正常に起動するかどうかを確認
単にHDDを交換するならば、ここまででOK
パーティションサイズを変更するならば、
6.もう一度Insideを起動する
7.メニューからgpartedを起動し、hdaを選択する。拡張したいパーティショ
ンを選択し、Resizeで拡張する。
以上で、ディスクの引越しは完了です。
ちなみに、パーティションのサイズ変更を伴わないディスク障害の予防的なディ
スク交換であれば、OSは問わないのでWindowsであろうが、FreeBSDであろうがOK
Windowsの場合は、gpartedがリサイズにも対応しているので、それなりに使えま
す。
Inside Security Rescue Toolkit
http://www.inside-security.de/insert_en.html
--
酒井久伸 <glc@xxxxxxxxxxxxxxxxxxxxx>