CentOS 7: Install KVM and run virtual machine

Table of Contents

1 Install qemu-kvm and libvirt

Install qemu-kvm package and some packages for virtual machine operation.

$ sudo yum install -y qemu-kvm libvirt-client virt-install virt-manager virt-viewer bridge-utils

2 Bridge interface

The bridge interface is needed for accessing virtual machine via network from other machine.

3 libvirt group

The user in libvirt group can run virt-manager without sudo.

$ sudo gpasswd libvirt -a <username>

4 Create iso directory

Create iso directory for sharing iso images with multiple users. Move ubuntu-16.04-desktop-amd64.iso to iso directory.

$ sudo mkdir /var/lib/libvirt/iso$ sudo mv ubuntu-16.04-desktop-amd64.iso /var/lib/libvirt/iso/$ sudo chown qemu:qemu /var/lib/libvirt/iso/ubuntu-16.04-desktop-amd64.iso

5 VNC port

Allow VNC port with using vnc-server.xml so that other machine can access virtual machine.

The vnc-server.xml allows only 4 ports. If you need more, please change 5903 to bigger value.

$ sudo cat /usr/lib/firewalld/services/vnc-server.xml<?xml version=”1.0″ encoding=”utf-8″?><service> <short>Virtual Network Computing Server (VNC)</short> <description>A VNC server provides an external accessible Xsession. Enable this option if you plan to provide a VNC server withdirect access. The access will be possible for displays :0 to :3. Ifyou plan to provide access with SSH, do not open this option and usethe via option of the VNC viewer.</description> <port protocol=”tcp” port=”5900-5903″/></service>

Allow VNC port.

$ sudo firewall-cmd –add-service=vnc-server –permanent$ sudo firewall-cmd –reload

6 Enable kvm_intel nested

If Enable kvm_intel nested, you can create nested virtual machine on virtual machine.

$ sudo su -c ‘echo options kvm_intel nested=1 > /etc/modprobe.d/qemu-system-x86.conf’$ sudo reboot

7 Create virtual machine with virt-install

Create disk with qemu-img and create virtual machine with virt-install. Please change vnc password.

$ sudo qemu-img create -f raw /var/lib/libvirt/images/ubuntu-16.04-vm.raw 80G$ sudo virt-install –name ubuntu-16.04-vm –memory 1024 –vcpus 1 –cdrom /var/lib/libvirt/iso/ubuntu-16.04-desktop-amd64.iso –network bridge=br0 –os-type linux –os-variant ubuntu14.04 –file /var/lib/libvirt/images/ubuntu-16.04-vm.raw –graphics vnc,listen=,password=password,keymap=ja

virt-viewer is running and virtual machine is displayed.


Close virt-viewer. Other machine can access virtual machine via VNC.

$ open vnc://<server>:<port>

Android | Linux | SDL - Narrow Escape