running a fedora 37 vm on a linux mint 21 host — updated

Fedora 37 Prerelease running neofetch.

I love to play with virtual machines. I’ve always been fascinated with virtual machines going back to the early 1980s, when I worked for the First National Bank of Atlanta and discovered that the IT department had installed an IBM/370 3033 (that’s what they called it) that supported virtual 370s. It was a very big personal computer to me. I still have my yellow card from which I learned 370 Basic Assembly Language and used it to code my CICS exits… but I digress.

I’ve used a number of virtual machine managers for my Linux VMs, from Virtual Box to VMware Player to Parallels on the Mac. They all make it fairly easy to create virtual machines. The biggest problem with all three is they require that you install, inside the virtual machine, drivers in order to access the full features of all three. That requires that they be built from source within the VM using tools (GCC, make, etc) native to Linux. The most important feature that requires you install those kernel modules is sharing the host’s file system. For all of my Linux VMs I set up a folder on the host, named Share, that is then shared by the VM. When the VM is active I can move files from VM to host and back again using this feature. And that feature will break if the modules fail to build. Right now, for example, I can’t build Parallels tools inside a RHEL 9 VM, because Redhat ported some later kernel code back into the RHEL 9 kernel, causing the Parallels tools build process to fail. I can’t seem to install Ubuntu 22.10 or Fedora 37 Prerelease at all on Parallels. Ubuntu 22.10 in particular fails with an inability to install on the virtual disk allocated during VM setup. And this from a tool, Parallels, I have to pay for. I’ve checked the various Parallels fora, and while there are complaints, not a peep out of Parallels support.

So here I am trying out the open source virtual machine tools on Linux Mint. The first VM installation is Fedora 37 Prerelease, and it installed flawlessly. I was even able to configure the VM to share a portion of the host’s file system. But I’m getting a bit ahead of myself.

The first thing you need to do is install all the packages to support QEMU and KVM.

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

Then you need to add your user name to two process groups.

sudo usermod -aG kvm $USER
sudo usermod -aG libvirt $USER

At this point you should just go ahead and reboot the Linux host. This will make sure that all necessary permissions propagate fully through the system as well as to make sure that all supporting processes start up.

After reboot, I was able to find and start the Virtual Machine Manager (VMM) (for greater details see ). I downloaded a Fedora ISO from and create a new VM from that. The ability to create a new VM with VMM was very discoverable. I took all the defaults, mainly 2 processor cores, 2GB of memory, and 20GB of virtual disk. Once completed I started the VM one time to make sure it worked, and it worked like a charm. I then shut it down and went to configure the VM to share one of my local folders, which I’d named Share in my home folder. The VM must be shut down for this next step.

To configure the VM via VMM to share a hold folder requires the following steps.

  1. In VMM, click the button that opens the virtual machine console and details. This does not restart the VM.
  2. In the VM console, click the button that shows virtual hardware details.
  3. Under Memory, make sure that Enable shared memory is checked. If it is not checked, then setting up the share folder will fail. This is the first major step.
  4. At the bottom left of the VM console click the Add Hardware button.
  5. In the Add New Virtual Hardware dialog, go to Filesystem.
  6. In the Filesystem section, add the Source path that points to your host folder you want to share.
  7. In the Target path, add a simple name such as mount_tag. If you want a more detailed explanation of this then read .
  8. Restart the VM. Within the VM’s shell type sudo mount -t virtiofs mount_tag ~/Shared. This should successfully mount the host’s folder to the local VM’s Shared folder in its home directory. At this point you can move files between the VM and the host using the shared folder. If this fails, well, you’re on your own.

If you want you can add another line to your VM’s fstab file to automatically mount the shared folder every time you reboot. I leave that as an exercise to the reader.

I know it looks complicated to add shared filesystems to a VM, but keep in mind that at no time did I have to install separate tools within the VM. Not one. And it’s running at near-kernel level using KVM.

After the second restart of the VM, I ran an update to pick up all the new bits. Here’s how the VM handles that. Remember I took all the defaults. That’s btop running in a terminal window.

Fedora 37 Prerepease running a dnf update.

What I find amazing is how relatively simple this turned out to be. Even more amazing is how my modest Linux box, the Minis Forum 250 with its AMD Ryszen 5 quad-core CPU, can host another Linux VM. I’m not after performance, just functionality. Even when I was running an update on the Fedora 37 VM, the host machine running Linux Mint 21 was still performant and responsive for other tasks.

I will never again use Virtual Box, nor will I recommend it to anyone. Oracle owns Virtual Box, and if there’s a major software company I loath even more than Microsoft, it’s Oracle. If you’re running Linux and want to have a few other distributions running in a virtual machine, then you can’t go wrong with QEMU/KVM and the Virtual Machine Manager.


I forgot to go back in and check to see if Fedora 37 was officially released after that last update. It appears it was, and it’s now running with a version 6 Linux kernel. Check it out below.