You need to attach your vncserver with the guest operating system console. This can be done using any one of the following method:
Method # 1: Command Line Option
Normally, QEMU (/usr/libexec/qemu-kvm) uses SDL to display the VGA output. With the -vnc option option, you can have QEMU listen on VNC display display and redirect the VGA display over the VNC session. When using the VNC display, you must use the -k parameter to set the keyboard layout if you are not using en-us. Valid syntax for the display is as follows:-vnc :0In the following example start centos1 guest vm using vnc
-vnc 192.168.1.5:0
-vnc 0.0.0.0:5
-vnc 0.0.0.0:1 -k en-us
#### Require that password based authentication is used for client connections ####
-vnc 0.0.0.0:1,password -k en-us
/usr/libexec/qemu-kvm -S -M rhel5.4.0 -m 1024 -smp 1 -vnc 0.0.0.0:1 -k en-us -name centos1 -monitor pty -boot c -drive file=/var/lib/libvirt/images/centos1.img
Method # 2: qemu-kvm VM Config File (Recommended)
You need to edit your VM config file which is in XML format. The config file is located at /etc/libvirt/qemu directory. In this example, edit centos1.xml as follows:# vi /etc/libvirt/qemu/centos1.xml
Append the following line before final </devices>:
Here is my sample config file:
<graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
Finally, restart your libvirtd:
<domain type='kvm'>
<name>centos1</name>
<uuid>88d067cf-e5f7-7229-f35f-472a9c884864</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='rhel5.4.0'>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/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' cache='none'/>
<source file='/emc/vms/images/host302.f02.dc05.corplan.nixcraft.net.in/c/centos1.img'/>
<target dev='vda' bus='virtio'/>
</disk>
<interface type='bridge'>
<mac address='xx:yy:zz:ee:f4:63'/>
<source bridge='br0'/>
<model type='virtio'/>
</interface>
<interface type='bridge'>
<mac address='54:52:xx:yy:zz:ee'/>
<source bridge='br1'/>
<model type='virtio'/>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<console type='pty'>
<target port='0'/>
</console>
<graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
</devices>
</domain>
# /etc/init.d/libvirtd restart
# virsh shutdown centos1
# virsh start centos1
How Do I Use VNC Client?
Type your VNC (KVM) server ip and port:Once connected you can view your desktop:
Make sure you browse the desktop using ssh tunnel or over some sort of VPN session.
How Do I Find Out Current VNC Setting For Any Given Domain / VM?
Type the following command:# virsh vncdisplay domainName
# virsh vncdisplay 3
# virsh vncdisplay centos1
Sample outputs:
:2
How Do I Password Protect My VNC Session?
The passwd attribute provides a VNC password in clear text (so make sure your xml config file is only readable by root user). Edit centos1.xml file as follows:OR
<graphics type='vnc' port='-1' autoport='yes' passwd='YOUR-PASSWORD-HERE' keymap='en-us'/>
Where,
<graphics type='vnc' port='-1' autoport='yes' listen='192.168.1.5' passwd='YOUR-PASSWORD-HERE' keymap='en-us'/>
- type='vnc': The graphics element has a mandatory type attribute which takes the value "sdl", "vnc", "rdp" or "desktop". In this case it is set to VNC for remote access.
- autoport='yes': The autoport attribute is the new preferred syntax for indicating autoallocation of the TCP port to use.
- passwd='YOUR-PASSWORD-HERE': The passwd attribute provides a VNC password in clear text.
- keymap='en-us': The keymap attribute specifies the keymap to use.
- listen='192.168.1.5': The listen attribute is an IP address for the server to listen on.
# /etc/init.d/libvirtd restart
# virsh start centos1
No comments:
Post a Comment