"Grokking the problem
When I'm teaching Linux on one of my courses, many attendees tell
me they are interested in troubleshooting of one form or another.
Some of them are looking for a cookbook approach - "If you see the
error message X, run command Y", but troubleshooting rarely works
that way. My initial advice to anyone who needs to troubleshoot is
always the same: "The most important thing in troubleshooting is to
understand how the system is supposed to work in the first place.
The second most important thing is figuring out exactly what the
system was trying to do when it went wrong."
"With this in mind, let's take a look at how Linux boots.
Knowing the normal sequence of events, and determining how far it
got before it ran into trouble, are key to diagnosing and fixing
boot-time problems. Figure 1 above, right shows the normal sequence
of events (green arrows) and indicates some of the possible failure
paths (red arrows).
"Picking yourself up by your bootstraps
Booting is a multi-stage affair. When a PC is powered up, control
initially passes to a program (called the BIOS) stored in read-only
memory on the motherboard. The BIOS performs a self-test of the
hardware and scouts around looking for a device to boot from. The
BIOS provides configuration screens that allow you to assign the
order in which it searches for a bootable device, and modern BIOSes
support a wide range of boot devices, including PXE booting from a
network server. The only case we consider here is booting from the