Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Support Tails OS with persistent storage, firmware verification and Tails system verification

Open
#2,218 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
linux

Research direction

Start by reading the related Heads issues #1260, #1480, #1651, and #1873, plus the discussion in pull request #2153; the issue does not identify specific files or tests. Compare the two proposed Tails USB approaches, including how Heads verifies firmware and the Tails system partition and stores the HOTP counter and primary handle hash. Done means agreeing on a viable approach and implementing support for Tails persistent storage and system verification without verifying its changing storage partition.

Written by the indexing model from the issue text.

Description

I would like to boot a Tails OS USB drive from Heads with

  • a) Tails persistent storage
  • b) TOTP/HOTP verification of Heads firmware
  • c) and verification of the Tails system partition (no separate /boot partition).

Verification of the persistent storage partition on the USB drive is a non-goal as it will change during each usage.

As dual boot seems another complex story (https://tails.net/support/faq/index.en.html#permanent-install) let’s reduce it to Tails only without an internal hard drive.

Regarding Tails there are two options:

  1. Putting ISO + detached signature on a USB drive and create or mimic a persistent storage to achieve a) and c). TOTP/HOTP verification would have to become independent of a /boot partition to achieve b).
  2. Regular installation of Tails on a USB drive with persistent storage and treating it like an internal drive during Heads boot to store and find the primary handle hash, the HOTP counter, hashes signature etc.

In case 1. it is currently not possible to just load the ISO and create a persistent storage. I didn’t manage to manually create/copy an existing persistent storage and open it either.
Thus we would have to find a hack to create and open a persistent storage when booting from a verified Tails ISO. Anyway, we would still have to find a place to store the primary handle hash and the HOTP counter. Maybe in the TPM? (https://github.com/linuxboot/heads/issues/1260)

In case 2. we would need Heads to treat an external drive as an internal one as discussed here https://github.com/linuxboot/heads/issues/1873#issuecomment-2540552084. But even then Tails installed writing e.g. an .img file with dd does not have a separate /boot partition. Also, I have not yet tested how Tails reacts to storing extra kexec_*.txt files under / in the system partition.
2. has the advantage that the Tails USB would be completely bootable from a non-Heads machine, which is currently not the case with a USB that contains an ISO and a detached signature, but is not bootable.

Why does Heads actually expect a separate /boot partition? Would it be an option to write all the kexec_*.txt files on the system partition? This partition by design should not change barring Tails updates.

I considered installing Tails on an internal drive but the FAQ discourages it:
https://tails.net/support/faq/index.en.html#permanent-install

I am motivated to put work into this, incl. Into the related issues such as getting rid of the dependency of TOTP/HOTP verification on a /boot partition.

Before I get started I would like to get some feedback and ideas on what seems to be the most promising approach.

Dominant language
Makefile
Stars
1.6k
Forks
211
Avg merge
2d 11h
Merged PRs (30d)
6

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from linuxboot/heads

All issues in linuxboot/heads

Similar issues

More Operating Systems issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.