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-2.6.25.9-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.
>
> rday
> --

  ok, that seems to have worked.  for safety, i dropped to runlevel 1
and:

# kexec		-l \
		-t bzImage \
		--command-line="ro root=/dev/fedora/root rhgb quiet" \
		--initrd=initrd-2.6.26-rc9-00132-g9df2fe9.img \
		vmlinuz-2.6.26-rc9-00132-g9df2fe9

# 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
kernel.

rday
--

========================================================================
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 users mailing list