You are not logged in.

#1 2021-11-06 23:34:26

schnaaabeltier
Member
Registered: 2021-11-06
Posts: 2

[SOLVED]systemd-boot: entries on extended boot partition not displayed

Hello,

I am currently trying to install Arch Linux on a dual-boot system with Windows 10.
I followed the install guide in the wiki and want to use systemd-boot with the XBOOTLDR method as described here in the wiki .
Then I installed the bootloader with bootctl --esp-path=/efi --boot-path=/boot install and created the configuration files.
After rebooting the system as described in the last step, the only entries in the systemd-boot menu are "Windows Boot Manager" and "Reboot into Firmware Interface".
I would expect that the menu also shows my configured Arch Linux entry from the Linux extended boot partition (see config below).

This is my partition layout:

Disk /dev/nvme2n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Samsung SSD 970 EVO Plus 2TB            
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: AEA93E3A-FAAF-4443-B4D0-622CE41EEC6A

Device              Start        End    Sectors  Size Type
/dev/nvme2n1p1       2048     206847     204800  100M EFI System
/dev/nvme2n1p2     206848     239615      32768   16M Microsoft reserved
/dev/nvme2n1p3     239616 3905952635 3905713020  1.8T Microsoft basic data
/dev/nvme2n1p4 3905953792 3907026943    1073152  524M Windows recovery environment


Disk /dev/nvme1n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 970 EVO Plus 1TB            
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 59E5BC17-3CD5-419F-A8CC-9FA7B9B6B271

Device            Start        End    Sectors   Size Type
/dev/nvme1n1p1     2048   67110911   67108864    32G Linux swap
/dev/nvme1n1p2 67110912   71305215    4194304     2G Linux extended boot
/dev/nvme1n1p3 71305216 1953525134 1882219919 897.5G Linux filesystem

I use the following partitions:

  • /dev/nvme2n1p1 as the EFI system partition (already created by the Windows installation)

  • /dev/nvme1n1p2 as the boot partition (it is formatted as FAT32 and has the "Linux extended boot" flag set, not encrypted)

  • /dev/nvme1n1p3 as my LUKS encrypted root partition mapped at /dev/mapper/cryptroot

I created the following arch.conf at /boot/loader/entries/arch.conf :

title   Arch Linux
linux   /vmlinuz-linux
initrd  /amd-ucode.img
initrd  /initramfs-linux.img
options cryptdevice=/dev/nvme1n1p3:cryptroot root=/dev/mapper/cryptroot

This is my loader.conf at [/efi/loader/loader.conf]

default arch.conf 

The config is also detected when running bootctl commands in chroot mode from the install ISO.
bootctl list outputs the following:

Boot Loader Entries:
        title: Arch Linux (default)
           id: arch.conf
       source: /boot/loader/entries/arch.conf
        linux: /vmlinuz-linux
       initrd: /amd-ucode.img
               /initramfs-linux.img
      options: cryptdevice=/dev/nvme1n1p3:cryptroot root=/dev/mapper/cryptroot

        title: 01-archiso-x86_64-linux.conf
           id: 01-archiso-x86_64-linux.conf
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

        title: 02-archiso-x86_64-speech-linux.conf
           id: 02-archiso-x86_64-speech-linux.conf
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

        title: 03-archiso-x86_64-ram-linux.conf
           id: 03-archiso-x86_64-ram-linux.conf
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

        title: EFI Shell
           id: auto-efi-shell
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

        title: Reboot Into Firmware Interface
           id: auto-reboot-to-firmware-setup
       source: /sys/firmware/efi/efivars/LoaderEntries-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f

bootctl outputs the following:

System:
     Firmware: UEFI 2.70 (American Megatrends 5.17)
  Secure Boot: disabled
   Setup Mode: setup
 TPM2 Support: no
 Boot into FW: supported

Current Boot Loader:
      Product: systemd-boot 249.4-1-arch
     Features: ✓ Boot counting
               ✓ Menu timeout control
               ✓ One-shot menu timeout control
               ✓ Default entry control
               ✓ One-shot entry control
               ✓ Support for XBOOTLDR partition
               ✓ Support for passing random seed to OS
               ✓ Boot loader sets ESP information
WARNING: The boot loader reports a different ESP UUID than detected!
          ESP: /dev/disk/by-partuuid/e9e0fc4f-6152-4e76-a665-4537741866fc
         File: └─/EFI/BOOT/BOOTX64.EFI

Random Seed:
 Passed to OS: no
 System Token: set
       Exists: yes

Available Boot Loaders on ESP:
          ESP: /efi (/dev/disk/by-partuuid/6ed3076b-303e-495c-b9e6-a5610f29e7eb)
         File: └─/EFI/systemd/systemd-bootx64.efi (systemd-boot 249.5-3-arch)
         File: └─/EFI/BOOT/bootx64.efi (systemd-boot 249.5-3-arch)

