VMware Serverで新しいイメージを作り、CentOSをインストールしたのだが、デフォルトのパーティション構成にしたら / が LVM になってしまった。
LVMだと、vmware-toolboxのshrinkが使えないようなので、一度大きくなってしまった仮想ディスクファイルは中身を削除してももう小さくできない。
これでは仮想ディスクを人に渡すのに不便なので、LVMから通常のパーティションに戻せないか調べてみたが、該当するような記述は見つけられなかった。
そこで、VMwareでもう一つ新しい仮想ディスクを作成し、そこに現在のファイルシステムをコピーしてみることにした。
参考にしたのは、今まで使っていたハードディスク(HD)から新しいHDにroot以下をコピーする。
やったこと。
私の場合、/boot/のファイルを書き換えないで再起動してしまったら、GRUBがHard Disk Errorとかいって起動しなくなったので、CDからレスキューモードで起動してファイルを修正する必要があった。
LVMだと、vmware-toolboxのshrinkが使えないようなので、一度大きくなってしまった仮想ディスクファイルは中身を削除してももう小さくできない。
これでは仮想ディスクを人に渡すのに不便なので、LVMから通常のパーティションに戻せないか調べてみたが、該当するような記述は見つけられなかった。
そこで、VMwareでもう一つ新しい仮想ディスクを作成し、そこに現在のファイルシステムをコピーしてみることにした。
参考にしたのは、今まで使っていたハードディスク(HD)から新しいHDにroot以下をコピーする。
やったこと。
- VMware ServerでVMに新しいHDDを追加。
- 元のHDDから起動。(古いHDDが/dev/sda, 新しいHDDが/dev/sdbとして起動する)
- fdisk /dev/sdb して、パーティションを切る。
元 /boot が /dev/sda1 で、残りはLVM→新 /boot, swap, /の3つを基本パーティションにする。 - mkfsおよびmkswapで領域を初期化する。
- /dev/sdb1 (/boot)を適当なところにマウントして、そこにcdしてから、dump/restore
# mount /dev/sdb1 /mnt # cd /mnt # dump 0uaf - /boot | restore xf -
- 同じように /dev/sdb3 (/) もやる
# mount /dev/sdb3 /mnt # cd /mnt # dump 0uaf - / | restore xf -
- 新しいディスクの/etc/fstabを書き換えて、LVMやLABELを参照しているところをデバイスファイル名にする。(現在sdbに見えているものは、sdaになることに注意)
- 新しいディスクの/boot/grub/menu.lst, /boot/grub/grub.conf, /boot/grub/device.mapあたりを書き換えて、LVMを参照しているところをデバイスファイル名にする。(現在sdbに見えているものは、sdaになることに注意)
- 古いディスクの/boot/grub/device.map にsdbを追記する。
- 新しいディスクのMBRにgrubをインストールする。
# grub-install /dev/sdb
- ゲストOSをシャットダウンし、VMwareも終了させる。
- vmxファイルを書き換え、新しいHDDイメージのみが見えるようにする。
私の場合、/boot/のファイルを書き換えないで再起動してしまったら、GRUBがHard Disk Errorとかいって起動しなくなったので、CDからレスキューモードで起動してファイルを修正する必要があった。
カテゴリ
Linuxトラックバック(0)
このブログ記事を参照しているブログ一覧: パーティションのコピー
このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/1167
コメントする