lost and found ( for me ? )

Showing posts with label VMware Server. Show all posts
Showing posts with label VMware Server. Show all posts

can't convert VMWare Server's VM image(vmdk) into KVM's image...

VMWare Server 2 で作成した Win XP Pro のイメージを KVM 用に変換してみた。。
が、うまくできん。。

[root@arizona vmware_vmdk_xp]# cat /etc/redhat-release
Fedora release 11 (Leonidas)

[root@arizona vmware_vmdk_xp]# uname -r
2.6.29.6-217.2.8.fc11.i686.PAE

KVM のバージョン:

qemu-kvm-0.10.6-1.fc11.i586
libvirt-0.6.2-14.fc11.i586

python-virtinst ってパッケージに クローン作成や、コンバーターがある。

[root@arizona vmware_vmdk_xp]# rpm -ql python-virtinst-0.400.3-8.fc11.noarch | grep bin
/usr/bin/virt-clone
/usr/bin/virt-convert
/usr/bin/virt-image
/usr/bin/virt-install
/usr/sbin/virt-install

VMWare Server 2 で作成したイメージなどを、KVMマシンにコピー。とりあえず、全部コピーした。

[root@arizona vmware_vmdk_xp]# file *
vmware.log: UTF-8 Unicode English text, with very long lines, with CRLF line terminators
winxppro.nvram: VMware nvram
winxppro.vmdk: VMware4 disk image
winxppro.vmsd: empty
winxppro.vmx: ASCII text, with CRLF line terminators
winxppro.vmxf: XML document text

qcow2 ディスクフォーマット指定するとエラーになるなー。
[root@arizona ~]# virt-convert --hvm --arch=i686 --os-variant=winxp -i vmx -o virt-image -D qcow2 -d vmware_vmdk_xp/winxppro.vmx kvm_image_xp
Usage: virt-convert [options] inputdir|input.vmx [outputdir|output.xml]

virt-convert: error: Unknown output disk format "qcow2"
[root@arizona ~]#

[root@arizona ~]#
[root@arizona ~]# virt-convert --hvm --arch=i686 --os-variant=winxp -d -i vmx -o virt-image -d vmware_vmdk_xp/ kvm_image_xp/
/usr/lib/python2.6/site-packages/virtconv/diskcfg.py:21: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module.
import popen2
水, 19 8月 2009 02:30:50 DEBUG Creating directory kvm_image_xp/
水, 19 8月 2009 02:30:50 DEBUG input_file: vmware_vmdk_xp/winxppro.vmx
水, 19 8月 2009 02:30:50 DEBUG input_dir: vmware_vmdk_xp/
水, 19 8月 2009 02:30:50 DEBUG output_file: kvm_image_xp/winxppro.virt-image.xml
水, 19 8月 2009 02:30:50 DEBUG output_dir: vmware_vmdk_xp/
Generating output in 'virt-image' format to kvm_image_xp//
Converting disk 'winxppro.vmdk' to type raw...
Done.
[root@arizona ~]#

raw フォーマットでトライ。

[root@arizona ~]# virt-convert --hvm --arch=i686 --os-variant=winxp -i vmx -o virt-image -D raw -d vmware_vmdk_xp/winxppro.vmx kvm_image_xp
Generating output in 'virt-image' format to kvm_image_xp/
Converting disk 'winxppro.vmdk' to type raw...
Done.
[root@arizona ~]#

[root@arizona ~]# cd kvm_image_xp/
[root@arizona kvm_image_xp]# ls
winxppro.raw winxppro.virt-image.xml

[root@arizona kvm_image_xp]# file winxppro.raw
winxppro.raw: x86 boot sector, Microsoft Windows XP MBR, Serial 0x513c513b; partition 1: ID=0x7, active, starthead 1, startsector 63, 16755732 sectors, code offset 0xc0

[root@arizona ~]# virsh -c qemu:///system define kvm_image_xp/winxppro.virt-image.xml
エラー: kvm_image_xp/winxppro.virt-image.xml からのドメイン定義に失敗しました
エラー: internal error incorrect root element

むむ、ドメイン定義に失敗

xmlはむしして、virt-install で image を import してみよう。

man virt-install 抜粋

Create a guest from an existing disk image ’mydisk.img’ using defaults
for the rest of the options.

# virt-install \
--name demo
--ram 512
--disk path=/home/user/VMs/mydisk.img
--import


[root@arizona ~]# virt-install --name demo --ram 512 --disk path=kvm_image_xp/winxppro.raw --import
Traceback (most recent call last):
File "/usr/lib/python2.6/logging/handlers.py", line 74, in emit
if self.shouldRollover(record):
File "/usr/lib/python2.6/logging/handlers.py", line 145, in shouldRollover
msg = "%s\n" % self.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 637, in format
return fmt.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 428, in format
s = self._fmt % record.__dict__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 1: ordinal not in range(128)


インストールを開始しています...
ゲストのインストールが完了しました... ゲストを再起動しています。

うーん、起動しない。。 Booting from hard disk ... で止まる。。



qemu-img コマンドでコンバートしてみるかー。

convert [-c] [-e] [-f fmt] filename [-O output_fmt] output_filename
Convert the disk image filename to disk image output_filename using
format output_fmt. It can be optionally encrypted ("-e" option) or
compressed ("-c" option).


[root@arizona vmware_vmdk_xp]# qemu-img convert -f vmdk winxppro.vmdk -O qcow2 winxppro.qemu-img.img

[root@arizona vmware_vmdk_xp]# file winxppro.qemu-img.img
winxppro.qemu-img.img: Qemu Image, Format: Qcow , Version: 2

ちなみに、KVM上で作成したイメージは:

