vnc設定に挑戦してみる
- No route to … » Blog Archive » KVMで外部からのVNCアクセスを設定やKVM仮想マシンのVNCサーバ設定: 猫おやじのIT備忘録 - Linux, Windowsを試してみても virsh defind でなぜかエラーする。これの解決を試みる。
-
などを追加で定義してみるとエラーする
# virsh define /etc/libvirt/qemu/chaos.dummy.xml エラー: /etc/libvirt/qemu/chaos.dummy.xml からのドメイン定義に失敗しました エラー: internal error unable to reserve PCI address 0:0:2
-
- インストールの定義で試す
# qemu-img create -f qcow2 /home2/vnc.img 10G # virt-install --connect qemu:///system \ --name vnc \ --ram=512 \ --hvm \ --location http://ftp.riken.jp/Linux/centos/5.5/os/i386 \ --os-type=Linux \ --os-variant=virtio26 \ --disk=/home2/vnc.img,format=qcow2 \ --network bridge=br0 \ --nographics \ --keymap ja \ --vnc \ --vncport=5901 \ --extra-args='console=tty0 console=ttyS0,115200n8' ERROR Can't specify more than one of VNC, SDL, or --nographics Traceback (most recent call last): File "/usr/bin/virt-install", line 1033, in <module> main() File "/usr/bin/virt-install", line 851, in main options.video, guest) File "/usr/lib/pymodules/python2.6/virtinst/cli.py", line 747, in get_graphics raise ValueError, _("Can't specify more than one of VNC, SDL, " ValueError: Can't specify more than one of VNC, SDL, or --nographics nographicsとvncは競合できないようだ? nographicsを外してみる。 # virt-install --connect qemu:///system \ --name vnc \ --ram=512 \ --hvm \ --location http://ftp.riken.jp/Linux/centos/5.5/os/i386 \ --os-type=Linux \ --os-variant=virtio26 \ --disk=/home2/vnc.img,format=qcow2 \ --network bridge=br0 \ --keymap ja \ --vnc \ --vncport=5901 \ --extra-args='console=tty0 console=ttyS0,115200n8' インストールを開始しています... ファイル .treeinfo ・100% |=========================| 413 B 00:00 ファイル vmlinuz を・100% |=========================| 1.8 MB 00:00 ファイル initrd.img ・100% |=========================| 7.2 MB 00:01 ドメインを作成中... 0 B 00:00 Unable to connect to graphical console: virt-viewer not installed. Please install the 'virt-viewer' package. Domain installation still in progress. You can reconnect to the console to complete the installation process. virt-viewer パッケージが必要。 # aptitude install virt-viewer 削除定義ファイル # rm /etc/libvirt/qemu/vnc.xml kill インストール中のプロセス # service libvirt-bin restart # virt-install --connect qemu:///system \ --name vnc \ --ram=512 \ --hvm \ --location http://ftp.riken.jp/Linux/centos/5.5/os/i386 \ --os-type=Linux \ --os-variant=virtio26 \ --disk=/home2/vnc.img,format=qcow2 \ --network bridge=br0 \ --keymap ja インストールを開始しています... ファイル .treeinfo ・100% |=========================| 413 B 00:00 ファイル vmlinuz を・100% |=========================| 1.8 MB 00:00 ファイル initrd.img ・100% |=========================| 7.2 MB 00:01 ドメインを作成中... 0 B 00:00 Cannot open display: Run 'virt-viewer --help' to see a full list of available command line options Domain installation still in progress. You can reconnect to the console to complete the installation process. 仮想コンソールからでは無理か。 コンソールから再度挑戦。 # virt-install --connect qemu:///system \ --name vnc \ --ram=512 \ --hvm \ --location http://ftp.riken.jp/Linux/centos/5.5/os/i386 \ --os-type=Linux \ --os-variant=virtio26 \ --disk=/home2/vnc.img,format=qcow2 \ --network bridge=br0 \ --keymap ja インストールが終わったら起動してvncclientで接続する。UltraVncビューアとか推奨。 接続先は HOST のIPの 5901 (定義値) 例)host:192.168.1.11 guest:192.168.1.9 port:5901 なら 192.168.1.11:5901で接続する。 その前に libvirt で vnc用のポート設定が必要。(任意でパスワード設定が可能) # diff -Naur /etc/libvirt/qemu.conf{.o,} --- /etc/libvirt/qemu.conf.o 2010-09-25 10:14:27.000000000 +0900 +++ /etc/libvirt/qemu.conf 2010-11-14 13:36:12.128381597 +0900 @@ -10,6 +10,8 @@ # verification when allowing public access # # vnc_listen = "0.0.0.0" +vnc_listen = "0.0.0.0" +vnc_password = "vncvnc" # Enable use of TLS encryption on the VNC server. This requires # service libvirt-bin restart
-
- ここからが本題。graphic type 〜を付けても起動しなかったものと定義ファイルを比較してみる。(一部省略)
# diff -Naur /etc/libvirt/qemu/{vnc2.xml.o,vnc.xml} --- /etc/libvirt/qemu/vnc2.xml.o 2010-11-14 13:50:52.861351422 +0900 +++ /etc/libvirt/qemu/vnc.xml 2010-11-14 13:19:56.888778118 +0900 @@ -21,15 +21,15 @@ <emulator>/usr/bin/kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> - <source file='/home2/vnc2.img'/> + <source file='/home2/vnc.img'/> <target dev='vda' bus='virtio'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> <interface type='bridge'> - <mac address='52:54:00:eb:38:9f'/> + <mac address='52:54:00:34:82:32'/> <source bridge='br0'/> <model type='virtio'/> - <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> @@ -37,8 +37,14 @@ <console type='pty'> <target type='serial' port='0'/> </console> + <input type='mouse' bus='ps2'/> + <graphics type='vnc' port='5901' autoport='no' keymap='ja'/> + <video> + <model type='cirrus' vram='9216' heads='1'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </video> <memballoon model='virtio'> - <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </memballoon> </devices> </domain> mouseもしくは<video>が無いのが原因か?と思って追加してみたがdefineで失敗する。 <address type〜のところも合わせて丸ごとコピーしたら成功した。
・vnc定義前 <domain type='kvm'> <name>vnc2</name> <uuid>0102e2c5-90f7-e5ad-fa3a-d437d3c512e0</uuid> <memory>524288</memory> <currentMemory>524288</currentMemory> <vcpu>1</vcpu> <os> <type arch='i686' machine='pc-0.12'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/home2/vnc2.img'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </disk> <interface type='bridge'> <mac address='52:54:00:eb:38:9f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </memballoon> </devices> </domain> ・vnc定義後 <domain type='kvm'> <name>vnc2</name> <uuid>0102e2c5-90f7-e5ad-fa3a-d437d3c512e0</uuid> <memory>524288</memory> <currentMemory>524288</currentMemory> <vcpu>1</vcpu> <os> <type arch='i686' machine='pc-0.12'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/home2/vnc2.img'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> <interface type='bridge'> <mac address='52:54:00:eb:38:9f'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='5908' autoport='no' keymap='ja'/> <video> <model type='cirrus' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </memballoon> </devices> </domain>
続く。