Anyone know of a way to "boot" another Linux kernel from within Linux, discarding the original kernel/initrd? The idea is that I can boot my server from a small read only copy of Linux that does some housekeeping/data gathering tasks and then checks in with a management server to figure out what to do with the server. Most of the time that will be to just boot Linux/Windows off the local harddrives or image the box.
Basically, I want a tiny copy of Linux to be the bootloader, instead of a specialized (and less flexible) bootloader package. The tiny copy of Linux could be on a USB key, or delivered by PXE.
Loadlin used to do this for Windows, so I could create this environment in DOS... but networking can be tricky and I lose a lot of tools.
Other options are virtualization. All the automation above is part of the host OS, and it checks in with the management server to figure out guests to launch and the like. How the cloud servers do it. Or I could do some magic on the PXE side: PXE boot the data gathering copy of Linux first, make a change to the PXE server and reboot it with the second time it PXE booting a remote kernel but a local OS drive.