ためしにVMWare上で使い始めたOpenSUSE 10.0がなかなかいいので気に入ってます。ただ、最初にけちって4GBの仮想ディスクしか割り当てなかったので、ちょっと将来が心もとない状態です。そこで、ディスクの引越しをしました。こういったことが気安く行えるのがVMWareのいいところです。
SystemRescueCDの用意
http://www.sysresccd.org/ よりisoイメージをダウンロードします。このCDは名前のとおりシステムをいじりたいときに役立つツールがたくさん詰まっています。
grub FDの用意
移行前のSUSEを立ち上げ、コマンドラインから作業します。立ち上げ中にVMWareのメニューからVM→Removable Device→Floppy→Edit..を実行し、空のディスク・イメージを作ってFDDに接続します。
$ cd /boot/grub $ sudo dd if=stage1 /dev/fd0 $ sudo dd if=stage1 /dev/fd0 seek=1
これでFDはできました。いったんVMから切断します。
次に/boot/grub/menu.lstの内容を調べてHDDからブートする場合の設定をメモしておきます。私のシステムは次のようになっていました。
root (hd0,1) kernel /boot/vmlinuz root=/dev/sda2 vga=0x332 selinux=0 resume=/dev/sd sh=silent showopts initrd /boot/initrd
メモしたらシステムをシャット・ダウンします。
SystemRescueCDから起動
シャット・ダウン状態でVMに新しい仮想ディスクを接続します。私は8GBのディスクを作りました。私の場合の接続とlinuxでの名前は以下のとおり。
ディスク | VM上の接続 | Linuxから見たデバイス名 |
---|---|---|
旧仮想ディスク | SCSI0:0 | /dev/sda |
新仮想ディスク | SCSI0:1 | /dev/sdb |
設定が出来たらSystemRescueCDで起動します。
新しいパーティションを作る
まず、fdiskなりpartedなりを使って新しいディスクにパーティションをきります。私の場合は
- /dev/sdb1
- 500MB,swap(82)
- /dev/sdb2
- 7.5GB,linux(83),active
としました。スワップ・ディスクを作ったので
$ mkswap /dev/sdb1
データのコピー
次に、古いディスクからデータをコピーします。OpenSUSEの場合、手放しでパーティションをきるとすべてのプログラムとデータが第二パーティションに収められています。
$ dd if=/dev/sda2 of=/dev/sdb2
ファイル・システムのリサイズ
ddはファイルシステムをごっそりコピーしますが、このファイル・システムは古いディスクのパーティションにあわせてあります。そのため、新しい大きなHDDのパーティションにはあっていません。そこで、新しいパーティションにあわせてファイル・システムを仕立て直します。
SUSEはreiserfsを使っているので、以下のコマンドであわせます。
$ resize_reiserfs
これでコピー作業は終わりです。なお、複数パーティションを使うディスク構成の場合は、パーティション分、以上の作業を繰り返します。ファイルシステムが異なる場合は"Linuxファイルシステムのサイズ変更とデフラグ"
SystemRescueCDをシャットダウンしてVMから切断します。
新しい仮想ディスクに切り替え
古い仮想ディスクをVMから切断し、これまでの作業でデータを移した新しい仮想ディスクをSCSI0:0に設定しなおします。
grub FDからブート
この新しい仮想ディスクにはローダーがありませんのでブートできません。そこで、先ほど作ったgrubのFDイメージを接続します。
FDでブートするとgrubのプロンプトが出ますので先ほどメモした内容をタイプしてブートします。
(grub) root (hd0,1) (grub) kernel /boot/vmlinuz root=/dev/sda2 vga=0x332 selinux=0 resume=/dev/sd sh=silent showopts (grub) initrd /boot/initrd (grub) boot
最後のbootコマンドでシステムのブートが始まります。
grubをインストール
OpenSUSEにログインできたら、自力ブートを行うためにgrubをインストールします。
$ cd /boot/grub $ sudo /usr/sbin/grub-install /dev/sda
これでおしまいです。なお他のディストリビューションでは/と/bootが別ディスクになっていることがあり、その場合は上のコマンドを実行するとブートできなくなります。そこであらかじめ"grub-installを実行したらGRUBメニューが表示されなくなった"を読んで作業してください。