Installing Minimal Templates After First-Boot On Air-Gapped Device

I have an air-gapped laptop, which I have installed Qubes 4.2.1. During the installation I chose “do not configure anything” as I want to install everything using Salt and want all my qubes and templates configured and secured before it ever touches a network. My basic anticipated workflow is:

  1. Install default minimal Debian 12 template
  2. Create a clone of this template for each of my service qubes (sys-usb, sys-net, sys-firewall, etc…).
  3. Install the dependencies for each service qube in their respective template.
  4. Start service qubes and connect to WiFi.

The problem I am encountering is that how do I do steps #1 and #3 if I don’t have an internet connection during those steps? Salt complains about the templates not existing as none were installed during setup.

1 Like

You will have to download, and verify, a debian-12-minimal template on
some other network connected machine.
You could do this on the same laptop, if this is your only device, using
a live distro - boot into live, download the template from
Verify it manually - rpm -qi will show you the key used to sign the
package you have downloaded.
Transfer the template to Qubes and install it.

For the debian packages, I would look at using apt-offline.

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

Template Installation

So download and verify on 2nd system, then copy that RPM to dom0 and run rpm -i qubes-template-debian-12...noarch.rpm from a dom0 terminal?

If so, I have my current Salt code as follows:

    - fromrepo: 'qubes-templates-itl'
    - name: 'debian-12-minimal'

Since I can’t use that without an networking, would this be an equivalent to it where I install the pre-downloaded and pre-verified RPM using Salt?

    - sources:
      - debian-12-minimal: 'salt://rpms/qubes-template-debian-12...noarch.rpm'

Packages Installation

I’m looking into this and may have further questions once I get to that step. Thank you @unman for the help!

1 Like