Support booting from devices exposed as non-removable

Originally created by @intrigeri on #6397 (Redmine)

Tails refuses to boot from devices that expose themselves as non-removable:

  • Some USB sticks (especially Sandisk) expose themselves as non-removable. Not the case anymore: #16926 (closed)
  • Some external USB hard drives and SSDs expose themselves as non-removable.
  • There’s recurring interest in installing Tails on internal hard disks (e.g. for performance reasons, or to dedicate a machine to Tails, or to avoid having a USB stick protruding outside of a laptop, or to install Tails on a tablet’s internal storage): see #8422 for use cases and what it would take to support it.

A plan could be to:

  1. pass the syslinux SYSAPPEND variable a bitmask that enables FSUUID= functionality (bit 0x40000): this feature appends, to the kernel command-line, the UUID of the partition the kernel is booted from (added in 6.03-pre9, see commit 386b59e1 in syslinux Git) DONE in d421f38e
  2. add support to live-boot to search the SquashFS only on the filesystem specified by the FSUUID kernel command-line parameter, when present; when present, FSUUID should override any live-media= found on the command-line, so that we would still pass live-media=removable, that would only be taken into account when booting from DVD.

Subtasks

Edited by intrigeri