Fedora - minimal
The template only weighs about 600 MB compressed (2 GB on disk) and has only the most vital packages installed, including a minimal X and xterm installation. The minimal template, however, can be easily extended to fit your requirements. The sections below contain the instructions on duplicating the template and provide some examples for commonly desired use cases.
The Fedora minimal template can be installed with the following command:
[user@dom0 ~]$ sudo qubes-dom0-update qubes-template-fedora-26-minimal
The download may take a while depending on your connection speed.
Duplication and first steps
It is highly recommended to clone the original template, and make any changes in the clone instead of the original template. The following command clones the template. Replace
your-new-clone with your desired name.
[user@dom0 ~]$ qvm-clone fedora-26-minimal your-new-clone
You must start the template in order to customize it.
Customizing the template for specific use cases normally only requires installing additional packages. The following table provides an overview of which packages are needed for which purpose.
As expected, the required packages are to be installed in the running template with the following command. Replace “packages` with a space-delimited list of packages to be installed.
[user@your-new-clone ~]$ sudo dnf install packages
|Use case||Description||Required steps|
|Standard utilities||If you need the commonly used utilities||Install the following packages:
|FirewallVM||You can use the minimal template as a FirewallVM, such as the basis template for
||No extra packages are needed for the template to work as a firewall.|
|NetVM||You can use this template as the basis for a NetVM such as
||Install the following packages:
|NetVM (extra firmware)||If your network devices need extra packages for the template to work as a network VM||Use the
|Network utilities||If you need utilities for debugging and analyzing network connections||Install the following packages:
|USB||If you want USB input forwarding to use this template as the basis for a USB qube such as
|VPN||You can use this template as basis for a VPN qube||Use the
|DVM Template||If you want to use this VM as a DVM Template||Install
A comprehensive guide to customizing the minimal template is available here
In Qubes R4.0, sudo is not installed by default in the minimal template. To update or install packages to it, from a dom0 terminal window:
[user@dom0 ~]$ qvm-run -u root fedora-26-minimal xterm
In Qubes 4.0, additional packages from the
qubes-core-agent suite may be needed to make the customized minimal template work properly. These packages are:
qubes-core-agent-qrexec: Qubes qrexec agent. Installed by default.
qubes-core-agent-systemd: Qubes unit files for SystemD init style. Installed by default.
polkit: By default the ‘fedora-26-minimal’ template doesn’t have passwordless root. These two packages fix the situation.
qubes-core-agent-nautilus: This package provides integration with the Nautilus file manager (without it things like “copy to VM/open in disposable VM” will not be shown in Nautilus).
qubes-core-agent-sysvinit: Qubes unit files for SysV init style or upstart.
qubes-core-agent-networking: Networking support. Required if the template is to be used for a
qubes-core-agent-network-manager: Integration for NetworkManager. Useful if the template is to be used for a
network-manager-applet: Useful (together with
notification-daemon) to have a system tray icon if the template is to be used for a
qubes-core-agent-dom0-updates: Script required to handle
dom0updates. Any template which the VM responsible for ‘dom0’ updates (e.g.
sys-firewall) is based on must contain this package.
qubes-usb-proxy: Required if the template is to be used for a USB qube (
sys-usb) or for any destination qube to which USB devices are to be attached (e.g
sys-netif using USB network adapter).
pulseaudio-qubes: Needed to have audio on the template VM.
rsyslog logging service is not installed by default, as all logging is instead being handled by the
Users requiring the
rsyslog service should install it manually.
To access the
journald log, use the