mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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:
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
|
||||
@@ -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)
|
||||
|
||||