Use grub entries to find Linux kernels
authorMatthew Booth <mbooth@redhat.com>
Fri, 31 Jul 2009 16:31:54 +0000 (17:31 +0100)
committerMatthew Booth <mbooth@redhat.com>
Mon, 3 Aug 2009 10:40:42 +0000 (11:40 +0100)
commite2fa1fe4efcb3bbfe5b7cc2e98b10357abb59422
tree2af88632ffa58435b238278c962c100dc72c4bab
parent1ba754119a43c4dd715d2e0a4637e50e10ac6987
Use grub entries to find Linux kernels

This change adds grub parsing to Lib.pm. It adds the following structure to $os:
  {boot}
  ->{configs}
    ->[0]
      ->{title}   = "Fedora (2.6.29.6-213.fc11.i686.PAE)"
      ->{kernel}  = \kernel
      ->{cmdline} = "ro root=/dev/mapper/vg_mbooth-lv_root rhgb"
      ->{initrd}  = \initrd
  ->{default} = 0

The kernel and initrd entries are just references to their top level entries
under kernels and initrd_modules respectively.

It also changes the way Linux kernels and initrd are discovered. Instead of
searching /lib/modules and /boot for files with matching names, kernels and
initrds are scanned as they are discovered in grub.conf.

Additionally, the following attributes are added to the kernels top level entry:
* path
    The path to the kernel's vmlinuz file.
* package
    The name of the package which installed the kernel.

The xml output of virt-inspector is updated to reflect all of the above changes.
inspector/virt-inspector.pl
perl/lib/Sys/Guestfs/Lib.pm