Project

General

Profile

Bug #8992

USB sticks installed with UUI fail to boot in UEFI mode: "no configuration file found"

Added by goupille over 3 years ago. Updated 11 months ago.

Status:
Resolved
Priority:
Elevated
Assignee:
-
Category:
Installation
Target version:
Start date:
03/02/2015
Due date:
% Done:

100%

QA Check:
Pass
Feature Branch:
bugfix/8992-uui-vs-uefi
Type of work:
Code
Blueprint:
Starter:
Affected tool:

Description

we got few reports from users having difficulties to boot from a Tails installed with Universal USB Installer. just at the begining of the boot process (before tails boot menu), it stops and display "no configuration file found".

a user found out that he could reproduce this error with a FAT32 formatted USB stick (before installing Tails), but that if the device was formatted with NTFS before installing Tails, the error wasn't there anymore.


Related issues

Related to Tails - Bug #14959: Test UEFI boot with a Tails installed with UUI Resolved 11/11/2017
Blocks Tails - Feature #13244: Core work 2017Q4: Foundations Team Resolved 06/29/2017

Associated revisions

Revision 1ac411ac (diff)
Added by intrigeri 11 months ago

Fix UEFI boot for USB sticks installed with Universal USB Installer (refs: #8992)

syslinux and GRUB will look for EFI/BOOT/syslinux.cfg, which does not exist
on any USB stick except those created by Tails Installer. So, instead of
relying on Tails Installer mangling stuff for UEFI boot to work, let's
directly ship a working configuration in the ISO so that Tails devices
created with UUI boot in UEFI mode too.

If we're extremely lucky, this might also incidentally fix booting in UEFI mode
Tails devices created with dd on the command line (e.g. following our
Installation Assistant for macOS) — we'll see.

Revision 06e36c44
Added by anonym 11 months ago

Merge remote-tracking branch 'origin/bugfix/8992-uui-vs-uefi' into stable

Fix-committed: #8992

History

#1 Updated by BitingBird over 3 years ago

  • Category set to Installation

#2 Updated by intrigeri over 3 years ago

  • Assignee set to goupille
  • QA Check set to Info Needed

Which version(s) of UUI?

#3 Updated by BitingBird over 3 years ago

Any news on this one? goupille, can you contact those users to have more details, or is this impossible and the ticket could be closed?

#4 Updated by goupille over 3 years ago

There is another user affected by that issue, I just asked for more informations about it.

#5 Updated by intrigeri over 3 years ago

Any news on this one?

#6 Updated by goupille over 3 years ago

the user didn't answered so, no news about that...

#7 Updated by intrigeri over 3 years ago

  • Status changed from New to Rejected

the user didn't answered so, no news about that...

OK, thanks. We're now four months after requesting additional info that might allow someone to reproduce and debug this problem => closing.

#8 Updated by tscpd almost 2 years ago

I just experienced the same "no configuration file found" on boot. Due to this bugreport i formatted my USB-Stick with NTFS to actually get it work. One special thing: I selected "steamos" in my BIOS boot-order to start Tails. (steamos is another deb-based live-os) Version of UUI is i think the latest downloaded today from tails install advise-link on https://tails.boum.org/install/win/usb/index.en.html: https://git-tails.immerda.ch/uui-binary/plain/Universal-USB-Installer.exe

#9 Updated by goupille 12 months ago

a user reported being prompted with this "no configuration file" error while trying to boot in UEFI mode with a dell inspirion 11, the error did not show up in Legacy mode.

#10 Updated by intrigeri 11 months ago

  • Related to Bug #14959: Test UEFI boot with a Tails installed with UUI added

#11 Updated by intrigeri 11 months ago

goupille wrote:

a user reported being prompted with this "no configuration file" error while trying to boot in UEFI mode with a dell inspirion 11, the error did not show up in Legacy mode.

Thanks. I'm not very surprised: it looks like the Installation Assistant was developed without access to UEFI hardware. I've created #14959 about it.

#12 Updated by intrigeri 11 months ago

  • Subject changed from "no configuration file found" when booting a UUI made Tails device to "no configuration file found" when booting Tails installed with UUI in UEFI mode
  • Status changed from Rejected to In Progress
  • Assignee changed from goupille to intrigeri
  • Priority changed from Normal to Elevated
  • Target version set to Tails_3.3
  • % Done changed from 0 to 10
  • QA Check deleted (Info Needed)
  • Type of work changed from Research to Code

I've finally managed to get a hold on a Windows system and then it was easy to reproduce this problem (#14959#note-7). On both test systems (ThinkPad T460 and MacBook Pro 8,1), having a look at the GRUB config on the USB stick was enough to identify the culprit: efi/boot/grub/grub.cfg says syslinux_configfile /efi/boot/syslinux.cfg, but we ship no such file, hence the "no configuration file found". copy boot/efi/isolinux.cfg to boot/efi/syslinux.cfg. This seems too good to be true but I think the fix will be a one liner in our Git repo… to be continued :)

I'm not quite sure why the GRUB chainloading is involved on the ThinkPad T460 (normally we only use GRUB for 32-bit UEFI), and I can't investigate easily as its screen is broken. I guess it's due to some weirdness Whatever.

I don't understand how we (Installation Assistant developers, Foundations Team members, Help Desk) have not managed to do #14959 in 2 years. I think a blame-free postmortem process would be in order. I suspect it's another instance of too vague scope of responsibilities, which leads us to not go through the extra mile needed to test it (e.g. me to get access to a Windows system, or sajolida to get access to a UEFI computer, or getting a picture of the screen which would have allowed me to understand it was a GRUB problem).

#13 Updated by intrigeri 11 months ago

#14 Updated by intrigeri 11 months ago

  • Feature Branch set to bugfix/8992-uui-vs-uefi

#15 Updated by intrigeri 11 months ago

  • Subject changed from "no configuration file found" when booting Tails installed with UUI in UEFI mode to USB sticks installed with UUI fail to boot in UEFI mode: "no configuration file found"

#16 Updated by intrigeri 11 months ago

  • % Done changed from 10 to 20

A USB stick installed with UUI with an ISO built from this branch boots fine (up to the Greeter):

  • in UEFI mode: on a ThinkPad T460 and a MacBook Pro 8,1
  • in legacy mode: on a ThinkPad X200

Same for a USB stick installed with dd on the ThinkPad T460 (that fallbacks to legacy boot) and X200 (legacy boot), but the MacBook Pro 8,1 won't boot, which is kind of expected.

I've started a full test suite run locally to ensure this doesn't break other supported use cases. I have great hopes this can make it into Tails 3.3.

#17 Updated by intrigeri 11 months ago

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

Crap, I see a kernel panic in the first "When I shutdown Tails and wait for the computer to power off" step during the "Writing a Tails isohybrid to a USB drive and booting it, then installing Tails on top of it using Tails Installer, and it still boots". But, I've tested the important part ("installing Tails on top of it using Tails Installer, and it still boots") by hand and it still works. The only supported installation scenarios that go through the failing step are:

  • Linux expert: no big deal, these people will manage to turn off the machine by hand;
  • Mac: they won't be affected as the intermediary isohybrid stick can't currently boot on their hardware in the first place, i.e. this installation scenario is uterly broken anyway, so they won't even go far enough to see this problem; let's pretend it's good news in this context…

=> IMO repairing a major installation scenario, as done by this branch, is totally worth introducing this regression… which is probably unrelated to this branch anyway: I don't see how a UEFI bootloader config file being renamed can affect the behaviour of a device booted in legacy mode. If you agree I'll file a ticket about it and will take a closer look later.

Other than that, these features pass flawlessly on 1st try on my local Jenkins:

  • features/usb_install.feature
  • features/usb_upgrade.feature
  • features/persistence.feature

(I have a full test suite running but given this change should only affect UEFI boot, it doesn't feel worth waiting for it to complete before I send this to QA. I prefer to give you more time to review and raise any concern you may have.)

#18 Updated by anonym 11 months ago

From 1ac411ac3af98f8dfaa29ed5882cf95e1cff1b78:

If we're extremely lucky, this might also incidentally fix booting in UEFI mode
Tails devices created with dd on the command line (e.g. following our
Installation Assistant for macOS) — we'll see.

I tested this (by modifying the isohybrid scenario to boot from it in UEFI mode) and sadly we are not extremely lucky. :/

#19 Updated by intrigeri 11 months ago

I tested this (by modifying the isohybrid scenario to boot from it in UEFI mode) and sadly we are not extremely lucky. :/

Yes, this matches my results for the same test I had already done on bare metal (#8992#note-16).

#20 Updated by anonym 11 months ago

  • % Done changed from 50 to 90
  • QA Check changed from Ready for QA to Pass

intrigeri wrote:

Crap, I see a kernel panic in the first "When I shutdown Tails and wait for the computer to power off" step during the "Writing a Tails isohybrid to a USB drive and booting it, then installing Tails on top of it using Tails Installer, and it still boots".

I cannot reproduce this (5 tries) and neither can Jenkins (2 tries) so I think it was unrelated. But...

But, I've tested the important part ("installing Tails on top of it using Tails Installer, and it still boots") by hand and it still works. The only supported installation scenarios that go through the failing step are:

  • Linux expert: no big deal, these people will manage to turn off the machine by hand;
  • Mac: they won't be affected as the intermediary isohybrid stick can't currently boot on their hardware in the first place, i.e. this installation scenario is uterly broken anyway, so they won't even go far enough to see this problem; let's pretend it's good news in this context…

=> IMO repairing a major installation scenario, as done by this branch, is totally worth introducing this regression… which is probably unrelated to this branch anyway: I don't see how a UEFI bootloader config file being renamed can affect the behaviour of a device booted in legacy mode. If you agree I'll file a ticket about it and will take a closer look later.

If it turns out the kernel panic is related: I agree with your reasoning.

Other than that, these features pass flawlessly on 1st try on my local Jenkins:

  • features/usb_install.feature
  • features/usb_upgrade.feature
  • features/persistence.feature

Passed on my system too!

(I have a full test suite running but given this change should only affect UEFI boot, it doesn't feel worth waiting for it to complete before I send this to QA. I prefer to give you more time to review and raise any concern you may have.)

Ok. I'm ready to merge this branch and I'll do so in time for 3.3 unless you report that this test suite run failed for related reasons.

#21 Updated by intrigeri 11 months ago

Ok. I'm ready to merge this branch and I'll do so in time for 3.3 unless you report that this test suite run failed for related reasons.

It went fine.

#22 Updated by anonym 11 months ago

  • Status changed from In Progress to Fix committed
  • Assignee deleted (anonym)
  • % Done changed from 90 to 100

#23 Updated by anonym 11 months ago

  • Status changed from Fix committed to Resolved

Also available in: Atom PDF