やっている人がいないのか、全く情報がなかった。
XenServerへ行き着いたが最後、ここが終着駅のような感じがしていました。
しかしやっと、XenServerからHyper-Vへ仮想マシンを移行することが出来ました。
その時の手順をここに記載しておこうと思います。
まともな手段とは言い難いため、試す人は自己責任でお願いします。
うまくいった、もっといい方法がある、という情報をお持ちの方は
教えていただけると幸いです。
- CentOS5.3(x86_64)
- ディスクパーティションはCentOSのデフォルトのまま
- XenServer5.0 から Hyper-V 2.0 へ
まず移行元のマシンにxenではない通常カーネルがインストールされているか確認する。
もし入っていない場合は、yum install kernelなどで通常カーネルをインストールする。
LVMを使っているのでスナップショットをとる。
・・・しかし、ディスク全体をすでに使用中で割り当てられなかったので強引にやります。
|
dd if=/dev/mapper/VolGroup00-LogVol00 of=/backup/VolGroup00-LV00 bs=1m dd if=/dev/xvda1 of=/backup/boot_part bs=1m |
/backupはNFSでマウントした別マシンの共有です。ここにいったんデータを書き出します。
本来はスナップショットをとって、それに対してこのddでのバックアップをとるのが正しいです。
とりあえずデフォルトのまま CentOSをインストールしておきます。消しちゃうけど。
その後、CentOSのディスクを使ってrescueモードで起動。起動時の linux rescue とコマンド打てばOK
そして、ネットワーク有効にしておきます。
/mnt/sysimageにHDDの状態がマウントされる設定は無効にしておきます。
復元先である、/dev/hda1,/dev/mapper/VolGroup00-LogVol00が見えていることを確認してください。
もしなければ、ディスク内容がsysimageにマウントされる設定にして、
手動で、/mnt/sysimage をアンマウントさせてください。
|
dd if=/backup/boot_part of=/dev/hda1 dd if=/backup/VolGroup00-LV00 of=/dev/mapper/VolGroup00-LogVol00 bs=1m sync; sync; sync; |
これで、強引に現在のLVMの中身に書き戻しを行います。
いったんここで再起動します。
続いて、MBRの再設定を行います。
再度CentOSのレスキューモードで起動します。
今度は、sysimageにHDD内容がマウントされるようにします。
まず、XenServerの上で動いていたため、デバイスが /dev/xvdaとなっています。
このままだと、MBRの設定も出来ないので、修正します。
この中にデバイス名で、/dev/xvdaが記載されています。
これを今回のデバイスである /dev/hdaに変更します。
その後、MBRの書き込みを実行します。
そして、CentOSのディスクを取り出して、マシンを再起動します。
grubのメニューが立ち上がってくるので、通常カーネルを選択して起動させます。
各サービスが起動しはじめて、いい感じに起動完了しそうなのですが、
途中で進まなくなります。
そのときのエラーの様子はこのような感じに。
|
INIT: Id "co" respawning too fast: disabled for 5 minutes |
とりあえずシングルユーザーモードで起動します。
grubで起動パラメータを single を与えて起動させます。
|
起動カーネルを選んで "e"をタイプ。 kernel行を選んで"e"をタイプ。 そしてkernel行の末尾にsingleを追加. "b"をタイプしてこの設定で起動します。 |
そして、inittabを変更
そして次の記載がある行をコメントアウト、コメント解除します。
|
co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav #1:2345:respawn:/sbin/mingetty tty1 #2:2345:respawn:/sbin/mingetty tty2 #3:2345:respawn:/sbin/mingetty tty3 #4:2345:respawn:/sbin/mingetty tty4 #5:2345:respawn:/sbin/mingetty tty5 #6:2345:respawn:/sbin/mingetty tty6 |
この部分を以下のように書き換えます。
|
#co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 |
起動パラメータも修正してしまいます。
vi /boot/grub/grub.conf
|
通常カーネルの項目で、console=xvc0の部分を削除 その代わりに、divider=10 を追加しておく |
そして、再起動します。
うまくいけば、これでログイン可能なコンソール状態になります。