Project

General

Profile

Bug #14809

Tails does not boot from USB when installed with Tails Installer on recent Debian testing/sid system

Added by intrigeri 9 days ago. Updated 6 days ago.

Status:
Fix committed
Priority:
Elevated
Assignee:
-
Category:
Installation
Target version:
Start date:
10/07/2017
Due date:
% Done:

100%

QA Check:
Pass
Feature Branch:
bugfix/14809-partition-type-and-flags-with-recent-udisks, installer:bugfix/14809-partition-type-and-flags-with-recent-udisks
Type of work:
Research
Blueprint:
Easy:
Affected tool:
Installer

Description

If I select that device on a ThinkPad T430 with EFI disabled and press enter, then I see a black screen for 2 seconds and then I'm back to the BIOS' boot menu. Reproduced both with a device installed from ISO with Tails Installer 5.0.1+dfsg-0tails1 on Debian sid, and with one cloned from a running Tails/Buster DVD.

The system partition hasn't the correct type, it's not an ESP and is not flagged "legacy BIOS bootable". Looks like the recent udisks2 updates broke our stuff.


Related issues

Related to Tails - Bug #14813: Document that Tails does not boot from USB when installed with Tails Installer on recent Debian testing/sid system Confirmed 10/09/2017

Associated revisions

Revision 25ecd81b (diff)
Added by intrigeri 9 days ago

Enable the bugfix-14809-partition-type-and-flags-with-recent-udisks APT overlay (refs: #14809).

Revision 344ea705 (diff)
Added by intrigeri 9 days ago

Enable the bugfix-14809-partition-type-and-flags-with-recent-udisks-buster APT overlay (refs: #14809).

Revision 2b732941
Added by anonym 8 days ago

Merge remote-tracking branch 'origin/bugfix/14809-partition-type-and-flags-with-recent-udisks' into stable

Fix-committed: #14809

Revision e0e23afe
Added by anonym 8 days ago

Merge remote-tracking branch 'origin/bugfix/14809-partition-type-and-flags-with-recent-udisks-buster' into feature/buster

Fix-committed: #14809

History

#1 Updated by intrigeri 9 days ago

  • Subject changed from Device cloned from Tails Buster does not boot to Tails does not boot from USB when installed with Tails Installer on recent Debian testing/sid system
  • Description updated (diff)
  • Target version changed from Tails_4.0 to Tails_3.3

#2 Updated by intrigeri 9 days ago

  • Status changed from Confirmed to In Progress
  • % Done changed from 0 to 10

Next steps:

  1. test that the part of my fix that lives in tails-installer passes our test suite on Stretch (and Buster?)
  2. report bug + PR against udisks2 upstream
  3. report bug + PR against libblockdev upstream
  4. report RC bug against tails-installer in Debian, blocked by:
  5. report bug + patch against udisks2 in Debian, blocked by:
  6. report bug + patch against libblockdev in Debian
  7. debug, or report bug about, setting partition flags resetting the partition type (workaround'ed in Tails Installer, not sure where the root cause is, should test from the lower-level — sgdisk — up to libblockdev and udisks2)
  8. add this to our Known Issues page?

#3 Updated by intrigeri 9 days ago

  • Feature Branch set to bugfix/14809-partition-type-and-flags-with-recent-udisks, installer:bugfix/14809-partition-type-and-flags-with-recent-udisks

#4 Updated by intrigeri 9 days ago

Note to future reviewer:

  • in installer.git
    • merge bugfix/14809-partition-type-and-flags-with-recent-udisks into master
    • merge debian_bugfix/14809-partition-type-and-flags-with-recent-udisks into tails/master
  • in tails.git
    • merge bugfix/14809-partition-type-and-flags-with-recent-udisks into stable
    • merge stable into devel
    • merge devel into feature/buster
    • merge bugfix/14809-partition-type-and-flags-with-recent-udisks-buster into feature/buster

Note to doc writers:

  • before this is merged:
    • Devices installed from a released Tails, or from Debian Stretch, should boot fine.
    • Devices installed from a recent Debian testing/sid can boot neither in legacy BIOS nor UEFI mode.
  • after this is merged:
    • Devices installed from a released Tails should still work as they used to.
    • With the updated Tails Installer, UEFI boot should be fixed when installing Tails from a recent Debian testing/sid.
    • Legacy BIOS boot should be fixed as well on devices installed from Tails/Buster.
    • Legacy BIOS boot is still broken when installing Tails from recent Debian testing/sid, until my fixes to libblockdev and udisks make it in Debian.
  • once my fixes to libblockdev and udisks make it in Debian testing, everything we support should work again

#5 Updated by intrigeri 8 days ago

  • Related to Bug #14813: Document that Tails does not boot from USB when installed with Tails Installer on recent Debian testing/sid system added

#6 Updated by intrigeri 8 days ago

  • Assignee changed from intrigeri to anonym
  • % Done changed from 10 to 50
  • QA Check set to Ready for QA

intrigeri wrote:

Next steps:

  1. test that the part of my fix that lives in tails-installer passes our test suite on Stretch (and Buster?)

Done.

  1. report bug + PR against udisks2 upstream

https://github.com/storaged-project/udisks/issues/415 and https://github.com/storaged-project/udisks/pull/416

  1. report bug + PR against libblockdev upstream

https://github.com/storaged-project/libblockdev/issues/287 and https://github.com/storaged-project/libblockdev/pull/288

  1. report RC bug against tails-installer in Debian, blocked by:

https://bugs.debian.org/878040

  1. report bug + patch against udisks2 in Debian, blocked by:
  2. report bug + patch against libblockdev in Debian

I'll skip those: today they feel like useless paperwork.

  1. debug, or report bug about, setting partition flags resetting the partition type (workaround'ed in Tails Installer, not sure where the root cause is, should test from the lower-level — sgdisk — up to libblockdev and udisks2)

I'll do that right now for the sake of reporting issues upstream but this won't have any practical impact for us right now so it should not block the merge. The only other benefit is that once this is fixed in all versions of Debian/Ubuntu/Mint/etc. we want to support (i.e. in a few years), we can drop our call to system_partition.call_set_type_sync(ESP_GUID, GLib.Variant('a{sv}', None)): recent udisks2 sets the partition type correctly when we call partition_table.call_create_partition_sync.

  1. add this to our Known Issues page?

This is now tracked on #14813.

According to Jenkins my branch does not break Tails 3.x and repairs USB installation on Tails/Buster. Please review and merge as documented above :)

#7 Updated by intrigeri 8 days ago

Added an integration test on https://github.com/storaged-project/udisks/pull/416 + reported https://github.com/storaged-project/udisks/issues/418 (with an integration test too). I think I'm done here.

#8 Updated by anonym 7 days ago

  • Code review passes (tails + installer).
  • Upstream patches LGTM (but I only looked very briefly).
  • There was a successful Test suite run based on stable.
  • For feature/buster with the fix applied I've seen the test suite being able to boot a Tails installed to a USB drive.

=> merging!

#9 Updated by anonym 7 days ago

  • Status changed from In Progress to Fix committed
  • % Done changed from 50 to 100

#10 Updated by anonym 6 days ago

  • Assignee deleted (anonym)
  • QA Check changed from Ready for QA to Pass

Also available in: Atom PDF