-
Make sure your cpu support
kvm
with below command:grep -E "(vmx|svm)" --color=always /proc/cpuinfo
-
Make sure BIOS have enable “Virtualization Technology”.
-
User access to
/dev/kvm
so add your account into kvm(78) group:sudo gpasswd -a $(whoami) kvm
-
Loading kernel modules
kvm_intel
orkvm_amd
depend on your CPU, Add module name in/etc/modules-load.d/kvm.conf
:kvm_intel
-
Load module:
modprobe kvm_amd
-
Install
qemu
,virt-manager
,dnsmasq
andiptables
:sudo pacman -S --needed qemu virt-manager dnsmasq iptables-nft
-
Run and enable boot up start
libvirtd
daemon:systemctl enable --now libvirtd
-
Use PolicyKit authorization create
/etc/polkit-1/rules.d/50-libvirt.rules
(before/etc/polkit-1/rules.d/50-org.libvirt.unix.manage.rules
) as below context:
/* Allow users in kvm group to manage the libvirt
daemon without authentication */
polkit.addRule(function(action, subject) {
if (action.id == "org.libvirt.unix.manage" &&
subject.isInGroup("kvm")) {
return polkit.Result.YES;
}
});
-
You will need to create the libvirt group and add any users you want to have access to libvirt to that group:
groupadd libvirt sudo gpasswd -a $(whoami) libvirt
-
Check network interface status:
sudo virsh net-list --all
-
If it is
inactive
start it using:sudo virsh net-start default
-
Now you can use virt-manager manager your virtual machine.
-
Things to do after installing a Windows VM.
- Check and install drivers on your guest Windows VM, probably
virtio-win
is a nice place to start.
-
If
virsh net-list
is not listing any network interface just reinitialize it with,sudo virsh net-define /usr/share/libvirt/networks/default.xml
-
Then just
autostart
it like so,sudo virsh net-autostart default
-
Step 1: Edit
/etc/libvirt/qemu.conf
file:sudo nano /etc/libvirt/qemu.conf
-
Step 2: Find the
user
andgroup
directives. By default, both are set to"root"
,[...] Some examples of valid values are: # user = "qemu" # A user named "qemu" user = "+0" # Super user (uid=0) user = "100" # A user named "100" or a user with uid=100 # #user = "root" The group for QEMU processes run by the system instance. It can be specified in a similar way to user. #group = "root" [...]
Uncomment both lines and replace root with your username and group with libvirt as shown below:
[...] Some examples of valid values are: # user = "qemu" # A user named "qemu" user = "+0" # Super user (uid=0) user = "100" # A user named "100" or a user with uid=100 # user = "sk" The group for QEMU processes run by the system instance. It can be specified in a similar way to user. group = "libvirt" [...]
-
Step 3: Restart libvirtd service:
sudo systemctl restart libvirtd
We have a Windows 7 VM running on Ubuntu KVM. I needed to give the Windows 7 machine more disk space. This turns out to be really easy (when you know how).
-
Shutdown the VM
virsh shutdown hostname
-
Increase the qcow2 image
Find the qcow2 file of the VM and take a backup (just in case).
cp hostname.qcow2 hostname.qcow2.backup
qemu-img resize hostname.qcow2 +100GB
-
Start the VM
virsh start hostname
-
Extend the partition in Window
Windows has a really good partition management utility built into it. Search for disk management
Original guide - http://wood1978.dyndns.org/~wood/wordpress/2013/07/22/arch-linux-setup-kvm-with-virt-manager-gui/comment-page-1/
KVM @ Arch Wiki - https://wiki.archlinux.org/index.php/KVM
libvirt @ Arch Wiki - https://wiki.archlinux.org/index.php/Libvirt
QEMU @ Arch Wiki - https://wiki.archlinux.org/index.php/QEMU
Network Interface Status - http://ask.xmodulo.com/network-default-is-not-active.html
Network Interface Troubleshooting - https://blog.programster.org/kvm-missing-default-network
Networking libvirt wiki - https://wiki.libvirt.org/page/Networking#NAT_forwarding_.28aka_.22virtual_networks.22.29
Fedora Wiki - Windows Virtio Drivers - https://stg.fedoraproject.org/wiki/Windows_Virtio_Drivers
Extend disk size Windows partition KVM QEMU VM - https://www.randomhacks.co.uk/how-to-extend-increase-a-windows-partition-on-kvm-qemu-vm/
Increasing a KVM machine disk space - https://serverfault.com/questions/324281/how-do-you-increase-a-kvm-guests-disk-space
Fixing Cannot access storage file, Permission denied Error in KVM Libvirt
- https://ostechnix.com/solved-cannot-access-storage-file-permission-denied-error-in-kvm-libvirt/
Would you mind adding more verbosity to Step 7? I'm not at all familiar with PolicyKit or how to add new rules.