====== 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. [[https://wiki.qemu.org/Main_Page|qemu]] works through the command line, but there are also GUIs. In this guide we explain how to install [[https://qtemu.org/|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 ===== 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 [[https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/l1tf.html|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.