VMware ESXi to KVM

http://www.techno-st.net/wiki/VMware_ESXi_to_KVM

VMware ESXi の仮想マシンをそのまま KVM に移植しようというお話。
環境は Debian lenny でのおはなし。
Convert vmdk to qcow2

VMare ESXi の vmdk ディスクイメージは、vSphere から [構成] -> [ストレージ] -> データストアの参照 から、他のマシンにダウンロードする事ができる。
hogehoge.vmdk をダウンロードすると、hogehoge.vmdk と hogehoge-flat.vmdk ができてるはずなので -flat の方を使う。
$ qemu-img convert hogehoge-flat.vmdk -O qcow2 hogehoge.img
boot

VMware ESXi では、ディスクイメージは SCSI としてマウントされる。つまり /dev/sda のような感じ。
KVM では -hda hogehoge.img でイメージを指定するために、/dev/hda にマウントされる。
grub が root=/dev/sda1 のオプションを指定しているので、うまく起動しない。
WARNING bootdevice may be renamed. とか言われるはずである。
応急措置として SCSI でイメージを読み込んで起動した後、grub の menu.lst を書き換える。
$ kvm -drive file=hogehoge.img,if=scsi,boot=on -m xxx
ゲストが立ち上がったら、以下のように書き換える

      • /boot/grub/menu.lst
  • kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro quiet
  1. kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro quiet

その後、再起動すると -hda でイメージを指定しても動作するはず
$ kvm -hda hogehoge.img -m xxx