Bootloader systemd-boot broken - only possible option is "reboot into firmware settings"

OS: endeavourOS
boot menu: UEFI
bootloader: systemd-boot
partitions: seperate /, /home and swap

Hiya yall, I do use arch daily in school and soon in university, but right now i am in a pickle.

So i put on fresh thermal paste on my t480’s cpu, and after rebooting I assume my bootloader broke. The system only allows me to “reboot into firmware settings”, and that gui looks like systemd.
I was recommended resetting bios, which i did but that didnt help.
After, i tried to arch-chroot reinstall the bootloader

Important drive:

$ lsblk
nvme1n1 .... - installation drive
⊢nvme1n1p1 .... - former bootloader
⊢nvme1n1p2 .... - /
⊢nvme1n1p3 .... - /home
⊢nvme1n1p4 .... - swap

then i made and mounted the partitions:

$ mount /dev/nvme1n1p2 /mnt
$ mkdir /mnt/boot 
$ mount /dev/nvme1n1p1 /mnt/boot
$ mount /dev/nvme1n1p3 /mnt/home
$ swapon /dev/nvme1n1p4

then $ arch-chroot /mnt and $ bootctl install.

I then restarted and the problem prevails. I hope i can get some help from you lot, feel free to criticize my formatting, descriptions … yada yada yada.

Thanks

That is a mess. First of all, reinstalling the bootloader won’t fix that problem.

Next, we don’t mount the ESP on /boot. If mkdir /mnt/boot didn’t fail, it means you had the wrong thing mounted on /mnt. It should have failed because /boot should already exist in your root partition.

You likely broke your system more with those commands.

Can you share the output of sudo parted -l so we can see what we are working with? Then we can propose the commands to help with this situation.

You were supposed to buy the thermal paste that says “wont access your /boot directory and mess with your bootloader” on the packaging.

1 Like

2 Likes

oh alright, i thought “compatible with linux” was enough for the thermal paste :rofl:

1 Like

My bad.

I only added information about the specific drive as the output. Thanks for helping me anyways.

$ sudo parted -l
Model: SAMSUNG MZVLB512HAJQ-000L7 (nvme)
Disk /dev/nvme1n1: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name        Flags
 1      1049kB  1075MB  1074MB  fat32           bootloader  boot, esp
 2      1075MB  61.1GB  60.0GB  btrfs
 3      61.1GB  358GB   297GB   btrfs
 4      358GB   376GB   18.2GB  linux-swap(v1)              swap
 5      376GB   512GB   136GB   ext4            root  (this one can be ignored as it is just old scrap from another broken system of mine which i still wanted to access once in a while.)

Ahh…it is btrfs.

Try this:

sudo mount /dev/nvme1n1p2 /mnt @subvol=@
sudo mount /dev/nvme1n1p1 /mnt/efi
sudo arch-chroot /mnt
bootctl install
reinstall-kernels
exit
reboot

reistall-kernels is not found.

It’s reinstall-kernels not reistall-kernels.

But if you only made the typo in your post, you could make sure that kernel-install-for-dracut is installed via yay -Qs kernel-install-for-dracut. This program provides the reinstall-kernels command.

yay wasnt installed so i tried to instal it…

error: yay: signature from "manuel <manuel@endeavouros.com>" is unknown trust
:: File /var/cache/pacman/pkg/yay-12.3.5-1-x86_64.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] 
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occurred, no packages were upgraded.

Sorry, pacman -Qs dracut should do the same thing. Then you can check for kernel-install-for-dracut

And I mean run this command after you followed daltos post.

yes i am in chroot…
if you meant kernel-install-for-dracut as a command then the command was not found if you meant to install it:

pacman -S kernel-install-for-dracut
resolving dependencies...
looking for conflicting packages...

Package (4)                            New Version  Net Change  Download Size

extra/cpio                             2.15-2         0.97 MiB               
extra/dracut                           103-2          1.44 MiB               
core/pkgconf                           2.1.1-1        0.16 MiB               
endeavouros/kernel-install-for-dracut  1.10.1-1       0.02 MiB       0.02 MiB

Total Download Size:   0.02 MiB
Total Installed Size:  2.59 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 kernel-install-for-dracut-1.10.1...    18.3 KiB   112 KiB/s 00:00 [------------------------------------] 100%
(4/4) checking keys in keyring                                     [------------------------------------] 100%
(4/4) checking package integrity                                   [------------------------------------] 100%
error: kernel-install-for-dracut: signature from "EndeavourOS <info@endeavouros.com>" is unknown trust
:: File /var/cache/pacman/pkg/kernel-install-for-dracut-1.10.1-1-any.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] y
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occurred, no packages were upgraded.

