Kashyap Chamarthy
2013-Mar-16 19:27 UTC
[Libguestfs] GSoC project to deal with bootloaders
Hi Matt, I was discussing with Rich on #libguestfs about using the supermin appliance to 'package' all the 3 outputs (kernel, initrd, root) the fedora appliance [1] into a raw/qcow2 image. He then suggested, it's not easy,but do-able: - put the kernel and initrd onto the root disk, and then install a bootloader; - and then installing 'syslinux' on disk images And said it'd be a nice GSoC project to deal with bootloaders. If you have time to mentor, you might want to add some details under qemu/libvirt GSoC umbrella - http://wiki.qemu.org/Google_Summer_of_Code_2013 Thank You. [1] http://git.annexia.org/?p=a-fedora-appliance.git;a=summary -- /kashyap
Richard W.M. Jones
2013-Mar-16 19:53 UTC
[Libguestfs] GSoC project to deal with bootloaders
[Adding Ian McLeod] On Sun, Mar 17, 2013 at 12:57:49AM +0530, Kashyap Chamarthy wrote:> Hi Matt, > > I was discussing with Rich on #libguestfs about using the supermin > appliance to 'package' all the 3 outputs (kernel, initrd, root) the > fedora appliance [1] into a raw/qcow2 image. > > [1] http://git.annexia.org/?p=a-fedora-appliance.git;a=summary > > He then suggested, it's not easy,but do-able: > > - put the kernel and initrd onto the root disk, and then install a > bootloader; > > - and then installing 'syslinux' on disk images > > And said it'd be a nice GSoC project to deal with bootloaders. > > If you have time to mentor, you might want to add some details under > qemu/libvirt GSoC umbrella - > http://wiki.qemu.org/Google_Summer_of_Code_2013I think there's a GSoC project in here. I'm envisaging something like this: (1) Extend libguestfs to add support for detecting which bootloader is installed on a disk. This would be a part of inspection. eg. You'd point it at a disk, it would examine the boot sector and other sectors and filesystem, and say "grub2" or "NTLDR" (or whatever). It would also produce some other information such as which [operating systems? partitions? OS versions?] this boot loader is responsible for booting. This would be immediately useful for virt-v2v. (2) Extend libguestfs to allow certain bootloaders to be installed. We have, controversially, a grub-install API. It was deliberately broken by the upstream grub / Fedora maintainers because they didn't want to maintain grub-legacy any longer. I *still* think it's a good idea to allow boot loaders to be installed from libguestfs. It looks like we could install: SYSLINUX, for sure. Grub{1,2} with a lot more effort. NTLDR: not at all because of licensing issues. Ian McLeod could use this immediately for his SYSLINUX / OpenStack work. (3) Extend libguestfs to allow a bootloader to be copied from one guest to another. virt-resize could use this. The way it does it right now is hokey voodoo (although it does tend to work, a lot of time). https://github.com/libguestfs/libguestfs/blob/master/resize/resize.ml#L854 - - - In fact, looking at this, I don't think we can wait for GSoC :-) Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming blog: http://rwmj.wordpress.com Fedora now supports 80 OCaml packages (the OPEN alternative to F#)