Install a virtual machine manager

Your host may be Hyperbola GNU/Linux-libre x86_64 architecture, for example, but with enough memory and processing power you could run other on the same machine.

What is a virtual machine?

A virtual machine is software that simulates a computer system and can execute programs as if it were a real computer. This software was originally defined as “an efficient and isolated duplicate of a physical machine”.

What programs allow me to run a virtual machine?

In totally free operating systems there is a program called qemu that allows us to virtualize.

qemu works through the command line, but there are also GUIs.

In this guide we explain how to install QtEmu which offers a simple nevertheless quite effective graphical interface for managing virtual machines.

QtEmu installation

Check if your PC supports virtualization

$ LC_ALL=C lscpu | grep Virtualization

or run the command:

$ lsmod | grep kvm

If your computer supports virtualization, you should see the output as Virtualization: VT-x or Virtualization: AMD-V, otherwise your computer is not capable of virtualizing.

QtEmu Installing

# pacman -Sy
# pacman -S qtemu
# usermod -aG kvm <your-user>

Enable kernel modules for virtualization

kvm_intel module (Intel processors)

# modprobe kvm_intel

kvm_amd module (AMD processors)

# modprobe kvm_amd

Enable nested virtualization in KVM

Nested virtualization allows you to run a virtual machine (VM) within another VM while still using host hardware acceleration.

Checking if nested virtualization is supported

For Intel processors, check the /sys/module/kvm_intel/parameters/nested file. For AMD processors, check the /sys/module/kvm_amd/parameters/nested. If you see 1 or Y, nested virtualization is supported; if you see 0 or N, nested virtualization is not supported.

For example:

$ cat /sys/module/kvm_intel/parameters/nested

and return Y.

Enable nested virtualization for Intel processors

1. Turn off all running virtual machines and reload kvm_intel module:

# modprobe -r kvm_intel

2. Activate the nesting function

# modprobe kvm_intel nested=1

3. Nested virtualization is enabled until the host is restarted. To enable it permanently, add the following line to /etc/modprobe.d/kvm.conf file:

# nano -w /etc/modprobe.d/kvm.conf
----------------------------------
options kvm_intel nested=1

Enable nested virtualization for AMD processors

1. Turn off all running virtual machines and reload kvm_amd module:

# modprobe -r kvm_amd

2. Activate the nesting function

# modprobe kvm_amd nested=1

3. Nested virtualization is enabled until the host is restarted. To enable it permanently, add the following line to /etc/modprobe.d/kvm.conf file:

# nano -w /etc/modprobe.d/kvm.conf
----------------------------------
options kvm_amd nested=1

Modules with security issues

The vhost_net module has CVE-2018-3646 security issues which is L1TF and SMT CPU error with possible data leak. It's recommended to disable it as follows:

# modprobe -r vhost_net

If you are in Hyperbola GNU/Linux-libre this module comes disabled.