Support booting from USB devices exposed as non-removable
Tails refuses to boot from devices that expose themselves as non-removable. Historically, all USB sticks said they were removable, even if this is not correct according to the specification (removable is rather for devices that can be fed with removable medium, such as a floppy drive). Recently, quite a lot of new USB sticks (especially Sandisk) expose themselves as non-removable.
A simple plan could be to:
- 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)
- 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.
If this doesn't work nicely, the backup plan could be:
- Have Tails Installer write down the UUID in boot loader config on initial install
- Have Tails Installer preserve the UUID in boot loader config on upgrade
- Have Tails Updater (IUK) preserve the UUID in boot loader config on upgrade
- Require booting from the UUID that is in boot loader config, that is add such an option to live-boot
- Stop requiring the removable flag at boot time
- Only allow using persistent volume fr om the boot medium, that is add such an option to live-persist and/or live-boot
Note that live-boot already knows how to check an UUID that live-build embeds in the initramfs, so this should not be too hard.
Once done, the "known issues" page should be updated to remove all the Sandisk sticks, and possibly others.
#17 Updated by sajolida over 4 years ago
Already two people reported that newer SanDisk might have a different firmware that fixes this issue. But that still need confirmation.
After this, and as SanDisk was the main (if not only) vendor with that behavior, maybe this ticket can be set as low priority or closed...
#22 Updated by intrigeri over 4 years ago
- Assignee changed from intrigeri to sajolida
- QA Check set to Info Needed
Dear frontdesk, how is it going on your side? Did you notice a substantial change in the rate of bug reports that can be workaround'd by removing
live-media=removable, since Sandisk changed their practices?
#31 Updated by WhiteWind over 4 years ago
Hello. Just wanted to say, I got a bought-new Sandisk Extreme 64GB USB 3.0 thumb drive (SDCZ80-064G-G46), there is no Windows 8 logo on the box, and I can't boot from it. BUT that is currently only my first try with something different than Windows, so that could be something else I've not done/ I did wrong, on my end. I have followed the instructions given on Tails mainsite, SecureBoot is disabled and the thumb drive is set as the boot drive in the UEFI. When I boot on it, I have a black screen with "No configuration file found. Boot: ". I would try the live-media= thing, but I'm not too confident, and well I don't really understand how it is done.
#32 Updated by intrigeri over 4 years ago
email@example.com wrote (13 Jan 2015 23:42:52 GMT) :
Hello. Just wanted to say, I got a bought-new Sandisk Extreme 64GB USB 3.0 thumb drive (SDCZ80-064G-G46), there is no Windows 8 logo on the box, and I can't boot from it.
Please report a bug, including the answers to all questions on https://tails.boum.org/doc/first_steps/bug_reporting/tails_does_not_start/. Thanks!
#33 Updated by sajolida over 4 years ago
The live-media= parameter has to be entered on the boot screen, see:
So if you don't get to the boot screen, then I think that you are facing
a different issue. Feel free to contact our support team for more help.
#37 Updated by sajolida about 4 years ago
Frontdesk people, please make sure to submit patches to add the relevant hardware on the known issues page. This is definitely on your plate as stated in https://tails.boum.org/contribute/working_together/roles/front_desk.
Also, please make sure to have people run that find command before adding hardware. It's in the frontdesk repo. As you surely know, people do all kind of crazy stuff to get Tails to run and report them in very funny ways sometimes...
#38 Updated by intrigeri about 4 years ago
It's getting hard to find the relevant information in here, so let's make things clear.
Frontdesk people: it's useful to report general tendencies (or even stats), as I asked on #6397#note-22: this will help us decide how urgent this problem is. (Looking at the history of the known issues section about it may actually be enough to assert its impact, as long as you keep it updated.)
However, this ticket is not about compiling a list of individual devices that can't boot with
live-media=removable, nor about updating the known issues page (there are better places for that anyway). It's about fixing this problem for good.
Please, let's stop adding to the (already big) pile of comments anything that doesn't help fixing the underlying problem. Thanks!
#42 Updated by intrigeri about 2 years ago
https://sources.open-infrastructure.net/software/system-boot/commit/?id=c6de5da6c4b3e6744cc05601930508472de54549 makes system-boot (a live-boot fork) ignore the "removable" bit, and instead use heuristics based on the bus that's used (i.e. something relatively similar to what we do in Tails Installer and Tails Persistence Setup, where we treat all deviced plugged via USB or SDIO as OK). Might be good enough for us. I had rejected this idea on #6641 but I think my reasons were too simplistic: as the aforementioned commit shows, there's a sane way to do it. Now, this addresses the initial goal of this ticket, but it doesn't address the UX issue one has when starting a computer with 2 Tails devices plugged in — however, #7475#note-7 does, and can nicely combined with the solution described here.