KVM setup in Fedora
Commands
virsh list --all
virsh start <vm>
virsh start <vm> --console
virsh stop <vm>
KVM vs XEN
KVM isn't kernel specific, XEN required special kernel, so XEN could have kernel upgrade issue.
Bridge Network
When creating bridging network, if grub is used to create network interface, then Network Manager should not be used to create same interface. If Network Manager used, same network interface will be appear in ifconfig -a
command output twice, One is created by NetworkManager, another is created by grub. If bridge network interface created on top of grub created interface, the IP address will be still assigned to grub created interface.
In order to avoid above issue, following line in /etc/default/grub
to create network interface with bridging network interface br0
.
GRUB_CMDLINE_LINUX=" ... ip=192.168.1.9::192.168.1.254:255.255.255.0::br0:off nameserver=192.168.1.250 ifname=enp0s10:00:26:4a:18:82:c6 bridge=br0:enp0s10"
After br0
created, KVM manager can select bridging network for vm creation.
Update grub using following command
grub2-mkconfig -o /boot/grub2/grub.cfg
Download driver
Both Windows disk controller driver and ethernet driver can be downloaded from Fedora Website, https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.139-1/virtio-win-0.1.139.iso, and add additional CD-ROM to point to this iso.
Create VM
Using Virtual Machine Manager
Create VM requires add storage, if the storage file doesn't exist, need to select the storage location, and also input the size of disk which located above the location selection box.
Using command line
To create Ubuntu VM from local image,
virt-install \
--name ubuntu2104 \
--ram 3072 \
--vcpus 2 \
--disk path=/kvm/ubuntu2104.qcow2,size=20 \
--os-variant ubuntu20.04 \
--os-type linux \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--cdrom /kvm/ubuntu-21.04-live-server-amd64.iso \
--boot kernel=casper/vmlinuz,initrd=casper/initrd,kernel_args="console=ttyS0"
To create Fedora VM from remote server
virt-install \
--name fed34 \
--ram 2048 \
--vcpus 2 \
--disk path=/kvm/fed34.img,size=20 \
--os-variant fedora34 \
--os-type linux \
--network bridge=virbr0 \
--graphics none \
--console pty,target_type=serial \
--location 'https://mirror.arizona.edu/fedora/linux/releases/34/Server/x86_64/os/' \
--extra-args 'console=ttyS0,115200n8 serial'
Create Windows 10 VM
virt-install \
--ram=4096 \
--name=windows10 \
--os-type=win10 \
--network network=default \
--disk path=/kvm/kvm-windows10.img,size=100 \
--cdrom=/kvm/virtio-win-0.1.139.iso \
--graphics spice
Cons
- Cannot select type of CPU or Passthru mode
- Cannot select type of disk controller type to use virtual device driver.
References
10 Easy Steps To Install Windows 10 on Linux KVM – KVM Windows