The ISO includes lower-case bootx64.efi, should be BOOTX64.EFI
I have a thinkpad X220 that normally boots in EFI mode. I made an
intermediate 3.0~beta4 image by dd'ing the iso to one USB stick. Then from that i used
tails-installer to create a new USB stick.
however, the new USB stick wouldn't boot.
Looking at it, i see that the new USB stick has a gpt partition table, and there is an
EFI/BOOT directory in the first partition (a fat32 filesystem).
however, inside that directory there is a file named "bootx64.efi". My
x220 doesn't want to boot from it. I notice that the computer usually
boots from a different volume which has /EFI/BOOT/BOOTX64.EFI (note that the case is different).
from another computer, i mounted the new USB stick's first filesystem,
mv /media/usb/EFI/BOOT/bootx64.efi /media/usb/EFI/BOOT/bootz64.efi
mv /media/usb/EFI/BOOT/bootz64.efi /media/usb/EFI/BOOT/BOOTX64.EFI
(i would have done it in one mv, but the linux kernel understands that
the filesystem is case-insensitive and complains about the filenames being the same if you try to do that)
after that change, the USB stick boots on my x220!
so interestingly, it looks like:
- the data stored in the FAT32 filesystem actually does have a case
(note that EFI and BOOT are both rendered as upper-case in linux,
though "bootx64.efi" was rendered in lower-case).
- at least one UEFI implementation expects to see BOOTX64.EFI in
upper-case and can't find it if it happens to be in lower-case.
- the tails-installer is placing it in the filesystem in lower-case
Give UEFI bootloaders upper-case filenames (refs: #12511).
Some UEFI firmware, such as the one in the ThinkPad X220, only recognize
the fallback UEFI boot loader if it has an upper-case name.
#3 Updated by segfault about 1 year ago
- Description updated (diff)
Sorry, the text above says "boot64x" where it should say "bootx64". serves me right for trying to do it from memory.
I fixed this in the description. You can edit the description by clicking the pencil icon next to the "Description" label when editing an issue (yes, it's well hidden).
#4 Updated by intrigeri about 1 year ago
- Category set to Installation
- Status changed from New to In Progress
- Assignee set to intrigeri
- Target version set to Tails_3.0~rc1
- % Done changed from 0 to 10
Thanks for the analysis! I'll try to fix that in time for 3.0~rc1. Affected files:
#7 Updated by intrigeri about 1 year ago
- Assignee changed from intrigeri to anonym
- % Done changed from 20 to 50
- QA Check set to Ready for QA
Actually we're not running UEFI boot tests on Jenkins (due to #11583) so I've run "Scenario: Booting Tails from a USB drive in UEFI mode" locally and it passes.