■ 現状
Debian(etch)のパーティションを切り直そうと思いました。現状は次の通りです。
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda1 6728280 2923896 3462604 46% /
tmpfs 1034424 0 1034424 0% /lib/init/rw
tmpfs 1034424 0 1034424 0% /dev/shm
/dev/sda6 144434356 38561568 98535908 29% /home
/と/homeを分けていて、/のサイズが逼迫してきています。この二つのパーティションを分けるのはやめて、
/bootと/に分けることにします。
■ 手順
次の手順で作業します。
-
メインHDDの内容をバックアップHDDにバックアップ。
-
バックアップHDDが起動するか確認。
-
メインHDDのパーティションを切り直し。
-
バックアップHDDの内容をメインHDDにリストア。
■ メインHDDの内容をバックアップHDDにバックアップ
S-ATAのバックアップHDDを接続します(/dev/sdb)。認識していることを確認したらfdiskでパーティションを切ります。バックアップ用のHDDなので古いパーティションの切り方でも、新しいパーティションの切り方でもどちらでやってもいいのですが、新しいやりかたで起動できることを確認したかったので、/と/bootを分けるように
パーティションを分けました(/bootは100Mぐらい。/はswapをのぞくのこり全部)。
| /boot | /dev/sdb1 |
| swap/ | dev/sdb5 |
| / | dev/sdb6 |
/dev/sdb1と/dev/sdb6はmkfs.ext3でフォーマットします。/dev/sdb5はmkswapします。次にバックアップ
HDDをマウントします。
# mount /dev/sdb6 /mnt
# mount /dev/sdb1 /mnt/boot
データをコピーします。/で実行。*となってますが、実際は/proc、/sys、/mntは除外しておきます。
bashを使っているならばCTRL-X * でアスタリスクを展開しておいてからコマンドラインで編集すれば
楽だと思います。
# cp -a * /mnt
このままでは起動できないので、grubをバックアップHDDのMBRにコピーします。
# grub-install --root-directory=/mnt /dev/sdb
grub-installはわかりずらいです。--root-directoryはbootディレクトリが存在するディレクトリを指定します。
今回の場合バックアップHDDの/は/mntにマウントしさらに/bootは/mnt/bootにマウントしているので、/mntを
指定すればよいことになります。/dev/sdbはMBRをインストールするデバイス名です。
BIOSうんたら…のエラーが発生した場合は、/boot/grub/device.mapを確認します。足らなければ追加します。
(hd0) /dev/sda
(hd1) /dev/sdb
コマンド実行後、/mnt/boot/grub以下のgrub関係ファイルの日付を確認し、現在の日付かどうか確認しておきます。この日付が古かったりファイルがなかったりした場合、--root-directoryの指定が間違えている可能性が高いと思います。
最後にバックアップHDDのmenu.lst、fstabを変更し、新パーティションにあわせておきます。
■ バックアップHDDが起動するか確認
バックアップHDDと1台目のS-ATAディスクとして接続し起動してみます。うまく起動した場合は
次に進みます。
■ メインHDDのパーティションを切り直し
バックアップHDDを1台目、メインHDDを2台目として接続し、メインHDDのパーティションを切り直します。
■ バックアップHDDの内容をメインHDDにリストア
切り直した後は、先ほどのバックアップ手順と同じようにして(今度は逆に)バックアップデータをリストアします。
同じようにmountしてcp -a し、grub-installします。メインを1台目としてつなぎ直し再起動すれば完了です。