virt-manager is a free software virtualization solution for Linux. virt-manager has a more complex interface than VirtualBox or GNOME Boxes but it also has a more complete set of features.

Running Tails inside a virtual machine has various security implications. Depending on the host operating system and your security needs, running Tails in a virtual machine might be dangerous.
virt-manager is the only virtualization solution that we present that allows the use of a persistent volume.

The following instructions have been tested on Debian Stretch.

Terminology

virt-manager is based on a set of lower level virtualization tools, going from the user interface to the hardware interactions with the processor. This terminology is a bit confusing and other documentation might mention the following tools:

  • KVM is the module of the Linux kernel that interacts with the virtualization features of the processor.
  • QEMU is the virtualization software that emulates virtual processors and peripherals based on KVM and that starts and stops virtual machines.
  • libvirt is a library that allows virt-manager to interact with the virtualization capabilities provided by QEMU.
  • SPICE is a protocol that allows to visualize the desktop of virtual machines.
  • virt-manager is the graphical interface that allows to create, configure, and run virtual machines.

Installation

To install virt-manager in Debian, execute the following command:

sudo apt-get install virt-manager libvirt-daemon-system

To install virt-manager in Ubuntu, execute the following command:

sudo apt-get install virt-manager libvirt-bin qemu-kvm

Running Tails from an ISO image

  1. Start virt-manager.
  2. Double-click on localhost (QEMU) to connect to the QEMU system of your host.
  3. To create a new virtual machine, choose File ▸ New Virtual Machine.
  4. In step 1, choose Local install media (ISO image or CDROM).
  5. In step 2, choose:
    • Use ISO image, then Browse..., and Browse Local to browse for the ISO image that you want to start from.
    • OS type: Linux.
    • Version: Debian Stretch.
  6. In step 3, allocate at least 2048 MB of RAM.
  7. In step 4, disable storage for this virtual machine.
  8. In step 5:
    • Type a name for the new virtual machine.
    • Click Finish to start the virtual machine.
If you get the error message "Error starting domain: Requested operation is not valid: network 'default' is not active", then try to start the default virtual network:
  1. Click on localhost (QEMU).
  2. Choose Edit ▸ Connection details to administer the connection to your local QEMU system.
  3. Click on Virtual Networks tab, then select the default virtual network in the left pane.
  4. Click on the Start Network icon on the bottom of the left pane to start the default virtual network.

Running Tails from a USB stick or SD card

To run Tails from a USB stick or SD card using virt-manager, first create a virtual machine running from an ISO image as described above.

Then do the following:

  1. From the virtual machine window, choose Virtual Machine ▸ Shut Down ▸ Force Off to shut down the virtual machine.
  2. Plug in the USB stick or insert the SD card from which you want to run Tails.
  3. Choose View ▸ Details to edit the configuration of the virtual machine.
  4. Click on the Add Hardware button on the bottom of the left pane.
  5. Select USB Host Device in the left pane.
  6. In the right pane, click on the device from which you want to run Tails, and click Finish.

You can keep the original ISO image connected as a virtual DVD to install Tails onto the USB stick or SD card if needed.

You can also disconnect the original ISO image and start directly from the USB stick once Tails is already installed on it. To do so:

  1. Shut down the virtual machine.
  2. In the configuration of the virtual machine, click on IDE CDROM 1 in the left pane.
  3. Click on the Disconnect button in the right pane.
  4. To enable the USB stick or SD card as a boot option:
    1. Click on Boot Options in the left pane.
    2. Select the USB boot option corresponding to your USB device.
    3. Click Apply.
  5. To start the virtual machine choose View ▸ Console and then Virtual Machine ▸ Run.

Once you started from the USB device you can create a persistent volume on it.

Running Tails from a virtual USB storage

You can also run Tails from a virtual USB storage, saved as a single file on the host operating system.

To run Tails from a virtual USB device using virt-manager, first create a virtual machine running from an ISO image as described above.

Then do the following to create a virtual USB storage:

  1. From the virtual machine window, choose Virtual Machine ▸ Shut Down ▸ Force Off to shut down the virtual machine.
  2. Choose View ▸ Details to edit the configuration of the virtual machine.
  3. Click on the Add Hardware button on the bottom of the left pane.
  4. Select Storage in the left pane.
  5. In the right pane, change the Bus type to USB and click Finish.
  6. Select USB Disk 1 in the left pane.
  7. In the right pane, select the Removable option and click Apply.

Then start the virtual machine from the virtual DVD to install Tails onto the virtual USB storage using Tails Installer. The virtual USB storage appears in Tails Installer as QEMU HARDDISK.

After that you can disconnect the original ISO image and start directly from the virtual USB stick as described in the previous section.

Once you started from the virtual USB device you can create a persistent volume on it.