[Tutorial] Convert to systemd-boot

It ends up in your entries and /etc/kernel/cmdline

1 Like

So is it fair to say that /etc/kernel/cmdline is the equivalent to /etc/default/grub ?

Only that one cmdline line of /etc/default/grub.

1 Like

Systemd cmdline: root=UUID=ef6cd608-2fd6-478b-9e0d-369b8303fa19 rw rootflags=subvol=@ quiet loglevel=3 nowatchdog nvme_load=YES amd_pstate.shared_mem=1 nvidia-drm.modeset=1

Old grub: GRUB_CMDLINE_LINUX_DEFAULT=“quiet loglevel=3 nowatchdog nvme_load=YES nvidia-drm.modeset=1 amd_pstate.shared_mem=1 acpi_backlight=vendor acpi_OSI=Linux”

Those differences are probably differences between your machines, not differences between grub and systemd-boot.

If I did the automatic way with the kernel-install is it okay to still enable the sudo systemctl enable --now systemd-boot-update.service or is that not needed since I have installed kernel-install-mkinitcpio? I didn’t see this before.

That shouldn’t be needed. We are already updating systemd-boot with a hook. That seems like a better solution than a service as it only runs when systemd-boot is updated.

Hypothetically speaking, if say, I had unintentionally enabled that systemd-boot-update.service would I do systemctl disable or systemctl mask to properly remove it?

Disable.

1 Like

Same machine, i saved the grub.cfg file as reference just in case i ever switched back to grub.

You can add the missing entries to /etc/kernel/cmdline and run kernel-install if you want to see if that helps anything.

Will try for sure, thanks dalto :sunglasses:

do you mean kernel-install or kernel-install-mkinitcpio ?

edit:
i just went through the OP message again, i see you refer to this point most likely:

kernel-install add 5.10.43-1-lts /usr/lib/modules/5.10.43-1-lts/vmlinuz

However my kernels (Linux-AMD 5.19.7, Linux 5.19.5 and Linux-lts 5.15.63) are already installed and listed in /usr/lib/modules, will this not break anything? Just want to verify this before running the command.

It’s mentioned in the beginning of this thread somewhere as well, but essentially if you edit the /etc/kernel/cmdline, one of the easiest options to do after is simply reinstall the kernel(s). So in your case if you’ve changed that file, you’ll then want to:

yay -S linux-amd
yay -S linux
yay -S linux-lts

Or substitute whichever AUR helper you may have (e.g. paru, pikaur, aurutils, etc). It’ll take a couple minutes to reinstall those kernels, but if they all reinstall successfully, reboot and you should be good to go.

great!! I’ll try with one kernel first and see what happens.

Thanks mate!!

Edit: still no luck, selecting the nvidia card is still resulting in a black screen (tty is possible as i use it to return to hybrid mode). Well i guess more research is needed, will keep searching for hopefully a solution for this.

When I start that service - i did that once just out of curiosity - I get the following warnings:

bootctl[15560]: Read $KERNEL_INSTALL_MACHINE_ID from /etc/machine-info. Please move it to /etc/kernel/entry-token.
bootctl[15560]: Read $KERNEL_INSTALL_LAYOUT from /etc/machine-info. Please move it to the layout= setting of /etc/kernel/install.conf.

Looks like systemd has deprecated the use of /etc/machine-info.

kernel-install rebuilds your initrds, copies the kernel in /efi and regenerates your boot entries. It doesn’t modify anything from the kernel packages. You can run it whenever you want.

What they have done is given you the option to use something else instead of the machine-id if you want that. It works fine the way it is if you don’t care. You can simply copy the contents of /etc/machine-id to /etc/kernel/entry-token. IMO, it is most useful for someone who multi-boots as you can use something more meaningful than the machine-id.

2 Likes

I am not so sure if that stays optional. For now it is optional because this whole thing is in transition and both locations are supported (reminds me of systemd-udev-settle.service which is deprecated but still working). But the wording of the message is very clear: Please move it to /etc/kernel/entry-token resp.
Please move it to the layout= setting of /etc/kernel/install.conf.

@dalto I think I found the issue … don’t kill me please, linux kernel 5.19.5 had issues, after updating to 5.19.7 i’m able to use the nvidia shit gpu. I’m monitoring further but so far it seems to work, fingers crossed.

Strange is that Linux-AMD 5.19.7 does not work.
Linux-lts latest is giving issues also with heavy lag but the card works.

Just wanted to share this.

Edit: not fail proof, rebooting the laptop resulted again in black screen. going into tty and running startx gave some initrc errors. Need to see what this is. Back to hybrid mode for now.

2 Likes