On Mon, 2008-03-10 at 01:22 -0700, Andrew Farris wrote:
In any case, the try-catch mechanism is in place by keeping the prior
kernel installed, and if it fails you choose the next one in the list
next time. It is not possible to try a kernel until its been booted,
and when it does boot if the kernel itself misbehaves it is not
possible to do anything automatic because the kernel has failed to do
what it should do...
It's easy. It's much like the dirty flag on filesystems. GRUB writes a
flag somewhere on disk, that indicates "Attempting to boot kernel
2.6.XXXXX". Then somewhere in the early userspace init scripts, you
change the flag to "Finished booting kernel 2.6.XXXX". The next time
grub starts up, it sees this flag and it now knows that that particular
kernel at least made it to userspace, which is a pretty good indication
it's not completely b0rked. If GRUB starts up and sees a "Attempting
boot" flag still remaining, then that's an indication that that kernel
failed to boot.
And I know this idea has come up before... Is this on anyone's to-do
list?