Grub, partition labels, and /etc/fstab (aka 'Kernel panic: no init found. Try passing init= option to kernel.') A common problem when installing multiple versions of Red Hat (or other OSes) onto a single disk is that the boot loader configuration of one installation overwrites that of another. This document explains some of the pieces, to better aid debugging and troubleshooting. When a Red Hat installation completes, the Grub boot loader is installed. The MBR of the drive is pointed to the grub image, which contains a pointer to the the Grub configuration file (/boot/grub/grub.conf). One typical problem is that a second OS installation will overwrite the MBR, but the Grub configuration file it uses will be that of the second installation, not the first. For whatever reason, Red Hat's installation process detects any Windows-based OS's and automatically puts those in the new Grub configuration, but it doesn't detect other Red Hat installations and automatically add those to the new configuration. There are two basic ways to address this problem: 1- At install time, choose to Add an entry to the Grub configuration. This requires that after the first OS installation, you record the contents of /boot/grub/grub.conf. 2- After installation, go back in (via booting into the last OS you installed) and hand-edit the /boot/grub/grub.conf, adding the entry for the previous system(s). A sample Grub configuration stanza might look as follows: title Red Hat Linux (2.4.9-24) root (hd0,6) kernel /vmlinuz-2.4.9-24 ro root=LABEL=/ initrd /initrd-2.4.9-24.img A common problem is to have the 'root=LABEL=/' component be incorrect with respect to the actual label, or with the contents of /etc/fstab; e.g., # head /etc/fstab ... LABEL=/ / ext3 defaults 1 1 ... To discover which partition is labelled '/', use the 'e2label' program to check each partition; e.g., # e2label /dev/hda7 / In the grub.conf stanza above, note that we define the 'root' directive twice: once with the line 'root (hd0,6)' and again on the kernel line. In actuality, the first definition is overwritten by the second, but I personally like to leave it in place, as it serves as documentation for which partition should be labelled '/'. So how do you know if you have a problem? Often, you'll see a message like: Kernel panic: no init found. Try passing init= option to kernel. If you look closely during the boot process, you might notice that the root filesystem was not mounted. That's the key telltale. There are several ways to fix the problem, but the most straightforward is to change the grub.conf and/or /etc/fstab to match what e2label says. If you need to change the label on the disk, be certain that no other partition has that label! Another way to discover you have this problem is a lot more subtle: if you find that changes you made to one OS (e.g., setting a hostname) are showing up in the other OS, then you may have either mis-matched grub.conf, partition label and /etc/fstab, or you may have duplicated labels. If you have duplicated labels, then you should write down a design document that shows the partitions (e.g., /dev/hdaX) along with the Operating Sytem installations. You can then make a checklist of grub.conf, partition label and /etc/fstab for each of those, then checking them off to make sure they are all consistent (within an installation) and unique (across installations).