Is this a recent install? When did you install the system?

end of 2023

You should definitely have those packages on your system already.

Can you share the output of pacman -Q | grep -E "eos|endeav|kernel"

there is no output

You ran it in your arch-chroot?

yes

Can you share the entire output of pacman -Q

[root@EndeavourOS /]# $ pacman -Q                              
acl 2.3.2-1
archlinux-keyring 20240709-1
argon2 20190702-6
attr 2.5.2-1
audit 4.0.2-1
base 3-2
bash 5.2.032-1
binutils 2.43+r4+g7999dae6961-1
brotli 1.1.0-2
bzip2 1.0.8-6
ca-certificates 20240618-1
ca-certificates-mozilla 3.103-1
ca-certificates-utils 20240618-1
coreutils 9.5-1
cryptsetup 2.7.4-1
curl 8.9.1-2
dbus 1.14.10-2
dbus-broker 36-4
dbus-broker-units 36-4
dbus-units 36-4
device-mapper 2.03.26-1
diffutils 3.10-1
e2fsprogs 1.47.1-4
expat 2.6.2-1
file 5.45-1
filesystem 2024.04.07-1
findutils 4.10.0-1
gawk 5.3.0-1
gcc-libs 14.2.1+r32+geccf707e5ce-1
gdbm 1.24-1
gettext 0.22.5-1
glib2 2.80.5-1
glibc 2.40+r16+gaa533d58ff-2
gmp 6.3.0-2
gnupg 2.4.5-4
gnutls 3.8.7-1
gpgme 1.23.2-6
grep 3.11-1
gzip 1.13-4
hwdata 0.385-1
iana-etc 20240814-1
icu 75.1-1
iproute2 6.10.0-2
iptables 1:1.8.10-2
iputils 20240117-1
jansson 2.14-4
json-c 0.17-2
kbd 2.6.4-1
keyutils 1.6.3-3
kmod 33-3
krb5 1.21.3-1
libarchive 3.7.4-1
libassuan 3.0.0-1
libbpf 1.4.3-1
libcap 2.70-1
libcap-ng 0.8.5-2
libelf 0.191-4
libevent 2.1.12-4
libffi 3.4.6-1
libgcrypt 1.11.0-2
libgpg-error 1.50-1
libidn2 2.3.7-1
libksba 1.6.7-1
libldap 2.6.8-1
libmnl 1.0.5-2
libnetfilter_conntrack 1.0.9-2
libnfnetlink 1.0.2-2
libnftnl 1.2.7-1
libnghttp2 1.62.1-1
libnghttp3 1.5.0-1
libnl 3.10.0-1
libnsl 2.0.1-1
libp11-kit 0.25.5-1
libpcap 1.10.4-2
libpsl 0.21.5-2
libsasl 2.1.28-5
libseccomp 2.5.5-3
libsecret 0.21.4-1
libssh2 1.11.0-1
libsysprof-capture 46.0-4
libtasn1 4.19.0-2
libtirpc 1.3.5-1
libunistring 1.2-1
libusb 1.0.27-1
libverto 0.3.2-5
libxcrypt 4.4.36-2
libxml2 2.13.3-1
licenses 20240728-1
linux 6.10.6.arch1-1
linux-api-headers 6.10-1
linux-firmware 20240809.59460076-1
linux-firmware-whence 20240809.59460076-1
linux-headers 6.10.6.arch1-1
lmdb 0.9.33-1
lz4 1:1.10.0-2
mpfr 4.2.1-4
ncurses 6.5-3
nettle 3.10-1
npth 1.7-1
openssl 3.3.1-1
p11-kit 0.25.5-1
pacman 6.1.0-3
pacman-mirrorlist 20240717-1
pahole 1:1.27-2
pam 1.6.1-2
pambase 20230918-2
pciutils 3.13.0-1
pcre2 10.44-1
pinentry 1.3.1-5
popt 1.19-1
procps-ng 4.0.4-3
psmisc 23.7-1
readline 8.2.013-1
sed 4.9-3
shadow 4.16.0-1
sqlite 3.46.1-1
systemd 256.5-1
systemd-libs 256.5-1
systemd-sysvcompat 256.5-1
tar 1.35-2
tpm2-tss 4.0.1-1
tzdata 2024a-2
util-linux 2.40.2-1
util-linux-libs 2.40.2-1
wget 1.24.5-3
xz 5.6.2-1
zlib 1:1.3.1-2
zstd 1.5.6-1

if this is a list of all programs on the install, then it is a couple too few.