Kernel binrpm produces brokes grub2 config
Hi!
I'm not sure who to blame, but the below commit breaks the kernel binrpm target for me. It produces a faulty grub2 config.
After installing such a kernel grub2 looks for vmlinuz-XY-rpm and initrd-XY-rpm. These files are not existing and the machine does no longer boot.
Luckily an addition boot entry without the -rpm suffix exists, if remote access works one can recover the machine.
My question is, why do we need these copy of vmlinuz anyway? After calling installkernel on the -rpm variants you delete them again...
This <insert swear word here> happens on openSUSE 13.1, maybe their installkernel script needs fixing.
commit 3c9c7a14b6274074cc3af2b83d56a92547188f27
Author: Mike Marciniszyn <[email protected]> Date: Mon Jun 24 10:38:22 2013 -0400
rpm-pkg: add %post section to create initramfs and grub hooks
/sbin/installkernel is used to insure grub hooks are inserted and the initramfs is created on the target system.
The invokation installkernel will work with any kernel as long as:
- /sbin/installkernel exists
- the kernel and sysem map files are readable
scripts/package/mkspec +9 -0
@@ -112,6 +112,15 @@ echo "" echo "%clean" echo 'rm -rf $RPM_BUILD_ROOT' echo "" +echo "%post" +echo "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then" +echo "cp /boot/vmlinuz-$KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm" +echo "cp /boot/System.map-$KERNELRELEASE /boot/System.map-$KERNELRELEASE-rpm" +echo "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE" +echo "/sbin/installkernel $KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm" +echo "rm -f /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm" +echo "fi" +echo "" echo "%files" echo '%defattr (-, root, root)' echo "%dir /lib/modules"
Thanks,
//richard
Quoted 11 lines · Richard Weinberger
Hi!
I'm not sure who to blame, but the below commit breaks the kernel binrpm target for me. It produces a faulty grub2 config.
After installing such a kernel grub2 looks for vmlinuz-XY-rpm and initrd-XY-rpm. These files are not existing and the machine does no longer boot.
Luckily an addition boot entry without the -rpm suffix exists, if remote access works one can recover the machine.My question is, why do we need these copy of vmlinuz anyway? After calling installkernel on the -rpm variants you delete them again...
The typical /sbin/installkernel script does a cp "$2" "/boot/...", so you can't use the already installed files as its arguments.
Quoted 1 line
This <insert swear word here> happens on openSUSE 13.1, maybe their installkernel script needs fixing.
I guess that the problem is that grub2-mkconfig sees the temporary /boot/vmlinuz-*-rpm file and creates a menu entry for it. I guess we should create the temporary kernel and initrd files somewhere else than in /boot.
Michal
В Tue, 29 Jul 2014 14:23:54 +0200
Michal Marek <[email protected]> пишет:
Quoted 17 lines · Richard Weinberger
Quoted 11 lines
Hi!
I'm not sure who to blame, but the below commit breaks the kernel binrpm target for me. It produces a faulty grub2 config.
After installing such a kernel grub2 looks for vmlinuz-XY-rpm and initrd-XY-rpm. These files are not existing and the machine does no longer boot.
Luckily an addition boot entry without the -rpm suffix exists, if remote access works one can recover the machine.My question is, why do we need these copy of vmlinuz anyway? After calling installkernel on the -rpm variants you delete them again...
The typical
/sbin/installkernelscript does a cp "$2" "/boot/...", so you can't use the already installed files as its arguments.
Quoted 7 lines
Quoted 1 line
This <insert swear word here> happens on openSUSE 13.1, maybe their installkernel script needs fixing.
I guess that the problem is that grub2-mkconfig sees the temporary
/boot/vmlinuz-*-rpmfile and creates a menu entry for it. I guess we should create the temporary kernel and initrd files somewhere else than in /boot.
Or name it differently - e.g. rpm-vmlinuz-XY.
Quoted 2 lines
Michal