On Tue, 08 Jun 2010 07:39:58 -0400 (EDT), Vincent Danjean wrote: > On 07/06/2010 17:37, Stephen Powell wrote: >> But for a kernel install or reconfigure, it is the responsibility of the >> kernel maintainer scripts to invoke the bootloader. See also, for example, >> linux-image-2.6.26-2-s390.postinst, where zipl is assigned as the bootloader >> on line 38. This really is an "open and shut case", if only I can the kernel >> people to actually look at it! Please look at it! > > If I recall correctly, kernel maintainers have introduced > /etc/kernel/post{inst,rm}.d/ in order to avoid to hardcode each possible > bootloader in their script. > Can't lilo provide a script here ?
do_bootloader = yes in /etc/kernel-img.conf means "run the historic boot loader for this platform". For the i386 platform (and amd64) the historic boot loader is lilo. For the s390 platform, that boot loader is zipl. The kernel maintainer scripts for the s390 platform still specify zipl as the boot loader my $loader = "zipl"; # lilo, silo, quik, palo, vmelilo, nettrom, arcboot, or delo so that do_bootloader = yes in /etc/kernel-img.conf will work. The kernel maintainer scripts for i386 and amd64 for Lenny and beyond specify a null string. That is inconsistent. It should specify my $loader = "lilo"; # lilo, silo, quik, palo, vmelilo, nettrom, arcboot, or delo for consistency between platforms. For non-historic boot loaders, the method used is to set do_bootloader = no in /etc/kernel-img.conf and supply a hook script of some kind, if needed. For example, grub version 1 in Lenny invokes it's hook scripts via do_bootloader = no postinst_hook = update-grub postrm_hook = update-grub in /etc/kernel-img.conf. Grub version 2 does not need a hook script; so it simply sets do_bootloader = no in /etc/kernel-img.conf. In Squeeze and later, there is an alternate method for running hook scripts (so that more than one hook script can be invoked). Simply install the script in /etc/kernel/preinst.d, /etc/kernel/prerm.d, /etc/kernel/postinst.d, or /etc/kernel/postrm.d. But even in Squeeze/Sid, the historic boot loader can still be run by setting do_bootloader = yes in /etc/kernel-img.conf. That still works for zipl on the s390 platform. But it's been broken since Lenny on the i386 and amd64 platforms for lilo. initramfs-tools also examines this variable and runs the historic boot loader when update-initramfs -u is invoked. That still works, even on the i386 and amd64 platforms, provided that do_bootloader = yes is specified in /etc/kernel-img.conf. But update-initramfs -c does not invoke the boot loader. Running the historic boot loader during installation, reconfiguration, or upgrade of a kernel is still the responsibility of the kernel maintainer scripts. And it cannot do so unless "my $loader" is set to the name of the historic boot loader. On s390, that variable is set properly. On i386 and amd64, it is not. The kernel maintainer scripts provided by kernel image packages created by make-kpkg on Squeeze and later are another story. They no longer do *any* post-installation actions unless user-provided hook scripts cause it to happen. But the maintainer scripts for official stock Debian kernel images still support these historic post-installation activities. -- .''`. Stephen Powell : :' : `. `'` `- -- To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/1661542040.41185.1276004599156.javamail.r...@md01.wow.synacor.com