From: Robert Tennent <rdt@qucis.queensu.ca> Date: Mon, 7 Dec 1998 20:27:46 -0500 (EST) To: gherlein@herlein.com, redhat-devel-list@redhat.com Subject: Re: Details on Booting Here's the basis for a mini-HOWTO, originally posted here by Gene Czarcinski. Installing/updating a new kernel on Red Hat Linux ------------------------------------------------- The following is based on kernel => 2.0.35 (or 2.1.125 for rawhide) and initscripts => 3.67 (or 3.78 for rawhide). It also includes some info from RedHat HOWTOs for kernel upgrade procedures (these seem to change early and often). The following info is NOT intended for the novice but may be helpful anyway. The "binary" (i386) packages involved are: - kernel - kernel-modules - kernel-pcmcia-cs - iBCS - kernel-headers - kernel-source - initscripts You may also need/want to install the kernel<<...>.src.rpm [see below] 1. If you do not need pcmcia or iBCS support, ignore these packages. You can do a rpm -e to delete them if they are installed but not needed. 2. You can copy the kernel, kernel-modules, and (optionally) the kernel-pcmcia-cs packages to a temporary directory. Do the commands: cd /<<the temp dir>/ rpm -ivh *.i386.rpm in the temporary directory. This will INSTALL the new kernel and modules while leaving the OLD kernel in place. DO NOT (repeat), DO NOT install a kernel with -Uvh since any slip and you will have NO system to boot. 3. At some time you will want to update (rpm -Uvh ...) the kernel-headers and kernel-source but you may want to wait until you make sure the new kernel works (at least that is what I do). 4. Check to make sure the installed initscripts package is correct for the new kernel. If not, then update it. 5. If you have any scsi devices (check /etc/conf.modules), you will need to generate an initial ramdisk. I do this anyway if there is anything in /etc/conf.modules. Issue the command mkinitrd of the form: /sbin/mkinitrd /boot/initrd-<<version>.img <<version> where <<version> is the version of your kernel/kernel-modules rpms such as 2.0.35-2. 6. Modify (edit) you /etc/lilo.conf file to add an entry of the form: image=/boot/vmlinuz-2.0.35-2 label=test root=/dev/hda2 initrd=/boot/initrd-2.0.35-2 read-only and then run /sbin/lilo. 7. Reboot the system and select test at the lilo prompt. When you are satisfied that the new kernel is OK, you can "move" the lilo.conf entry to the top (so it is the default) and change the labels of the kernels to something like: test -> linux linux -> old 8. If you need to modify the kernel, upgrade/install kernel-source and rebuild the kernel to your liking. Assuming that you have installed 2.0.35-2 and then do your own kernel, install the indicated files in more or less the following form (supply your own version idents: cp -vp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz-2.0.35-2a mv /lib/modules/2.0.35 /lib/modules/2.0.35-2a cp -vp /usr/src/linux/System.map /boot/System.map-2.0.35-2a cp -vp /boot/module-info-2.0.35-2 /boot/module-info-2.0.35-2a /sbin/mkinitrd /boot/initrd-2.0.35-2a.img 2.0.35-2a NOTE: /lib/modules/2.0.35 was created by "make modules_install". Now, modify you /etc/lilo.conf file, run /sbin/lilo, and reboot to begin testing. 9. More than likely, the new system WILL NOT WORK PROPERLY ... no modules! The "current" versions of initscripts (3.65 on 5.1 and 3.78 on rawhide) requires the file /lib/modules/<<version>/.rhkmvtag to exist and to contain exactly the same information as in /proc/version for the booted kernel. RedHat's i386.rpm packages install the appropriate file but if you create your own kernel, there will be no such file. If you use the kernel-<<version>.src.rpm, then this will not be a problem since it is created by the (non-installed) program rhkmvtag.c. If you can boot at all, you can create the appropriate file by running: cat /proc/version >/lib/modules/<<version>/.rhkmvtag Then reboot and everything "should" be OK. Alternately, you can modify /etc/rc.d/rc.sysinit so the it will find the correct directory and files. 10. If you are running the OSS sound driver, be sure to rename/delete the /lib/modules/preferred/misc/sound.o file. -- To unsubscribe: mail -s unsubscribe redhat-devel-list-request@redhat.com < /dev/null