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>
This commit is contained in:
Roger Pau Monne committed 2012-01-03 13:11:46 +01:00
1 parent a5e66ebdeb
commit bde83b1e10
2 files changed
+21 -1

No files matched your search

@@ -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
+10 -1
View File
@@ -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)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.