Kb67

Emulab FAQ: Troubleshooting: My custom Linux kernel won't boot, why?

Short answer: Either your kernel is misconfigured, you didn't run LILO, you hit a LILO-related bug we introduced, or you misconfigured your /etc/lilo.conf or /boot/grub/grub.conf.

Long answer:

The kernel is misconfigured. If you customized one of our RHL90 images and did not start from the configuration in the configs/emulab.config file in one of our /share/redhat/... kernel source trees, or customized one of our Fedora images (see our kernel build guide), then perhaps you have left out some essential device driver. Also make sure you have the serial line console enabled and running at 115200 baud.

You did not run LILO. After installing a new kernel, you need to run /sbin/lilo to update the boot block.

You hit a bug we introduced.[ As of 10/19/05 this bug should be fixed. If you suspect it is still a problem, contact testbed-ops. ] If the machine boots, but comes up in the default kernel rather than your kernel, then you probably hit a bug we caused. If you made your kernel the default Linux to boot by setting default=my-linux in lilo.conf, then it will get over-ridden the first time the machine reboots. After the first time, it will boot your kernel. The fix for this is to leave the default setting alone, but to change the label associated with your image: label=linux.

You get a "Device 0x0300: Invalid partition table" when running LILO. If you see this error, run LILO with the '-P ignore' option. From the man page, the '-P ignore' option tells LILO to ignore partition tables in which linear and sector/head/cylinder addresses don't correspond (from manpage).