Page cover
Qubes OSVMVirtualBoxwindowsWindows 11RufusBalenaEtchervirtualization

linuxQubes OS 4.3.0

This tutorial helps beginners who are curious about Qubes OS to play around with it without needing an extra computer.

circle-info

Qubes OS isn't really Linux

Technically, it's a Xen hypervisor, but practically, it uses Linux Debian and Fedora VMs on top, so for the user experience, it's basically Linux, so some basic experience with Ubuntu, Mint, etc. will definitely help you.

circle-exclamation

Installation on a physical machine

Pre-Existing Conditions (hehe 😁)

This tutorial assumes the following things about you:

  1. You're a beginner, but you have at least tried to use a major Linux distro like Ubuntu, Mint, etc.

  2. Your main operating system is Windows 11.

  3. You have a relatively modern computer with virtualization support activated in BIOS/UEFI (Intel VT-x or AMD-V).

  4. Your computer has at least 16GB of RAM: You'll need at least 8GB of those 16GB to power a virtual computer running on top of your physical computer. The more the merrier.

  5. You need at least 40GB of space on your computer for the virtual machine disk, which simulates a physical hard drive. At least 80GB is required if you want to seriously test the functionality.

  6. You have already installed VirtualBoxarrow-up-right.

  7. You have already downloaded the Qubes OS ISO image filearrow-up-right.

Setting up the VM in VirtualBox

1

Set VirtualBox Preferences

  1. Open VirtualBox

  2. Open File -> Preferences...

  3. Select "Expert" at the top of the left-side menu: This allows us to adjust the disk settings when creating a VM.

  4. General: Default Machine Folder (optional): You can pre-define a directory on a partition or hard drive with enough space to house all your VMs.

  5. Input -> Virtual Machine -> Host Key Combo: Make sure to select a key or a combination of keys that are easily accessible for you (i.e. "ALT GR" in my case). You'll need this to release your mouse quickly from the VM, so you can use it normally on your computer, otherwise it will only work inside the VM, but not outside of it, and you'd need to press Ctrl+Alt+Del.

  6. Click "OK".

2

Create a new VM

  1. Open VirtualBox

  2. Select Machine -> New

3

Virtual machine name and operating system

  1. VM Name: Enter any name you like (i.e. "Qubes OS R4.3.0")

  2. VM Folder: Select a location with at least 40GB for the VM (80GB is recommended if you have space)

  3. ISO Image: Select the Qubes OS ISO image filearrow-up-right file you already downloaded.

  4. OS Distribution: Fedora

  5. OS Version: Fedora 64-Bit

  6. Uncheck "Proceed with Unattended Installation".

circle-info

If the new VM setup screen looks different, then you forgot to select "Expert" in settings.

4

Specify virtual hardware

  1. Base Memory: Enter at least 8192 MB if your physical computer has 16GB of RAM (or 16384 MB if your physical computer has 32GB of RAM), but you can go higher if you have more resources.

  2. Number of CPUs: Again, choose an amount you're comfortable with. Since this is only for testing, I don't need a lot of power for the VM, so I use only 2.

  3. Make sure to select "Use EFI".

5

Specify virtual hard disk

  1. Disk Size: Enter at least 40,00 GB. I opted for 80GB. The more the merrier.

  2. Hard Disk File Type and Format (optional): You can leave this unchanged, I personally prefer VHD because I can mount it in Windows or add it to Ventoyarrow-up-right.

  3. Click "Finish".

But we are not done yet. Before you start the VM, you need to make some changes.

6

