On 19 Jun 2001, Eric W. Biederman wrote:
> Ron my 2.4.2 kexec stuff works well. I'm very dubious about a bootloader
> in the kernel though. I can squeeze a network bootloader into 8KB of
> user space so space is not super precious. I suspect anything in the
> kernel will be a maintenance nightmare.
It bugs me too but consider this: I have a redhat CD. I need to mount that
thing and boot the kernel on it. The redhat CD is NOT going to have your
user-mode kexec stuff on it. Users really want to say stuff like
root=/dev/hdc kernel=/boot/generic.gz
to some kind of boot loader.
Basically the problem is this: how do we give people the capability they
have right now with "normal" bioses, which allow them to boot an arbitrary
kernel from CD/floppy/hdax/whatever with just about any Linux file system.
This question first came up with some folks who had a linuxbios machine, a
redhat CD, and a totally blank hda. There was NOTHING I could do to help
them, save tell them "put in old BIOS chip". That's not a great answer.
To support these normal uses, we are going to need to be able to mount
arbitrary media and boot kernels on that media. We can't assume the
presence of Kexec/Monte/LOBOS/bootimg programs on the media -- we didn't
create it. All we've got is what is in flash.
So what to do? I can't come up with any good way save doing it in-kernel
-- except maybe doing some sort of exec but supplying the image for the
exec from compressed in-kernel code. That seems much harder than just
doing it in-kernel.
one other possibility is to have an rdimage in the kernel, which you put
in ramdisk, mount as root, and run. But that sure seems complicated to me.
So what can we do? I'm not sure.
ron