Quickemu is a great QEMU-based program to create and run optimised Linux, Windows and macOS virtual machines.

Table of Contents

Install

Just follow the instructions on the GitHub page. For Ubuntu, you need to add a new repository and install Quickemu from it. For other Linux systems, you can just clone the repository (if you have QEMU already installed, you may not need to install any dependencies. If not, check the “Requirements” section on the GitHub page).

Quickemu consists of two commands: quickget and quickemu. quickget downloads ISO files and create the VM configuration. quickemu starts the VM.

There is an optional GUI (Quickgui), but you can use Quickemu from the terminal.

Run quickget

Type quickget, the operating system name and its version. For example:

quickget windows 11
# or
quickget ubuntu focal

Run quickemu

At the end of quickget process, it will show a message like this:

To start your windows 11 virtual machine run:
    quickemu --vm windows-11.conf

Type that quickemu command to start the VM.

Some useful tips:

  • For Windows 11 virtual machines, you need to install swtpm on your Linux computer to emulate a TPM 2.0 device.
  • For macOS VMs, follow Quickemu Github page instructions:
    • Use macOS Disk Utility to “erase” the 100GB virtual disk, so the installer can recognize it.
    • When the VM reboots, it can get stuck in the “Shutdown” message. Just power off the VM and restart it.
    • You don’t need an Apple ID in order to install the system.
    • macOS is configured as an iMac with an ultra high resolution display. DO NOT change the display resolution from “Scaled” to “Default for display”.

Quickemu

Quickemu MacOS

Configuration file

That <systemname>-<systemversion>.conf file is the main configuration file for the VM. By default, Quickemu assigns CPU cores and RAM based on your host specifications, but you can edit the config file to change that by adding these parameters:

  • ram="4G"
  • cpucores="4"
  • disksize="16G": this will not change the virtual disk size if it’s already created.
  • boot="legacy": Legacy BIOS boot.

Remove a virtual machine

Just delete the VM folder and the VM config file.

GUI (Quickgui)

This optional frontend can be installed easily (using repositories on Ubuntu or downloading the binaries on other systems). It just needs quickget and quickemu to be inside one of the default paths (check echo $PATH), usually under /usr/bin. It’s a very simple program, but you can create the VMs (select the operating system and its version, and the download folder) and manage them.

Note: when the operating system download finishes, click on “Dismiss” and go to the main window, then press on “Manage existing machines”.

Quickgui

Viewers

By default, Quickemu uses QEMU basic viewer with the SDL protocol (you can change the display protocol with --display sdl|spice|gtk|none, none uses SPICE but does not display any window). Quickgui uses SPICE protocol with the client spicy. You can install other viewers, like virt-viewer.

  • virt-viewer: Once installed, search for “Remote Viewer” and connect to “localhost:5930” (with a VM running with SPICE). virt-viewer will automatically replace spicy for that session.

If you have any suggestion, feel free to contact me via social media or email.