Migrating to systemd-boot

it9exm

New Member
Jan 15, 2024
3
0
1
I don't think there are valid reasons to keep using grub.

1) mount the ESP in /efi instead of /boot/efi

mkdir /efi

vi /etc/fstab and change this line
UUID=XXXX-XXXX /boot/efi vfat defaults 0 1

to this
UUID=XXXX-XXXX /efi vfat defaults 0 1

umount /boot/efi
systemctl daemon-reload
mount -a

2) remove grub

apt remove grub* --allow-remove-essential

3) install systemd-boot entry

bootctl install

4) check with efibootmgr and bootctl

efibootmgr
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0002,0000,0001
Boot0000* proxmox HD(2,GPT,8f3fdd63-b571-4a03-b8ba-9530c169a692,0x800,0x200000)/File(\EFI\proxmox\grubx64.efi)
Boot0001* UEFI OS HD(2,GPT,8f3fdd63-b571-4a03-b8ba-9530c169a692,0x800,0x200000)/File(\EFI\BOOT\BOOTX64.EFI)0000424f
Boot0002* Linux Boot Manager HD(2,GPT,8f3fdd63-b571-4a03-b8ba-9530c169a692,0x800,0x200000)/File(\EFI\systemd\systemd-bootx64.efi)

bootctl
System:
Firmware: n/a (n/a)
Firmware Arch: x64
Secure Boot: disabled (setup)
TPM2 Support: yes
Measured UKI: no
Boot into FW: supported

Random Seed:
System Token: set
Exists: yes

Available Boot Loaders on ESP:
ESP: /efi (/dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692)
File: ├─/EFI/systemd/systemd-bootx64.efi (systemd-boot 257.7-1)
└─/EFI/BOOT/BOOTx64.EFI (systemd-boot 257.7-1)

Boot Loaders Listed in EFI Variables:
Title: Linux Boot Manager
ID: 0x0002
Status: active, boot-order
Partition: /dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692
File: └─/EFI/systemd/systemd-bootx64.efi

Title: proxmox
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692
File: └─/EFI/proxmox/grubx64.efi

Title: UEFI OS
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692
File: └─/EFI/BOOT/BOOTX64.EFI

Boot Loader Entries:
$BOOT: /efi (/dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692)
token: d4cee539b718447db014fb4d0edf7975

Default Boot Loader Entry:
type: Boot Loader Specification Type #1 (.conf)
title: Debian GNU/Linux 13 (trixie)
id: d4cee539b718447db014fb4d0edf7975-6.14.8-2-pve.conf
source: /efi//loader/entries/d4cee539b718447db014fb4d0edf7975-6.14.8-2-p>
sort-key: debian
version: 6.14.8-2-pve
machine-id: d4cee539b718447db014fb4d0edf7975
linux: /efi//d4cee539b718447db014fb4d0edf7975/6.14.8-2-pve/linux
initrd: /efi//d4cee539b718447db014fb4d0edf7975/6.14.8-2-pve/initrd.img-6>
options: root=UUID=e59421d6-c008-49d3-8151-e8f0e9df56fe ro console=tty0 c>

5) reboot. check again bootctl after reboot

bootctl
System:
Firmware: UEFI 2.80 (American Megatrends 5.27)
Firmware Arch: x64
Secure Boot: disabled (setup)
TPM2 Support: yes
Measured UKI: no
Boot into FW: supported

Current Boot Loader:
Product: systemd-boot 257.7-1
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
✓ Load drop-in drivers
✓ Support Type #1 sort-key field
✓ Support @saved pseudo-entry
✓ Support Type #1 devicetree field
✓ Enroll SecureBoot keys
✓ Retain SHIM protocols
✓ Menu can be disabled
✓ Multi-Profile UKIs are supported
✓ Boot loader set partition information
Partition: /dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692
Loader: └─/EFI/systemd/systemd-bootx64.efi
Current Entry: d4cee539b718447db014fb4d0edf7975-6.14.8-2-pve.conf

Random Seed:
System Token: set
Exists: yes

Available Boot Loaders on ESP:
ESP: /efi (/dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692)
File: ├─/EFI/systemd/systemd-bootx64.efi (systemd-boot 257.7-1)
└─/EFI/BOOT/BOOTx64.EFI (systemd-boot 257.7-1)

Boot Loaders Listed in EFI Variables:
Title: Linux Boot Manager
ID: 0x0002
Status: active, boot-order
Partition: /dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692
File: └─/EFI/systemd/systemd-bootx64.efi

Title: proxmox
ID: 0x0000
Status: active, boot-order
Partition: /dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692
File: └─/EFI/proxmox/grubx64.efi

Title: UEFI OS
ID: 0x0001
Status: active, boot-order
Partition: /dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692
File: └─/EFI/BOOT/BOOTX64.EFI

Boot Loader Entries:
$BOOT: /efi (/dev/disk/by-partuuid/8f3fdd63-b571-4a03-b8ba-9530c169a692)
token: d4cee539b718447db014fb4d0edf7975

Default Boot Loader Entry:
type: Boot Loader Specification Type #1 (.conf)
title: Debian GNU/Linux 13 (trixie)
id: d4cee539b718447db014fb4d0edf7975-6.14.8-2-pve.conf
source: /efi//loader/entries/d4cee539b718447db014fb4d0edf7975-6.14.8-2-pve.conf (on the EFI System Partition)
sort-key: debian
version: 6.14.8-2-pve
machine-id: d4cee539b718447db014fb4d0edf7975
linux: /efi//d4cee539b718447db014fb4d0edf7975/6.14.8-2-pve/linux
initrd: /efi//d4cee539b718447db014fb4d0edf7975/6.14.8-2-pve/initrd.img-6.14.8-2-pve
options: root=UUID=e59421d6-c008-49d3-8151-e8f0e9df56fe ro console=tty0 console=ttyS0,115200n8 quiet systemd.machine_id=d4cee539b718447db014fb4d0edf7975
 
Please consider to update the checklist script and the page on the wiki to reflect this.
 
I think Debian currently does not support systemd-boot with Secure Boot enabled, that's why Grub is used in most cases.