diff options
author | Roger Pau Monne <roger.pau@entel.upc.edu> | 2012-01-10 16:10:00 +0000 |
---|---|---|
committer | Roger Pau Monne <roger.pau@entel.upc.edu> | 2012-01-10 16:10:00 +0000 |
commit | 33eae84c59ff6ca6797748624ac5685fe01f5ea5 (patch) | |
tree | d846ecf43e0a092a88f62205745614f495971690 /tools | |
parent | 72c761804bd39e84ea61cd34be11dc0c3991f52e (diff) | |
download | xen-33eae84c59ff6ca6797748624ac5685fe01f5ea5.tar.gz xen-33eae84c59ff6ca6797748624ac5685fe01f5ea5.tar.bz2 xen-33eae84c59ff6ca6797748624ac5685fe01f5ea5.zip |
pygrub: fix extlinux parsing
pygrub was unable to parse extlinux config files correctly, exactly
the ones like:
LABEL grsec
KERNEL vmlinuz-3.0.10-grsec
APPEND initrd=initramfs-3.0.10-grsec
root=UUID=cfd4a7b4-8c40-4025-b877-8205f1c622ee
modules=sd-mod,usb-storage,ext4 xen quiet
This patch fixes it, adding a new case when parsing the "append" line,
that searches for the initrd image.
Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
Acked-by: Ian Campbell <ian.campbell.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
xen-unstable changeset: 24460:ff0685e8419b
Backport-requested-by: Roger Pau Monne <roger.pau@entel.upc.edu>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/pygrub/examples/alpine-linux-2.3.2.extlinux | 11 | ||||
-rw-r--r-- | tools/pygrub/src/ExtLinuxConf.py | 11 |
2 files changed, 21 insertions, 1 deletions
diff --git a/tools/pygrub/examples/alpine-linux-2.3.2.extlinux b/tools/pygrub/examples/alpine-linux-2.3.2.extlinux new file mode 100644 index 0000000000..908b4070f1 --- /dev/null +++ b/tools/pygrub/examples/alpine-linux-2.3.2.extlinux @@ -0,0 +1,11 @@ +DEFAULT menu.c32 +PROMPT 0 +MENU TITLE Alpine/Linux Boot Menu +MENU HIDDEN +MENU AUTOBOOT Alpine will be booted automatically in # seconds. +TIMEOUT 30 +LABEL grsec + MENU DEFAULT + MENU LABEL Linux 3.0.10-grsec + KERNEL vmlinuz-3.0.10-grsec + APPEND initrd=initramfs-3.0.10-grsec root=UUID=a97ffe64-430f-4fd3-830e-4736d9a27af0 modules=sd-mod,usb-storage,ext4 quiet diff --git a/tools/pygrub/src/ExtLinuxConf.py b/tools/pygrub/src/ExtLinuxConf.py index 6be65cef1d..9d77b9f9bb 100644 --- a/tools/pygrub/src/ExtLinuxConf.py +++ b/tools/pygrub/src/ExtLinuxConf.py @@ -60,6 +60,13 @@ class ExtLinuxImage(object): # Bypass regular self.commands handling com = None + elif arg.find("initrd="): + # find initrd image in append line + args = arg.strip().split(" ") + for a in args: + if a.lower().startswith("initrd="): + setattr(self, "initrd", a.replace("initrd=", "")) + arg = arg.replace(a, "") if com is not None and self.commands.has_key(com): if self.commands[com] is not None: @@ -86,10 +93,12 @@ class ExtLinuxImage(object): self._args = args def get_kernel(self): return self._kernel + def set_args(self, val): + self._args = val def get_args(self): return self._args kernel = property(get_kernel, set_kernel) - args = property(get_args) + args = property(get_args, set_args) def set_initrd(self, val): self._initrd = (None,val) |