Configuring a Custom Qubes OS System

Hello everyone,

I have installed a minimal version of Qubes OS 4.2.3 (R4.2), based on Fedora 30, with the XFCE desktop environment on my laptop, which is equipped with a quad-core Intel i5 processor, 16 GB of RAM, and a 512 GB SSD.

This installation does not include:

  • Any TemplateVMs (fedora-40-xfce, debian-12-xfce, whonix-workstation-17, whonix-gateway-17, etc.)

  • Any ServiceVMs (sys-net, sys-firewall, sys-whonix, sys-usb, etc.)

  • Any AppVMs (anon-whonix, personal, untrusted, work, vault, etc.)

  • Any DispVMs (default-dvm, whonix-workstation-17-dvm, etc.)


Customization goals:

I would like to customize this system by adding:

• A minimal TemplateVM based on Fedora 40.

• A few SystemVMs or ServiceVMs:

  • sys-firewall

  • sys-net

  • sys-usb

• Several AppVMs:

  • An AppVM for system administration (XFCE terminal, XFCE task manager, system settings, etc.).

  • An AppVM for file management (Thunar, Mousepad, etc.).

  • An AppVM for office tasks (LibreOffice, Xarchiver, Xpdf, etc.).

  • An AppVM for graphics (GIMP, Ristretto, etc.).

  • An AppVM for applications requiring Internet access (Firefox, Thunderbird, Hexchat, Transmission, etc.).

  • An AppVM for multimedia (VLC, Audacity, Pavucontrol, etc.).

• A default DispVM based on Fedora.


Issue:

Since the system currently lacks a TemplateVM as well as the sys-net and sys-firewall ServiceVMs required for Internet access, how can I build a fully functional system from this minimal setup?

I have searched extensively on the Internet and on the Qubes OS forum but haven’t found any relevant tutorials or discussions.

I have an external Ventoy drive containing ISO files for various Fedora versions and other Linux distributions.

I can also download ISO files from my other connected devices and transfer them to the minimal Qubes OS system for offline installation, if necessary.


Important note:

I prefer using Qubes OS graphical tools as much as possible to minimize reliance on the command line.


Final question:

Could you provide a reliable, up-to-date, and functional tutorial, or guide me step by step on how to build the customized Qubes OS system I want, starting from this minimal Qubes OS 4.2.3 (R4.2) installation?

Thank you in advance for your help and suggestions!

You can install the templates directly from the install medium that you
used. They are installable using rpm -i
Once installed, you can the salt the service qubes that you want: e.g.
sudo qubesctl state.apply qvm.sys-net
Then just create the qubes that you want to have. Given your
requirements my approach would be to clone a minimal template and
install the software in to each clone - I do this using salt. I prefer
this approach to installing all the software in to one template, but
your view may be different. Let us know which way you want to go.
!

I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.

Hi Kara - and welcome to the forum!

Sounds like you choose not to run the initial setup and went for the experienced user approach.

If you read the source for /usr/libexec/initial-setup/initial-setup-graphical and the files below /usr/share/anaconda/addons/org_qubes_os_initial_setup/, then you should have all the steps you need to get the basic system running (ServiceVMs) and go from there.

The easy way to get a working system, would be to run the Initial Setup and install the ServiceVMs, by running

sudo /usr/libexec/initial-setup/initial-setup-graphical

:slight_smile:

IMHO, it would be a lot easier just to do a default (non-expert) installation where you allow the installer to create the standard service qubes and at least one default full template for you, download a minimal template, clone and customize it as you like, switch your qubes to the minimal template, then delete the original full template.

2 Likes

Thank you for your feedback.

I have performed several types of Qubes OS installations:

  1. Full installation: Qubes OS (Fedora 30) with Fedora 40, Debian 12, and Whonix 17.

  2. Installation without Debian: Qubes OS (Fedora 30) with Fedora 40 and Whonix 17.

  3. Installation without Debian and Whonix: Qubes OS (Fedora 30) with Fedora 40.

  4. Minimal installation: Qubes OS (Fedora 30) only.

I am an experienced Linux user (20 years of experience) but a beginner with Qubes OS. For installations 1, 2, and 3, everything works almost perfectly.

However, I would like to understand the customized (expert mode) configuration of Qubes OS.

First they need some templates installed.

I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.

Hi everyone,

Thank you all for your help with my custom Qubes OS installation project. I’ve decided to pause this project for now due to the challenges I’ve encountered.

I appreciate the support and advice you provided.

Best regards,

Kara

Hi unman,

Thank you for your suggestions. I tried installing the qubes-template-fedora-41-xfce from the Qubes OS installation USB using:

sudo rpm -i /path/to/qubes-template-fedora-41-xfce-4.2.0-202501300253.noarch.rpm

and

sudo dnf install ./qubes-template-fedora-41-xfce-4.2.0-202501300253.noarch.rpm

The package appears as installed when I run:

dnf list --installed

However, running qvm-ls shows only dom0.

Error encountered:

KeyError: ‘fedora-41-xfce’

but the issue persists.

Could you please provide a detailed, step-by-step procedure to properly install and configure the Fedora 41 XFCE template in this minimal environment?

Thank you in advance.

Hi ChrisA,

I tried your suggestion:

sudo /usr/libexec/initial-setup/initial-setup-graphical

The graphical interface opens, but it becomes unresponsive, and I cannot proceed further.

Could you please provide a detailed, step-by-step explanation of how to complete the setup from this point?

Thanks for your help.

Hi adw,

Thank you for your input. I understand your suggested approach. However, I prefer a cleaner solution starting from a minimal installation rather than installing a full system and removing components afterward.

I’ll continue exploring other methods that better fit my customization needs.

Best regards.

Hi Kara

You clearly prefers a setup, that differs from what I know and what I can give recommendations about.

If you read the source code for the initial setup, the needed steps to go from a clean dom0 to minimal system, should be pretty much step-by-step … :slight_smile:

I’ve not tried it, but what happens if you use:

qvm-template install ..

to install the template you prefers?

:slight_smile:

It shouldn’t work as no network vm available.

The qvm-template install ... command searches for the template file you want to install in the /etc/qubes-rpc/qubes-TemplateSearch directory. If no file matching the desired template name is found, an error message is displayed.

That’s right

Hi @fdhhjigf :slight_smile:

I was simply under the impression, that @kara already had (somehow) downloaded and copied the file /path/to/qubes-template-fedora-41-xfce-4.2.0-202501300253.noarch.rpm to the Qubes system … and then I believe that

cd /path/to
qvm-template install qubes-template-fedora-41-xfce

would install the template and make it visible with

qvm-ls

:slight_smile:

I think it would be better to be explicit

cd /path/to
qvm-template install ./qubes-template-fedora-41-xfce…

to install the local file
<small>
I never presume to speak for the Qubes team.
When I comment in the Forum I speak for myself.
</small>