70 lines
2.5 KiB
Diff
70 lines
2.5 KiB
Diff
|
# HG changeset patch
|
||
|
# User Roger Pau Monne <roger.pau@entel.upc.edu>
|
||
|
# Date 1325592706 -3600
|
||
|
# Node ID ff0685e8419bc54b631f017c63a983362363c87a
|
||
|
# Parent caf9753d4cc100183eeda26d00c8c38f14215651
|
||
|
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>
|
||
|
|
||
|
diff -r caf9753d4cc1 -r ff0685e8419b tools/pygrub/examples/alpine-linux-2.3.2.extlinux
|
||
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||
|
+++ b/tools/pygrub/examples/alpine-linux-2.3.2.extlinux Tue Jan 03 13:11:46 2012 +0100
|
||
|
@@ -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 -r caf9753d4cc1 -r ff0685e8419b tools/pygrub/src/ExtLinuxConf.py
|
||
|
--- a/tools/pygrub/src/ExtLinuxConf.py Thu Jan 05 17:13:33 2012 +0000
|
||
|
+++ b/tools/pygrub/src/ExtLinuxConf.py Tue Jan 03 13:11:46 2012 +0100
|
||
|
@@ -60,6 +60,13 @@
|
||
|
|
||
|
# 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 @@
|
||
|
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)
|