Adjust the VM's Settings

  1. Only select the VM in the VirtualBox main window (don't double click it yet).

  2. Select Machine -> Settings.

  3. Navigate to "Storage" on the left-side menu.

  4. Devices: Select "Controller: SATA".

  5. Attributes: Type: Change into "virtio-scsi".

  6. Check "Use Host I/O Cache".

  7. Devices: Select the actual virtual disk file underneath "Controller: SATA" (i.e. "Qubes OS R4.3.0.vhd").

  8. Check "Solid-state Drive".

  9. Click "OK".

Starting the VM and installing Qubes OS

1

Double-Click the VM to Start It

Alternatively, you can start the VM without a separate Window displaying it. This allows you to "detach the GUI" later and let the machine continue to run in the background:

2

Installation Menu

The VM should successfully boot from the ISO file and display the installation options.

  1. Click with the mouse anywhere inside the VM. Your mouse and keyboard are now "captured" inside the VM, so any mouse movements or key strokes will only be visible inside the VM.

  2. Select the last option with your keyboard and hit enter to begin the installation: Selecting the latest Kernel seems to be less buggy when installing on a VM.

  3. Release your mouse and keyboard until you need to interact with the VM again.

circle-info

This is where the "Host Key Combo" you set up earlier comes in handy.

3

Qubes OS Installation

If everything works, and depending on how much power your virtual machine has, you should be greeted with this screen:

Select your preferred display language and click "Continue".

You should then see this error message:

Click "Continue".

4

Installation Summary

The next screen will show you the installation options. Notice that options with a red text must be set before the installation can continue.

To change an option, click on it, make the changes you want, and return to the installation summary.

5

Keyboard

This is straightforward. You can remove or add multiple keyboards by clicking the "+" or "-" buttons:

Here's an example for adding the German langugage: Type the name of the language, then select the variant you prefer, and click "Add":

By clicking the "Options" button on the right side, you can add a keyboard shortcut for switching to a language, but I never needed it:

When done, click "Done" at the upper left corner to return to the installation summary.

6

Language Support

You can add support for multiple langauges by typing the name of the language in the lower left corner, then selecting a regional variant from the right side:

Here's an example for adding support for German:

When removing the filter in the bottom left corner, you can see that both English and German are supported:

When done, click "Done" in the upper left corner to return to the installation summary.

7

Time & Date

To choose the correct time zone, first select the region from the drop-down list, then the city:

If I want to set it up to Berlin, Germany, I'd need to select "Europe" first, then Berlin:

You can also adjust the date and time settings if not in sync with your physical computer:

When done, click "Done" in the upper left corner to return to the installation summary.

8

Root Account

Enabling the root account is not recommended, so leave this option as is:

When done, click "Done" in the upper left corner to return to the installation summary.

9

User Creation

Set a user name and a password to login to Qubes OS after installation:

When done, click "Done" in the upper left corner to return to the installation summary.

10

Installation Source

You don't need to change anything here. The installation source would be the virtual DVD (ISO file) and is already pre-selected:

When done, click "Done" in the upper left corner to return to the installation summary.

11

Software Selection

You don't need to change these settings unless you need options for visual/hearing impairment or a special desktop experience:

  • Desktop accessibility: Tools for screen readers, high contrast modes.

  • Sway Window Manager: A tiling window manager using Wayland. This is an alternative/advanced option for users who prefer a keyboard-driven, tiling interface over the standard Xfce desktop.

When done, click "Done" in the upper left corner to return to the installation summary.

12

Installation Destination

This is tricky, becuase there is only one disk (the virtual disk), any you already selected it. All you have to do is click on it once more and a check mark will appear next to it:

This is what it should look like:

There's no need to check "Encrypt my data" for testing Qubes on a VM, but if you want to, you'll habe to enter the passphrase when you click "Done":

When done, click "Done" in the upper left corner to return to the installation summary.

13

Begin the installation

When you're done, the installation summary should look like this (no options with red text):

Now you can click "Begin Installation" in the lower right corner.

Reboot

1

Reboot

After the installation finishes, you'll see this screen:

Click "Reboot System" in the lower right corner.

2

Decrypting the disk

If you decided to check "Encrypt my data" under the installation destination, you'll be required to type in that password to decrypt the drive after reboot:

You can also change the display options for the password:

Initial Setup

Once you boot Qubes OS for the first time, you'll see this screen:

Yes, "QUBES OS" is a button. Clicking it takes you to the next step:

To keep this simple, don't change any of the options and click "Done" in the upper left corner. These options are perfectly fine for a beginner to test Qubes OS, here's a quick rundown of them to help you understand the security options in Qubes OS:

Templates Configuration

Templates are the base operating systems that your individual qubes are built from.

Debian/Fedora: These are well known Linux distros for everyday tasks.

Whonix: A privacy-hardened template specifically designed to route all traffic through the Tor network.

Main Configuration

Create default system qubes: This creates the backbone of your system:

  • sys-net: Handles your physical network hardware (WiFi/Ethernet).

  • sys-firewall: Sits between sys-net and your application qubes, acting as a firewall.

  • DispVM (Disposable VM): A throwaway qube that vanishes after use (for opening untrusted files).

    • Make sys-firewall and sys-usb disposable: This makes those system qubes disposable, meaning they're freshly recreated from their template on each boot. This is a strong security measure because any malware that compromises them is wiped on reboot.

    • Make sys-net disposable: Similar idea for sys-net. This is slightly more advanced and can occasionally cause minor quirks. It's safe to leave unchecked for now.

  • Create default application qubes: This creates four pre-named qubes that demonstrate Qubes' isolation model perfectly:

    • personal for your private life.

    • work for professional tasks.

    • untrusted for sketchy websites or unknown files.

    • vault a network-less qube ideal for storing passwords and sensitive data, since it can never be remotely attacked.

  • Use a qube to hold all USB controllers: In Qubes, even USB devices are a threat vector. This option quarantines your USB hardware into its own isolated qube so that a malicious USB device can't directly attack your system:

    • Use sys-net qube for both networking and USB: Skip this; combining them weakens isolation.

    • Automatically accept USB mice: Convenient but slightly less secure. Fine to enable if you use a USB mouse.

    • Automatically accept USB keyboard: The screen notes this is discouraged if a non-USB keyboard is available. If your only keyboard is USB, you'll need this, otherwise leave it unchecked.

  • Create Whonix Gateway and Workstation qubes: This sets up a full Tor-routed environment.

    • sys-whonix acts as a Tor gateway

    • anon-whonix is a workstation that routes all its traffic through it anonymously. Even if anon-whonix is compromised, the attacker only sees Tor traffic.

    • Enable system and template updates over Tor: This routes your system updates through Tor, which enhances privacy but can be noticeably slow. Leave this unchecked for now and enable it later if you specifically need it.

Advanced Configuration

  • Create 'vm-pool' LVM thin pool: This is the storage backend for all your qubes. LVM thin provisioning means disk space is allocated efficiently — a qube only uses as much real disk space as it actually needs, rather than its full allocated maximum. Keep this selected unless you have a specific reason to use an existing pool.

When done, click "Done" in the upper left corner to return to the initial setup screen:

Now click "FINISH CONFIGURATION" in the lower right corner.

Last updated