[SOLVED] Any suggestions to auto-install the kernel into the EFI?
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Any suggestions to auto-install the kernel into the EFI?
What are some good ways on upgrade to automatically install the kernel into the EFI?
The Arch linux wiki describes a number of ways. Bind mounting the EFI onto /boot would be nice, but it would need to use the soft-links created by Slackware's kernel package on install. The EFI's FAT filesystem format does not support soft-links.
Assuming you are using elilo with Slackware, switch over to grub bootlloader after running grub-mkconfig edit /boot/grub/grub.cfg to use vmlinuz-huge symlink and change root=UUID=xxxx-cxxx to root=/dev/xxxxx
If can boot the huge kernel without an initrd this should work
Last edited by colorpurple21859; 04-18-2024 at 12:16 PM.
The simplest without having to install any packages is to add this to your /etc/rc.d/rc.local. It only works if updating only the kernel without the initrd is sufficient. You'll need to replace [EFI kernel location] to the one used by your system.
Are you using an EFI stub loader to directly boot the kernel? If so, I just copy the new files to the EFI system partition after booting with the old kernel, then reboot. As long as the file names remain the same. Just make a script to do this.
This assumes you don't use ELILO, GRUB, nor any other bootloader.
I have a script to update many things I need to use. One of its functions is upkernel(). It does exactly what you are looking for and many more. It's not pretty but serves me well for many years. If you want to take a look:
I wouldn't feel safe automating such a vital function. I copy my kernel and initrd to the ESP by hand and then edit elilo.conf. It only takes a minute or so.
I wouldn't feel safe automating such a vital function. I copy my kernel and initrd to the ESP by hand and then edit elilo.conf. It only takes a minute or so.
Yes, but that is some minute(s) per machine. If you are responsible for keeping many machines up to date automation like that script is really a must. You will feel safe with automation if you first test the update on some (possible virtual) machine(s) and know that you are comfortable booting from installation media or some other live media to fix anything that has been messed up.
On the other hand, with only a single machine to care about you would spend more time configuring and testing an automated routine than to fix your single machine.
For those willing to automatic things a bit, I've created a service which installs the kernel on updates. It watches for changes to the kernel, or firmware and modules if mkinitrd.conf is defined. The program then waits for the install programs to finish before updating the EFI.
I'm going to side with colorpurple21859 & Didier on this one - if you want to automate and use current with it's frequent kernel updates: Grub is the way to go. I automate slackpkg with modifications to /usr/libexec/slackpkg/functions.d/post-functions.sh and have multiple kernels.
Current with multiple kernels really hammers the fragile vfat EFI partition and I have corrupted this partition more than once with elilo. Use Grub and it remains untouched.
Current with multiple kernels really hammers the fragile vfat EFI partition and I have corrupted this partition more than once with elilo.
Can you expand on this, please? In what sense is the ESP "fragile". I am asking because I have a serious problem with current kernels that will require some kind of bisection and that means copying over a lot of kernels. I very much don't want to switch from elilo to GRUB, partly because I dislike its complexities, and partly because my machine's UEFI doesn't respond well to attempts to switch boot order via efibootmgr.
Can you expand on this, please? In what sense is the ESP "fragile". I am asking because I have a serious problem with current kernels that will require some kind of bisection and that means copying over a lot of kernels. I very much don't want to switch from elilo to GRUB, partly because I dislike its complexities, and partly because my machine's UEFI doesn't respond well to attempts to switch boot order via efibootmgr.
I think it because:
1. ESP partition is FAT32 partition
2. FAT32 does not handle unexpected reboot well
3. linux will mount FAT32 partition with write cache enable
4. If we write the new kernel, while waiting for system to flush the data and we got unexpected reboot, file will get corrupt or sometime, the whole partition get corrupt.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.