From Bugzilla Helper: User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.2.19-7.0.8 i686) Description of problem: The rc.sysinit attempts to modify /boot/kernel.h each time it is run. This makes is annoying when one wants to mount /boot as a read-only file system. Where /boot is a read-write filesystem of part of /, it causes a needless rewrite of any import file. If the system were to crash during ... NOTE: This is a similar bug to 39290. That bug deal with the /boot/System.map and this bug deals with the /boot/kernel.h file. How reproducible: Always Steps to Reproduce: 1.build a system where /boot in on a separate file system 2.after the system is brought up and installed, change fstab so that /boot is mounted read-only 3.reboot Actual Results: fails cat into /boot/kernel.h Expected Results: notices that /boot/kernel.h is up to date and does not touch /boot/kernel.h. Additional info: Try: *** rc.sysinit.init Fri Aug 18 14:33:17 2000 --- rc.sysinit Fri Jul 20 12:37:14 2001 *************** *** 598,604 **** -enterprise) ENTERPRISE="1";; *) UP="1";; esac ! cat > /boot/kernel.h << EOF /* This file is automatically generated at boot time. */ #ifndef __BOOT_KERNEL_H_ #define __BOOT_KERNEL_H_ --- 598,605 ---- -enterprise) ENTERPRISE="1";; *) UP="1";; esac ! rm -f /tmp/kernel.h ! cat > /tmp/kernel.h << EOF /* This file is automatically generated at boot time. */ #ifndef __BOOT_KERNEL_H_ #define __BOOT_KERNEL_H_ *************** *** 623,633 **** #endif EOF fi # Adjust symlinks as necessary in /boot to keep system services from # spewing messages about mismatched System maps and so on. ! if [ -L /boot/System.map -a -r /boot/System.map-`uname -r` ] ; then ln -s -f System.map-`uname -r` /boot/System.map fi if [ ! -e /boot/System.map -a -r /boot/System.map-`uname -r` ] ; then --- 624,640 ---- #endif EOF + if cmp -s /tmp/kernel.h /boot/kernel.h; then + mv /tmp/kernel.h /boot/kernel.h + else + rm -f /tmp/kernel.h + fi fi # Adjust symlinks as necessary in /boot to keep system services from # spewing messages about mismatched System maps and so on. ! if [ -L /boot/System.map -a -r /boot/System.map-`uname -r` -a \ ! ! /boot/System.map -ef /boot/System.map-`uname -r` ] ; then ln -s -f System.map-`uname -r` /boot/System.map fi if [ ! -e /boot/System.map -a -r /boot/System.map-`uname -r` ] ; then NOTE: The above patch includes for bug 39290 as well.
This has since been fixed in the current initscripts.