CentOS5の実マシンをVMwareにお引越ししたのでメモ
方針はベンダ系ハードウェアに紐付いた実マシンをVMにすること。サイズもできれば小さくできるといいな。
Windowsなどの特殊なOSは一切利用しないCentOSオンリー前提です。
用意するもの
- CentOS5の置換元マシン
- CentOS5の置換先VMwareホストマシン。
egrep‘(vmx|svm)’/proc/cpuinfo
実作業
- 現行サイズの把握
- df -Mとかでサイズを把握する。
- ただし、LVM領域はどうせVMになるので歯切れのいいサイズにする。18Gとか。
- 必要なのは/bootなど。こちらはfdisk /dev/sdaで把握する。
- df -Mとかでサイズを把握する。
- まずサイズを整える
- CentOS5はroot領域がLVMになっているのだが、これを適当なサイズに縮小する。
- こうして置かないと後でサイズを正確に調整するのが面倒くさい。
- 詳細:http://centossrv.com/lvm-reduce.shtml
- この時のインストールCD1を用いるがi386でもx86_64でもどちらでも構わない。
- CentOS5はroot領域がLVMになっているのだが、これを適当なサイズに縮小する。
- データを別パーティションに取る。同じパーティションでは無限ループにハマる。
- なので、あらかじめUSB接続HDDやNFSなど外部ディスクをマウントしておく。
- ddを使って/bootと/を吸い出す
- /bootを/dev/sd3、/を/dev/VolGroup00/LogVol00とする(SWAPは/dev/VolGroup00/LogVol01とする)
dd if=/dev/sda3 of=boot.img
dd if=/dev/VolGroup00/LogVol00 of=root.img
-
- この際、MBRは諦める。というのもベンダ鯖には特殊な領域が先頭に入っているため。
- 正直、このエリアを吸い取っていいものか判断は付かない。法的な意味で。
- この際、MBRは諦める。というのもベンダ鯖には特殊な領域が先頭に入っているため。
- VMware上にCentOSのLiveCDを使ってVMを作成する。
bios.bootDelay = "5000"
fdisk /dev/sdb
p
n
p
1
p
w
-
-
- ext3でフォーマット
-
mkfs.ext3 /dev/sdb1
-
- そしてマウント
- 面倒くさいので/mntに直接マウント
- そしてマウント
mount -t ext3 /dev/sdb1 /mnt
-
- sshログインに備えてrootのパスワードを設定
passwd
-
- 元のマシンのデータを持っているマシンからscpコマンドでこのVMにバックアップイメージを転送
scp ./boot.img root@XXX.XXX.XXX.XXX:/mnt
scp ./root.img root@XXX.XXX.XXX.XXX:/mnt
- 次に反映させるディスク領域を/dev/sdaに作成する。
- fdiskで/bootと/を作る。
- /bootは/dev/sda1にちょっと大きめに作る。これは以前dfかfdiskで確認した容量をセットする。
- /は拡張領域上の論理パーティションにlvmで/dev/VolGroup00/LogVol00になるように作る。これは残り全部を回す。
- なので完了後、/dev/sda1,/dev/sda2,/dev/sda5が出来るはず。
- 次にlvmで/dev/VolGroup00/LogVol00を作る。
- pvをまず作る。
- fdiskで/bootと/を作る。
pvcreate /dev/sda5
-
-
- vgを作る。
-
vgcreate VolGroup00 /dev/sda5
vgscan
-
-
- vgのサイズを確認、これの下、Free PE / Size の項目を確認。これがサイズ。
-
vgdisplay
-
-
- 論理ボリュームlvを作成する。この時は最大サイズで取得しておく。名前はLogVol00、サイズ20Gとする。
-
lvcreate -nLogVol00 -L20G VolGroup00
lvdisplay
- バックアップしたイメージを反映させる。
- ddコマンドを利用する。
dd if=/mnt/boot.img of=/dev/sda1
dd if=/mnt/root.img of=/dev/VolGroup00/LogVol00
-
-
- hd0,0が/dev/sda1のはずなので以下のように入力し、MBRを再構築する。
-
root (hd0,0)
setup(hd0)
quit
mkdir /boot1
mount -t ext3 /dev/sda1 /boot1
df
-
-
- /boot1/grub/menu.listを開いて(hd0,2)を(hd0,0)に直す。
-
nano /boot1/grub/menu.list
- 再度LVMを整え、swap領域を構成する。
- CentOS5のインストールCD1を起動ディスクにして再起動
- この際にバックアップファイルを置いたイメージは
- 詳細:http://centossrv.com/lvm-reduce.shtml
- 起動画面でlinux rescueと入力して起動
- 言語はEnglish、キーボードはjp106、netは無し、自動認識はskipで
- lvm vgchange -a yでlvm領域を認識させる。
- fsck.ext3 /dev/VolGroup00/LogVol00をチェック
- resize2fs /dev/VolGroup00/LogVol00 18Gと、縮小したサイズ(18GB)を再度指定する。
- lvm lvreduce -L18G /dev/VolGroup00/LogVol00 と、lvmのサイズも縮小する。
- vgdisplayで残りの容量を確認
- lvcreate -nLogVol01 -L2G VolGroup00 で領域確保、この場合2Gがあまりで存在したとする。
- mkswap -c /dev/VolGroup00/LogVol01 でswap領域を作成。
- exitで再起動
- CentOS5のインストールCD1を起動ディスクにして再起動
- で、まだ、これでは起動出来ないので起動ファイルを作成するため再起動
- CentOS5のインストールCD1を起動ディスクにして再起動、この時ディスクイメージは64bitなら64bit版が必要
- 起動ファイルinitrdの再構成
mv initrd-カーネルバージョン.img initrd-カーネルバージョン.img.bk
mkinitrd initrd-カーネルバージョン.img カーネルバージョン
- 仮想HDDをブートデバイスにして再起動。
以上でできるはず!