kexec and Grub
john.r.moser at gmail.com
Tue Feb 5 21:07:58 UTC 2013
Has anyone gotten Grub2 to load via Linux Kexec? It used to be
possible to kexec grub.exe for some reason.
I have been tasked tonight to reboot a very critical production server
during a short window. It's long enough, but at the moment our big
issue is that the reboot will be somewhere between 3-5 minutes up to
18 minutes (we don't know) because server hardware does a ton of
self-check and has RAID, Video, bootrom, etc BIOS crap to go through.
Years ago, this came up and Kexec was written.
Nobody uses it. We use it for fancy debugging but that's it.
So I propose: We must find a method of rebooting into A) a bootloader
entry; or B) directly into Grub2 and let it boot the system. (B)
would be less fragile, as any incorrectness in (A) will at best make
kexec fail during late-stage shutdown and at worst load the kernel
with invalid parameters and cause a panic before mounting rootfs (a
nightmare without remote console). Loading the bootloader can only
fail in general, in which case we can go as far as re-initializing
init onto an operating runlevel and come back up without a reboot
(white hot reboot).
- Cold boot (physical power cycle)
- Warm boot (ACPI reboot)
- Red hot boot (drop back and reload the kernel/bootloader)
- White hot boot (shutdown completely, then go back into a live
runlevel rather than halt or reboot)
We're attempting a red hot boot, and on soft failure coming out via a
white hot boot.
If Linux can respond to panic() by warm boot, that would be very optimal.
(Spoiler: the next logical step would be porting freeze/thaw from
Dragonfly so you can reboot into a new kernel without closing your
desktop session. Yes, this is totally doable. You would not believe
the insanity that is physically possible.)
More information about the Ubuntu-devel-discuss