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.
I’m 70% sure the update that caused it was the one from 2023-06-04 and not a later one.
I’ve switched out
kernel-install-mkinitcpio from AUR.
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.
(Remove request (#1) · Issues · Packages / Community / systemd-kernel-maintenance · GitLab).
The package systemd-boot-manager is not the same as kernel-install-mkinitcpio although they achieve the same result.
Personally I use the kernel-install-mkinitcpio jpackages for my systemd boot as it is a generic approach working with any Arch based system.
Should systemd-boot-manager produce loader entry files (/efi/loader/entries) without any config? It wasn’t doing that for me.
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.