thanks for the replies. Will play around in a VM before testing it on my real systems.
when checking the issue that closed that feature request (https://github.com/systemd/systemd/issues/477) , I would assume that simply not providing a default in config would make it boot the last used entry - but that question was never answered at the end of the issue.
If it still is not that way, I don’t understand how grub can offer that function without issues (I use and have used it on many systems over the years and on UEFI systems too) but systemd can’t xD
It actually does have issues on grub. Grub writes it to the filesystem. However, since grub can’t write every filesystem, that feature doesn’t work on many filesystems.
systemd-boot doesn’t have filesystem drivers. It writes the data to EFI variables. However, they don’t want to write EFI variables every time a boot entry is selected/changed.
Ultimately, grub and systemd-boot are fundamentally different. Neither a superset of the other. If that is a “must have” feature for you, stick with grub.
@dalto I just made the switch from mkinitcpio to dracut. Just to confirm, the kernel-install-for-dracut in eos’s repo performs essentially the same function as kernel-install-mkinitcpio described here, right?
Thanks for the confirmation. I’m going to go through all the documentations first to get a general understanding of systemd-boot and then perform the steps in this tutorial.
Successfully converted to systemd-boot from grub. System running without any issues. Chose /boot as the new mount point.
I do have a question, @dalto. Do we actually need the dracut-hook package from eos’s repo if we already have kernel-install-for-dracut installed? I currently have dracut-hook installed, and I noticed that my /boot/ directory looks like this:
I suspect that the initramfs images (probably generated by the hooks from dracut-hook package) actually serve no purpose here because according to the files inside /boot/loader/entries/, the initrd files are used by the bootloader, not intramfs.
title EndeavourOS
version 5.15.85-1-lts
machine-id (machine-id)
sort-key endeavouros-5.15.85-1-lts
options root=UUID=8624ed1c-e0b4-45b5-ac9e-045fd9c9df4e rw resume=UUID=f31ea3e9-65f7-4ec0-bda8-a491666debae loglevel=3 nowatchdog nvme_load=YES systemd.machine_id=(machine_id) systemd.machine_id=(machine_id)
linux /(machine_id)/5.15.85-1-lts/linux
initrd /(machine_id)/5.15.85-1-lts/initrd
Am I correct to assume that the kernel-install-for-dracut package takes care of all pacman hooks (including the ones responsible for generating kernel images post kernel updates), so I don’t really need the dracut-hook package?
I want to convert my system to systemd-boot but before I do that I also want to switch to dracut. Is the correct way to first install dracut with pacman and then run the following 2 commands:
If you just follow this tutorial and follow the instructions for dracut that will convert to dracut and systemd-boot in a single shot. That would be easiest.
If you would prefer to install and test dracut alone, you should install dracut and eos-dracut. Then remove mkinitcpio and run sudo dracut-rebuild.
I get the following error when running the script, probably not enough space in my efi partition which is 300mb
dracut: dracut: using auto-determined compression method 'gzip'
cp: error writing '/efi/a463d5e357b443a18f592fa89825f7ee/6.1.1-arch1-1/initrd-fallback': No space left on device
dracut: dracut: creation of /efi/a463d5e357b443a18f592fa89825f7ee/6.1.1-arch1-1/initrd-fallback failed