On Thu, Aug 16, 2007 at 05:06:37PM -0500, Les Mikesell wrote:
Yet another unbootable kernel: 2.6.22.1-32.fc6 wouldn't boot on
either a
Dell 1600sc or an IBM xserver 225. Is there some way to send a useful
bug report when the kernel just hangs during bootup?
This comes up often enough, that it probably warrants a wiki page.
There are a bunch of 'usual suspect' switches to try booting with
to see if they help
- first thing to do is get rid of the 'quiet' switch in the boot command
line. We want as much info from the kernel as possible, and this just
makes it impossible to debug.
- acpi=off is a big hammer, and if that works, narrowing down by
trying pci=noacpi instead may yield clues
- nolapic and noapic are sometimes useful
- Given it's new and still seeing quite a few changes, nohz=off may be
worth testing. (Though this is F7 and above only)
- initcall_debug will print the name of the kernel subsystems it calls
during init, the last one will be the interesting one.
- a majority of "won't boot" bugs are of the form where it fails to find
the root filesystem. Quite often this ends up being a busted initrd
for whatever reason. There's not really a good way to debug this
other than to pull apart a good and bad one, and see if the bad one
lacks modules that were in the good one for eg.
- if stuff scrolls by too fast to catch interesting boot messages and
you don't have a serial console, boot_delay=1000 will insert a pause
after each print.
- if you get no output at all from the kernel, sometimes booting with
earlyprintk=vga can yield something of interest.
Finally given that there can be pages of spew from this sort of
debugging, if you lack a serial console to capture it, slowing
down the printk's and taking a photo with a digital camera every
pageful will save you a lot of transcribing.
There's probably some other tricks that I'm forgetting right now too,
but that's a good start. The problem with "won't boot" bugs is that
the
causes can be numerous so there's no one size fits all answer.
Dave
--
http://www.codemonkey.org.uk