I have systemd-boot and I’m using systemd-kernel-maintenance package to automatically set it up. After the stable Manjaro update from 2023-06-04, the initrd files stopped appearing on kernel updates and installs. Also, the line loading initrd (e.g. initrd /<machine-id>/6.1.41-1-MANJARO/initrd) is missing from the loader entry (e.g. /efi/loader/entries/<machine-id>-6.1.41-1-MANJARO.conf.
I’m 70% sure the update that caused it was the one from 2023-06-04 and not a later one.
The fix
I’ve switched out systemd-kernel-maintenance for kernel-install-mkinitcpio from AUR.
Workaround for systemd-kernel-maintenance
Run sudo mkinitcpio -P to generate the initrd files for the kernels
add the line with initrd to the loader entry manually
Questions to the community
So how do people with systemd-boot handle it? Does everybody use kernel-install-mkinitcpio? It is recommended by the systemd-boot conversion guide…
When I was doing the switch I chose to trust systemd-kernel-maintenance because it’s in the extra Manjaro repository. kernel-install-mkinitcpio seemed more risky being a generic Arch thing from AUR.
BTW I also tried systemd-boot-manager (again from extra) - that was producing initrds, but wasn’t creating loader entries.
There was an issue some weeks ago with mkinitcpio and systemd - I don’t recall the details - the guide were offline for some weeks until the issue was worked out.
You can Use the package systemd-boot-manager from the repo.
For me it just wipes all the entries from /efi/loader/entries and then produces an error “Error: There are no boot loader entries after entry generation”
I have a BTRFS system inside a LUKS container. A brief look at the code tells me that this might matter.
That could be … my experience with btrfs has not been good so I always use ext - yet my thought is - kernel and loader is on a separate FAT32 partition - mounted at /boot - so why would the entry generation fail? The system places kernel images in $esp - the script reads the kernel images in $esp and generates entries from those combined with the settings registered in the system configuration file in /etc.
The reason I am using the AUR package is that is uses the kernel-install whereas systemd-boot-manager is Manjaro specific.
The kernel-install and bootctl which is utilized using the AUR custom build is the native method og setting up and maintaining systemd-boot.