I have already blogged in the past about kvm/qemu.
Using the “Virtual Machine Manager” might not be straightforward initially. I’ve heard about Quickemu, which has this goal:
Quickly create and run optimised Windows, macOS and Linux desktop virtual machines.
In this blog post, I’m describing my experience with quickemu in Arch. The package is available from AUR:
1 |
yay -S quickemu |
And you also need the package for Qemu desktop mechanisms:
1 |
sudo pacman -S qemu-desktop |
Then, you use the program “quickget” to get the ISO of one of the many distributions handled by quickemu. Let’s run it without arguments:
1 2 3 4 5 6 7 8 9 10 11 |
❯ quickget ERROR! You must specify an operating system. - Operating Systems: alma alpine android antix archlinux archcraft arcolinux batocera blendos bodhi bunsenlabs cachyos centos-stream debian deepin devuan dragonflybsd easyos edubuntu elementary endeavouros endless fedora freebsd freedos garuda gentoo ghostbsd haiku holoiso kali kdeneon kolibrios kubuntu linuxlite linuxmint lmde mageia manjaro mxlinux netboot netbsd nixos lubuntu macos openbsd openindiana opensuse oraclelinux peppermint popos porteus reactos rebornos rockylinux siduction slackware solus spiral tails tinycore trisquel truenas-core truenas-scale ubuntu ubuntu-budgie ubuntucinnamon ubuntukylin ubuntu-mate ubuntu-server ubuntustudio ubuntu-unity vanillaos void vxlinux windows xerolinux xubuntu zorin You can also use this arguments: Only show ISO download URL --show-iso-url / -s {distro} {release} [edition] Test if ISO is available --test-iso-url / -t {distro} {release} [edition] Open distro homepage --open-distro-homepage / -o {distro} |
Let’s try Zorin:
1 2 3 4 |
❯ quickget zorin ERROR! You must specify a release. - Releases: 16 - Editions: core64 lite64 education64 edulite64 |
We also need to specify its version:
1 |
❯ quickget zorin 16 |
Now, it starts downloading into the current directory, creating a subdirectory. For example, I’m running that from a mounted drive. Here’s some output and some commands to show the layout of the directories and the created configuration file to start the virtual machine with the mounted ISO:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
❯ quickget zorin 16 zorin-16-core64/Zorin-OS-16 100%[=========================================>] 2.91G 3.35MB/s in 15m 23s Making zorin-16-core64.conf Giving user execute permissions on zorin-16-core64.conf, To start your Zorin OS virtual machine run: quickemu --vm zorin-16-core64.conf ❯ tree . ├── zorin-16-core64 │ └── Zorin-OS-16.3-Core-64-bit.iso └── zorin-16-core64.conf ❯ bat -p zorin-16-core64.conf #!/usr/bin/quickemu --vm guest_os="linux" disk_img="zorin-16-core64/disk.qcow2" iso="zorin-16-core64/Zorin-OS-16.3-Core-64-bit.iso" |
Let’s start it:
1 |
quickemu --vm zorin-16-core64.conf |
Note the layout after starting the machine:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
❯ tree . ├── zorin-16-core64 │ ├── disk.qcow2 │ ├── OVMF_VARS.fd │ ├── zorin-16-core64.log │ ├── zorin-16-core64-monitor.socket │ ├── zorin-16-core64.pid │ ├── zorin-16-core64.ports │ ├── zorin-16-core64-serial.socket │ ├── zorin-16-core64.sh │ └── Zorin-OS-16.3-Core-64-bit.iso └── zorin-16-core64.conf |
Thus, it should be easy to put it on an external drive
Here’s the machine starting with the live ISO:
I pressed Ctrl+C to cancel md5sum checks.
Here’s Zorin starting (audio is working):
The screen had resized automatically and became bigger.
I started the installation, mainly choosing default options (e.g., erase the entire disk). And here’s the login screen after the installation finished and the machine rebooted:
The impressive thing is that animations are really fluid and smooth in the virtual machine: you almost don’t realize you’re using a virtual machine:
Here’s the disk layout and memory (on this computer, I have 16 GB, and quickemu automatically selected half the memory for the virtual machine):
Then, I tried Garuda:
1 2 3 4 |
❯ quickget garuda ERROR! You must specify a release. - Releases: latest - Editions: cinnamon dr460nized dr460nized-gaming gnome i3 kde-git kde-lite lxqt-kwin mate qtile sway wayfire xfce |
I tried the “Garuda KDE Dr460nized”:
I edited the conf file to increase the disk size:
1 2 3 4 5 |
#!/usr/bin/quickemu --vm guest_os="linux" disk_img="garuda-latest-dr460nized/disk.qcow2" iso="garuda-latest-dr460nized/latest.iso" disk_size="62G" |
Let’s start it:
1 |
quickemu --vm garuda-latest-dr460nized.conf |
Even in this case, the desktop automatically resizes if I resize the Qemu window.
The installation went smoothly and fast in this case. The login screen is full of nice blurry effects:
On the first login, you’re welcomed by the Garuda assistant to perform some initial tasks.
Here’s the information about the installed system:
Animations and effects are smooth, e.g., the “Overview”:
To summarize, with quickemu, creating a new Qemu virtual machine is easy, starting from one of the many managed Linux distributions. It also works for macOS and Windows distributions, though I haven’t tried them.
Moreover, the performance of the virtual machine is fantastic. The virtual machine seems as smooth as the currently running system.
The only drawback I’ve experienced is that, with the default configuration, the shared clipboard does not work: you must start the virtual machine with the spice display (” –display spice”). For example,
1 |
quickemu --vm zorin-16-core64.conf --display spice |
Remember to install the spice agent in the virtual machine. In the two above examples I’ve tried, the installed virtual machine already has the agent installed automatically during the installation.
First, at least in my experiments, the shared clipboard does not work anyway when the host is running on a Wayland session. Moreover, using the “spice” display, the virtual machine’s performance decreases significantly (see my reported issue: https://github.com/quickemu-project/quickemu/issues/933). Probably, to easily communicate and paste commands in the virtual machine, it is better to install the SSH server in the virtual machine and connect to the virtual machine via SSH.
In any case, this quick look at Quickemu impressed me a lot. 🙂
Pingback: Getting Started with Gnome Boxes | Lorenzo Bettini