How to install and use VeraCrypt in Tails

VeraCrypt is absent in the standard Tails repositories. But you can still install it manually. VeraCrypt has a portable version, so you can save it to the Persistent folder and it will be available to you after each Tails reboot.

By the way, in Tails there is a program for “unlocking VeraCrypt disks and containers”, but this program is not able to create containers and, frankly, I do not know should it be trusted. For this reason, we will install the full, original VeraCrypt from the author.

So, I will show how to install the portable version of VeraCrypt in Tails in the Persistent folder. Therefore, you must have persistent storage enabled. You can run VeraCrypt from it, as well as create VeraCrypt containers on the same persistent storage. Consequently, both the program and the encrypted containers with your files will be saved and will not disappear after reboots.

You can install VeraCrypt manually, links to official sites and instructions are given in this article.

But installing VeraCrypt even in regular Linux can cause confusion among users, so a script was written (it is in the same article) that helps to download and install the latest version.

But Tails is too specific a system and even that script cannot help you. Therefore, another script was written to install VeraCrypt in Tails. It does the following:

  • determines the latest release of VeraCrypt
  • downloads the installation files for the latest release version of VeraCrypt
  • runs installation files
  • after extraction, places the executable VeraCrypt files in the Persistent folder and rename them
  • this is done for VeraCrypt with a graphical and console interface.

So, use the following command to create the file:

gedit /home/amnesia/Persistent/

Now copy the script into this file:

# Script adaptation:

echo "Trying to download the installation files"

v=`curl -s -A 'Linux' --proxy socks://localhost:9050/ | grep -E '/projects/veracrypt/files/latest/download' | grep -o -E '[0-9.]{3,}' | head -n 1`
	if [ $? -ne '0' ]; then
		echo "Could not connect to remote server"
		exit 1
temp2="$(curl -s -A 'Linux' --proxy socks://localhost:9050/$v/Linux/)"
        if [ $? -ne '0' ]; then
                exit 1
LINK=`echo "${temp2}" | grep -i -E -o '[a-z0-9.-]+/Linux/veracrypt-[0-9.-]+-setup.tar.bz2/download' | head -n 1`
wget "$LINK" -O "veracrypt-setup.tar.bz2" --proxy "socks://localhost:9050/"
tar xvjf "veracrypt-setup.tar.bz2"

bash "veracrypt-${v}-setup-gui-x64"

tar xvf /tmp/veracrypt_*_amd64.tar.gz -C /home/amnesia/Persistent/ --strip-components=2 usr/bin/veracrypt
mv /home/amnesia/Persistent/veracrypt /home/amnesia/Persistent/VeraCrypt-GUI
rm /tmp/veracrypt_*

bash "veracrypt-${v}-setup-console-x64"

tar xvf /tmp/veracrypt_*_amd64.tar.gz -C /home/amnesia/Persistent/ --strip-components=2 usr/bin/veracrypt
mv /home/amnesia/Persistent/veracrypt /home/amnesia/Persistent/VeraCrypt-CONSOLE
rm /tmp/veracrypt_*

rm "veracrypt-setup.tar.bz2" veracrypt-*-setup-console-x64 veracrypt-*-setup-console-x86 veracrypt-*-setup-gui-x64 veracrypt-*-setup-gui-x86 veracrypt-*-setup-gtk3-console-x64 veracrypt-*-setup-gtk3-gui-x64

Now run the script with the following command:

bash Persistent/

Initially, the graphical version installer will be launched. It is important to select file extraction, not installation. Select ‘Extract .tar Package File’:

Accept the license terms:

Click OK twice:


Immediately you will be thrown to the installation of the console version.


2) Extract package file veracrypt_1.23_console_amd64.tar.gz and place it to /tmp

Press Enter to display the license:

Use the Spacebar to scroll through the license. At the very end, type “yes”:

Then press Enter to exit.

As a result, two files will be created in the /home/amnesia/Persistent/ folder:

  • VeraCrypt-GUI - graphic version
  • VeraCrypt-CONSOLE - console version

You can run them by double-clicking, or from the console with the commands:

# Run the graphical version:
# Run console version:

To create containers, root rights are not needed, but to mount containers, they may be necessary, in this case, run the program with root privileges as follows:

# Run the graphical version:
sudo Persistent/VeraCrypt-GUI
# Run console version:
sudo Persistent/VeraCrypt-CONSOLE

Recommended for you:

3 Comments to How to install and use VeraCrypt in Tails

  1. Bishop says:

    Thanks. To this day, it still works perfectly.

  2. Alex says:

    The script has been updated and works again!

  3. John says:

    Thanks so much for sharing the detailed steps. I've just attempted this today with the latest Tails (4.27) and obviously it downloaded the latest Veracrypt (1.25.9) and I keep getting an error about no shared library. I'm going to test out with a previous version of Tails, and the previous version of Veracrypt and see if I can run through your script manually.

Leave a Reply

Your email address will not be published. Required fields are marked *