[[!meta title="Virtualization"]]

[[!toc levels=2]]

It is sometimes convenient to be able to run Tails without having to
restart your computer every time. This is possible using
[[!wikipedia Virtual_machine desc="virtual machines"]].

With virtual machines, it is possible to run Tails inside a *host*
operating system (Linux, Windows, or Mac OS&nbsp;X). A virtual machine
emulates a real computer and its operating system, called *guest* which
appears in a window on the *host* operating system.

When running Tails in a virtual machine, you can use most features of
Tails from your usual operating system and use both in parallel
without the need to restart the computer.

This is how Tails looks like when run in a virtual machine on Debian using *VirtualBox*:

[[!img tails-in-jessie.png alt="" link=no]]

<div class="note">

<p>We do not currently provide a solution for running a virtual machine
inside a Tails host. See [[!tails_ticket 5606]].</p>

</div>

<a id="security"></a>

Security considerations
=======================

<div class="caution">

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.

</div>

<a id="trustworthy"></a>

  - Both the host operating system and the [[virtualization
    software|virtualization#software]] are able to monitor what you are
    doing in Tails.

    If the host operating system is compromised with a software
    keylogger or other malware, then it can break the security features
    of Tails.

    <div class="caution">
    
    Only run Tails in a virtual machine if both the host operating
    system and the virtualization software are trustworthy.
    
    </div>

<a id="traces"></a>

  - Traces of your Tails session are likely to be left on the local hard
    disk. For example, host operating systems usually use swapping (or *paging*) which
    copies part of the RAM to the hard disk.

    <div class="caution">
    
    Only run Tails in a virtual machine if leaving traces on the hard disk
    is not a concern for you.
    
    </div>

This is why Tails warns you when it is running inside a virtual machine.

<div class="note">

The Tails virtual machine does not modify the behaviour of the host
operating system and the network traffic of the host is not anonymized. The MAC
address of the computer is not modified by the [[MAC address
spoofing|first_steps/startup_options/mac_spoofing]] feature of Tails
when run in a virtual machine.

</div>

<a id="software"></a>

Virtualization solutions
========================

To run Tails inside a virtual machine, you need to have
virtualization software installed on the host operating system.
Different virtualization software exist for Linux, Windows, and Mac OS&nbsp;X.

<div class="note">

<p>The following list includes only free software as we believe that
this is a necessary condition for it to be trustworthy. See the
[[previous warning|virtualization#trustworthy]] and our statement about
[[free software and public scrutiny|about/trust#free_software]].</p>

<p>Proprietary virtualization software solutions exist such as <span
class="application">VMWare</span> but are not listed here on
purpose.</p>

</div>

  - **<span class="application">VirtualBox</span>** is available for
    Linux, Windows, and Mac. Its
    free software version does not include support for USB devices and
    does not allow to use a persistent volume.

    [[See the corresponding documentation.|virtualbox]]

  - **<span class="application">GNOME Boxes</span>** is available for
    Linux. It has a simple user
    interface but does not allow to use a persistent volume.

    [[See the corresponding documentation.|boxes]]

  - **<span class="application">virt-manager</span>** is available for
    Linux. It has a more
    complex user interface and allows to use a persistent volume, either
    by:

    - Starting Tails from a USB stick or SD card.
    - Creating a virtual USB storage volume saved as a single file on the host
      operating system.

    [[See the corresponding documentation.|virt-manager]]
