can i "kexec" a running f9 system to a new kernel?
Robert P. J. Day
rpjday at crashcourse.ca
Sun Jul 13 13:09:00 UTC 2008
On Sun, 13 Jul 2008, Robert P. J. Day wrote:
> On Sun, 13 Jul 2008, Tom Horsley wrote:
> > On Sun, 13 Jul 2008 06:26:06 -0400 (EDT)
> > "Robert P. J. Day" <rpjday at crashcourse.ca> wrote:
> > > quite simply, if i have a running f9 system, can i configure
> > > and build a new (relocatable, for convenience) kernel and just
> > > kexec over to it?
> > I believe the running system needs to have kexec support built
> > into the kernel, so the more fundamental question is: Does the F9
> > kernel have kexec? Looking at /boot/config-22.214.171.124-76.fc9.x86_64
> > on my F9 partition, I see CONFIG_KEXEC=y, so it looks like the
> > support is there in the kernel, ...
> that part i've verified already, but it's not clear if you *need*
> any other kernel functionality to be able to "kexec" out of the
> running kernel. NOTE: i'm talking about functionality required in
> the kernel you are kexec'ing ***from***. you can configure a new
> kernel to be relocatable but, as i read it, that would be a config
> option you might choose for the kernel you are kexec'ing *to*.
> so, a two-part question:
> 1) is the current f9 kernel fully equipped for kexec? and, AFAICT, it
> would seem to be, based simply on CONFIG_KEXEC=y. that would seem to
> be sufficient, yes? (it's also configured to be relocatable but i
> don't think that's a necessity.)
> 2) what are the *required* config options for building a new kernel
> that you can kexec *to* from the current kernel?
> > but I don't see any userland kexec tools to start the reboot process
> > from the command line, perhaps there is some rpm you need to install
> > to get those?
> # yum install kexec-tools
> > As far as the actual booting goes, I don't see anything to be
> > concerned about. The kexec stuff is exactly like a hardware
> > reboot, it just bypasses the painfully slow process of having
> > the system BIOS run all the POST nonsense, read the boot loader,
> > and the boot loader getting the kernel started. It is just
> > like going directly to the boot loader getting the kernel started.
> > I'm not even sure why it took so many years for someone to
> > think of it :-). I think some linux distros have already switched
> > their "reboot" command to use it.
> which still doesn't clarify if i can do it. from the current git
> kernel source tree, i've built a new kernel and initrd that i've
> verified boots *normally* (not with full functionality since i don't
> care about that, i just want a good boot.)
> for that new kernel, all i've verified is that it's relocatable.
> does it *require* anything else? AFAICT, it doesn't even need "kexec"
> functionality if it's going to be used only as the *destination* of a
> "kexec" call.
> so ... what's the story? has anyone been doing this? and how?
> i'll give it a shot, and i'll report back.
ok, that seems to have worked. for safety, i dropped to runlevel 1
# kexec -l \
-t bzImage \
--command-line="ro root=/dev/fedora/root rhgb quiet" \
# kexec -e
barring a few unsurprising boot errors, i came up in the new kernel.
time to play some more -- i'm guessing that, from the config options
for the stock fedora kernel, i should be able to kexec to the current
Robert P. J. Day
Linux Consulting, Training and Annoying Kernel Pedantry:
Have classroom, will lecture.
http://crashcourse.ca Waterloo, Ontario, CANADA
More information about the fedora-list