Post

ENG | Running virtual machine on Fedora Linux

Quick guide how to run virtual machine on Linux

ENG | Running virtual machine on Fedora Linux

Personal motivation:

Just because I wanted to try OpenSUSE after almost three years and check some details in Sway configuration. I don’t consider either OpenSUSE or Fedora better than other, I just never liked release cycles of OpenSUSE where one option is having somewhat obsolete distro and other option is reinstalling all packages just because new gcc compiler was released and next day have new release of KDE Plasma desktop again.

Today slowroll exist.

VirtualBOX on Windows has really bad performance in last years, likely since Windows itself are running inside hypervisor and it has annoying lags. Also I moved to Linux on my Lenovo T480s notebook temprmanently in early October when I tried how hard it could be to install Steam and RimWorld on Linux (which took two weeks of testing).

I’m kind of considering to try OpenSUSE again, i guess it will be confusing to switch between dnf and zypper.

Installing virt-manager

Install packages

1
sudo dnf in virt-manager guestfs-tools virt-viewer libvirt-daemon-config-network
1
2
3
4
5
6
7
8
Transaction Summary:
 Installing:       168 packages
 Upgrading:          4 packages
 Replacing:          4 packages

Total size of inbound packages is 83 MiB. Need to download 83 MiB.
After this operation, 312 MiB extra will be used (install 321 MiB, remove 10 MiB).
Is this ok [y/N]: y

Start service

1
sudo systemctl enable --now libvirtd
1
2
3
4
Created symlink '/etc/systemd/system/multi-user.target.wants/libvirtd.service' → '/usr/lib/systemd/system/libvirtd.service'.
Created symlink '/etc/systemd/system/sockets.target.wants/libvirtd.socket' → '/usr/lib/systemd/system/libvirtd.socket'.
Created symlink '/etc/systemd/system/sockets.target.wants/libvirtd-ro.socket' → '/usr/lib/systemd/system/libvirtd-ro.socket'.
Created symlink '/etc/systemd/system/sockets.target.wants/libvirtd-admin.socket' → '/usr/lib/systemd/system/libvirtd-admin.socket'.

Create folder and virtual disk

1
2
3
4
cd
mkdir VMs
cd VMs
qemu-img create -f qcow2 ~/VMs/opensuse-slowroll.qcow2 20G
1
Formatting '/home/pavel/VMs/opensuse-slowroll.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=21474836480 lazy_refcounts=off refcount_bits=16
1
ls -la
1
2
3
4
total 204
drwxr-xr-x.  2 pavel pavel   4096 Nov 25 19:36 .
drwx------. 34 pavel pavel   4096 Nov 25 19:35 ..
-rw-r--r--.  1 pavel pavel 196928 Nov 25 19:36 opensuse-slowroll.qcow2

Download distro of your liking

Here slowroll was full 5GB iso, whereas netinstall of Tumbleweed is small.

1
wget https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Current.iso
1
2
3
4
5
6
7
8
HTTP response 302  [https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Current.iso]
Adding URL: https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Snapshot20251124-Media.iso
Adding URL: https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Snapshot20251124-Media.iso
HTTP response 302  [https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Snapshot20251124-MediaAdding URL: https://ftp.sh.cvut.cz/opensuse/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Snapshot20251124-Media.iso
Adding URL: https://ftp.sh.cvut.cz/opensuse/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Snapshot20251124-Media.iso
Saving 'openSUSE-Tumbleweed-NET-x86_64-Current.iso'
HTTP response 200  [https://ftp.sh.cvut.cz/opensuse/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Snapshot20251124-MedopenSUSE-Tumbleweed- 100% [===================================================================>]  362.00M   28.91MB/s
                          [Files: 1  Bytes: 362.00M [26.92MB/s] Redirects: 2  Todo: 0  Errors: ]

Check status

1
sudo systemctl status libvirtd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[sudo] password for pavel:
● libvirtd.service - libvirt legacy monolithic daemon
     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; prese>
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Tue 2025-11-25 19:35:29 CET; 5min ago
 Invocation: d9c5ed9cdc9440eab6d3baf5f6409c0b
TriggeredBy: ● libvirtd-admin.socket
             ● libvirtd-ro.socket
             ● libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org/
   Main PID: 119543 (libvirtd)
      Tasks: 23 (limit: 32768)
     Memory: 19.2M (peak: 22.5M)
        CPU: 744ms
     CGroup: /system.slice/libvirtd.service
             ├─119543 /usr/bin/libvirtd --timeout 120
             ├─119626 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/d>
             └─119627 /usr/bin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/d>

Run virtual manager GUI

1
virt-manager -c qemu:///session

Install distro of your liking

  • (x) Local install media (ISO…
  • Navigate to downloaded ISO
  • (x) Enable storage for this virtual machine
  • (x) Select or create custom storage -> Manage -> Navigate to qcow2 file

Since now we have to go through UI, set iso and disk image and call it a day

Few screenshots from OpenSUSE Few screens from OpenSUSE install, IceWM and openSUSEway

This post is licensed under CC BY 4.0 by the author.