[root@arizona vmware_vmdk_xp]# file /var/lib/libvirt/images/win2003R2.img
/var/lib/libvirt/images/win2003R2.img: x86 boot sector, Microsoft Windows XP MBR, Serial 0x1110111; partition 1: ID=0x7, active, starthead 1, startsector 63, 16755732 sectors, code offset 0xc0

[root@arizona vmware_vmdk_xp]# virt-install --name aaa --ram 512 --disk path=winxppro.qemu-img.img --import
Traceback (most recent call last):
File "/usr/lib/python2.6/logging/handlers.py", line 74, in emit
if self.shouldRollover(record):
File "/usr/lib/python2.6/logging/handlers.py", line 145, in shouldRollover
msg = "%s\n" % self.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 637, in format
return fmt.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 428, in format
s = self._fmt % record.__dict__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 1: ordinal not in range(128)


インストールを開始しています...
ゲストのインストールが完了しました... ゲストを再起動しています。

だめだー。。raw にしてみよう。。

[root@arizona vmware_vmdk_xp]# qemu-img convert -f vmdk winxppro.vmdk -O raw winxppro.qemu-img.raw

[root@arizona vmware_vmdk_xp]# file *.raw
winxppro.qemu-img.raw: x86 boot sector, Microsoft Windows XP MBR, Serial 0x513c513b; partition 1: ID=0x7, active, starthead 1, startsector 63, 16755732 sectors, code offset 0xc0

boot sector とかの情報がでているのでいけるかー。

[root@arizona vmware_vmdk_xp]# virt-install --name zzz --ram 512 --arch=i686 --os-variant=winxp --disk path=winxppro.qemu-img.img --import

ブルースクリーンになるなー。
うーん、、、google であとで調べてみよう。。( google を verb として使うと、I will google how to convert vmdk into KVM's image って感じ ?? )


Steve Vai の Glorious いいなー。。。すげーぞ、Vai 。
Firewall とかもいい :D

install ESX 4 within VMWare Server 2

ESX をインストールできる条件を満たすPCを持っていないので、VMWare Server 上に ESX をインストールした
のでメモメモ。
もち、サポート外。

- 条件

BIOS , CPUが VT に対応していること。
ESX用 (VM ) にメモリを2GB以上アサインできること ( 2GB以下だと、インストール中にメモリが足りんぞーって怒られる )
vmx ファイルに下記を記述する。

--
monitor_control.enable_svm = "true" <- 追加 for AMD's CPU
monitor_control.restrict_backdoor = "true" <-追加
--

Intel CPU の場合は monitor_control.enable_vt32 = "true"
とする。

ではトライ

OS: Win XP Pro 32bit
VMWare Server 2
CPU: AMD Athlon 64 x2
total memory: 4GB ( 実際は 3GB ちょい認識だけど、4GBのメモリが入ってる )

インストール中の画面




インストール後。ESX が起動した画面。 
上の画像と見た目があまり変わらないので違いがわかりにくい。。。



ちなみに、vmx ファイルはこんな感じ~。

--
.encoding = "Shift_JIS"
config.version = "8"
virtualHW.version = "7"
floppy0.present = "false"
mks.enable3d = "true"
pciBridge0.present = "true"
pciBridge4.present = "true"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "true"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "true"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "true"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "true"
nvram = "Virtual Machine.nvram"
virtualHW.productCompatibility = "hosted"
ft.secondary0.enabled = "true"
tools.upgrade.policy = "useGlobal"
powerType.powerOff = "soft"
powerType.powerOn = "hard"
powerType.suspend = "hard"
powerType.reset = "soft"

displayName = "Virtual Machine"
extendedConfigFile = "Virtual Machine.vmxf"

scsi0.present = "true"
scsi0.sharedBus = "none"
scsi0.virtualDev = "lsilogic"
memsize = "2048"
scsi0:0.present = "true"
scsi0:0.fileName = "Virtual Machine.vmdk"
scsi0:0.writeThrough = "true"
ide1:0.present = "true"
ide1:0.fileName = "G:\storage1\VMware-VMvisor-Installer-4.0.0-171294.x86_64.iso"
ide1:0.deviceType = "cdrom-image"
ide1:0.allowGuestConnectionControl = "false"
ethernet0.present = "TRUE"
ethernet0.allowGuestConnectionControl = "FALSE"
ethernet0.virtualDev = "e1000"
ethernet0.features = "1"
ethernet0.wakeOnPcktRcv = "false"
ethernet0.networkName = "Bridged"
ethernet0.addressType = "generated"
guestOS = "otherlinux-64" <- VM の OS は other linux 64bit
uuid.location = "56 4d 97 72 87 0e b3 19-6d 3c a8 86 48 34 9d a1"
uuid.bios = "56 4d 97 72 87 0e b3 19-6d 3c a8 86 48 34 9d a1"
vc.uuid = "52 8b 5c 15 ff 8f 06 23-38 7c 00 9a 9a ce df 25"

monitor_control.enable_svm = "true" <- 追加したよー
monitor_control.restrict_backdoor = "true" <- 追加したよー

ethernet0.generatedAddress = "00:0c:29:34:9d:a1"
scsi0:0.redo = ""
vmotion.checkpointFBSize = "134217728"
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
scsi0.pciSlotNumber = "16"
ethernet0.pciSlotNumber = "32"
vmci0.pciSlotNumber = "33"
ethernet0.generatedAddressOffset = "0"
vmci0.id = "1211407777"

tools.remindInstall = "TRUE"
--

久々に steve vai 聞いたら、これまたさいこー。
ultra zone いいなー。。Jibboom とか、Asian sky とか、など、etc , and so on...
just go for it !

Asian sky の歌詞に出てくる中国語(?) 、なんて言ってるんだろー。
n' i , in the asian sky !!!

Cheers!