Boot Loaders Listed in EFI Variables:
        Title: Linux Boot Manager
           ID: 0x0002
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/6ed3076b-303e-495c-b9e6-a5610f29e7eb
         File: └─/EFI/SYSTEMD/SYSTEMD-BOOTX64.EFI

        Title: Windows Boot Manager
           ID: 0x0000
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/6ed3076b-303e-495c-b9e6-a5610f29e7eb
         File: └─/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI

Boot Loader Entries:
        $BOOT: /boot (/dev/disk/by-partuuid/01947f36-afa1-e84c-811f-6890d088ece8)

Default Boot Loader Entry:
        title: Arch Linux
           id: arch.conf
       source: /boot/loader/entries/arch.conf
        linux: /vmlinuz-linux
       initrd: /amd-ucode.img
               /initramfs-linux.img
      options: cryptdevice=/dev/nvme1n1p3:cryptroot root=/dev/mapper/cryptroot add_efi_memmap

The kernel images are also in the correct location (on the boot partition where the arch.conf file is also located).
That's the content of the /boot directory:

/boot/
├── 5453c9f56bc64a0993b8483d3f286c25
├── amd-ucode.img
├── EFI
│   └── Linux
├── initramfs-linux-fallback.img
├── initramfs-linux.img
├── loader
│   └── entries
│       └── arch.conf
└── vmlinuz-linux

That's the content of the EFI directory:

/efi
├── EFI
│   ├── Boot
│   │   └── bootx64.efi
│   ├── Microsoft
│   │   ├── (Windows stuff here)
│   └── systemd
│       └── systemd-bootx64.efi
├── loader
│   ├── loader.conf
│   └── random-seed
└── System Volume Information

That's my /etc/fstab :

# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/cryptroot
UUID=1529f761-77b5-4f8c-9e40-b2bd6c4417e9	/         	ext4      	rw,relatime	0 1

# /dev/nvme1n1p2
UUID=714A-0596      	/boot     	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro	0 2

# /dev/nvme2n1p1
UUID=9696-41B3      	/efi      	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro	0 2

# /dev/nvme1n1p1
UUID=a53626c1-8610-43bc-9d9f-90e0f077569b	none      	swap      	defaults  	0 0

I really don't know what I should try next, so thank you in advance for any help!

Last edited by schnaaabeltier (2021-11-15 10:49:49)

Offline

#2 2021-11-07 01:30:37

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: [SOLVED]systemd-boot: entries on extended boot partition not displayed

Wiki wrote:

The XBOOTLDR partition may need to be on the same physical disk as the ESP for systemd-boot to recognize it.


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#3 2021-11-15 10:50:31

schnaaabeltier
Member
Registered: 2021-11-06
Posts: 2

Re: [SOLVED]systemd-boot: entries on extended boot partition not displayed

Slithery wrote:
Wiki wrote:

The XBOOTLDR partition may need to be on the same physical disk as the ESP for systemd-boot to recognize it.

Thanks, this worked.

Offline

#4 2022-03-28 17:42:26

bd4
Member
Registered: 2021-12-09
Posts: 6

Re: [SOLVED]systemd-boot: entries on extended boot partition not displayed

I wonder if the XBOOTLDR partition needs to be right after the ESP partition? I am trying to split up a combined ESP/boot partition, to facilitate coexistence with OpenSUSE using GRUB with a LUKS encrypted root - I used gparted to shrink the combined vfat ESP/BOOT, and created a new XBOOTLDR as ext3 in the free space, but it has 3rd position since 2 already existed as the LUKS root. So EFI is 1, XBOOTLDR is 3. They are on the same drive. bootctl list show entries from both partitions, but when I boot I only see the entries from ESP.

Offline

#5 2022-03-28 18:26:01

bd4
Member
Registered: 2021-12-09
Posts: 6

Re: [SOLVED]systemd-boot: entries on extended boot partition not displayed

bd4 wrote:

I wonder if the XBOOTLDR partition needs to be right after the ESP partition? I am trying to split up a combined ESP/boot partition, to facilitate coexistence with OpenSUSE using GRUB with a LUKS encrypted root - I used gparted to shrink the combined vfat ESP/BOOT, and created a new XBOOTLDR as ext3 in the free space, but it has 3rd position since 2 already existed as the LUKS root. So EFI is 1, XBOOTLDR is 3. They are on the same drive. bootctl list show entries from both partitions, but when I boot I only see the entries from ESP.

Converting the XBOOTLDR partition to vfat fixed the issue.

Offline

Board footer

Powered by FluxBB