Re: Bug#775143: grub/grub2 kernel parameter bugs
Patches attached; three commits, one to correct each issue identified,
in the given order.
I have tested these + my 775128 patch (v2 - not yet uploaded as of this
moment), and they correctly amend the menu creation. I haven't actually
tested running an image or an installer included in one, but I expect it
to work perfectly - the menus created look good!
commit 67a5f6647393c2ac1493463d05252d63d442b187
Author: jnqnfe <jnqnfe@gmail.com>
Date: Sun Jan 11 21:14:49 2015 +0000
Fix insertion order of user supplied kernel parameters in grub/grub2 menu creation (#775143)
To match syslinux, and because I believe that placing them before the 'quiet' (d-i?) parameter is the correct place.
diff --git a/scripts/build/binary_grub b/scripts/build/binary_grub
index c311c12..2836d8f 100755
--- a/scripts/build/binary_grub
+++ b/scripts/build/binary_grub
@@ -85,19 +85,19 @@ Grub_install_entry ()
do
case "${TYPE}" in
Install)
- TAPPEND="${APPEND} ${QAPPEND}"
+ TAPPEND="${APPEND} LB_BOOTAPPEND_INSTALL ${QAPPEND}"
;;
Expert)
- TAPPEND="priority=low ${APPEND}"
+ TAPPEND="priority=low ${APPEND} LB_BOOTAPPEND_INSTALL"
;;
Rescue)
- TAPPEND="rescue/enable=true ${APPEND} ${QAPPEND}"
+ TAPPEND="rescue/enable=true ${APPEND} LB_BOOTAPPEND_INSTALL ${QAPPEND}"
;;
Auto)
- TAPPEND="auto=true priority=critical ${APPEND} ${QAPPEND}"
+ TAPPEND="auto=true priority=critical ${APPEND} LB_BOOTAPPEND_INSTALL ${QAPPEND}"
;;
esac
@@ -112,7 +112,7 @@ Grub_install_entry ()
LINUX_INSTALL="${LINUX_INSTALL}\ntitle\t\t${LABEL} ${TYPE}"
- LINUX_INSTALL="${LINUX_INSTALL}\nkernel\t\t/${KERNEL} ${TAPPEND} ${LB_BOOTAPPEND_INSTALL}"
+ LINUX_INSTALL="${LINUX_INSTALL}\nkernel\t\t/${KERNEL} ${TAPPEND}"
LINUX_INSTALL="${LINUX_INSTALL}\ninitrd\t\t/${INITRD}"
done
}
diff --git a/scripts/build/binary_grub2 b/scripts/build/binary_grub2
index bf5f8ce..d65e7f9 100755
--- a/scripts/build/binary_grub2
+++ b/scripts/build/binary_grub2
@@ -80,13 +80,15 @@ Grub_install_entry ()
INITRD="${3}"
APPEND="${4}"
+ APPEND="${APPEND} LB_BOOTAPPEND_INSTALL"
+
if [ "${LABEL}" != "rescue" ] && [ "${LABEL}" != "rescuegui" ]
then
APPEND="${APPEND} quiet"
fi
LINUX_INSTALL="${LINUX_INSTALL}\nmenuentry \"Debian GNU/Linux - ${LABEL}\" {"
- LINUX_INSTALL="${LINUX_INSTALL}\nlinux\t\t/${KERNEL} ${APPEND} LB_BOOTAPPEND_INSTALL"
+ LINUX_INSTALL="${LINUX_INSTALL}\nlinux\t\t/${KERNEL} ${APPEND}"
LINUX_INSTALL="${LINUX_INSTALL}\ninitrd\t\t/${INITRD}"
LINUX_INSTALL="${LINUX_INSTALL}\n}"
}
commit 9f4094cdd10e45f9db912267873f8c005aad532c
Author: jnqnfe <jnqnfe@gmail.com>
Date: Sun Jan 11 21:20:14 2015 +0000
Fix quiet kernel parameter being excluded from rescue menu entries instead of expert menu entries (#775143)
Live-build, when building grub2 menu entries, excludes this from rescue menu entries instead of expert.
This is the opposite to what is done in the following:
- Menu entries seen in official debian 7.7 disc images (grub2 and syslinux configs)
- Menu entries live-build creates for grub (legacy)
- Menu entries live-build creates for syslinux
The evidence strongly suggests live-build grub2 menu creation was in the wrong!
diff --git a/scripts/build/binary_grub2 b/scripts/build/binary_grub2
index d65e7f9..c2f6862 100755
--- a/scripts/build/binary_grub2
+++ b/scripts/build/binary_grub2
@@ -82,7 +82,7 @@ Grub_install_entry ()
APPEND="${APPEND} LB_BOOTAPPEND_INSTALL"
- if [ "${LABEL}" != "rescue" ] && [ "${LABEL}" != "rescuegui" ]
+ if [ "${LABEL}" != "expert" ] && [ "${LABEL}" != "expertgui" ]
then
APPEND="${APPEND} quiet"
fi
commit 5e7713ebe2fee20768c9e3c59aee9945cf567d2c
Author: jnqnfe <jnqnfe@gmail.com>
Date: Sun Jan 11 21:25:18 2015 +0000
Fix missing delimiter in grub menu kernel parameter lists (Closes: #775143)
The '--' delimiter should appear before the final 'quiet' parameter (which is used by the debian installer I believe).
This delimiter is added by live-build in syslinux configs, and is present in both grub2 and syslinux configs in an official debian 7.7 disc image, suggesting strongly that live-build grub/grub2 menu creation code is in the wrong here by missing it.
diff --git a/scripts/build/binary_grub b/scripts/build/binary_grub
index 2836d8f..cb1fb0f 100755
--- a/scripts/build/binary_grub
+++ b/scripts/build/binary_grub
@@ -79,7 +79,7 @@ Grub_install_entry ()
INITRD="${3}"
APPEND="${4}"
- QAPPEND="quiet"
+ QAPPEND="-- quiet"
for TYPE in Install Expert Rescue Auto
do
diff --git a/scripts/build/binary_grub2 b/scripts/build/binary_grub2
index c2f6862..eda56f2 100755
--- a/scripts/build/binary_grub2
+++ b/scripts/build/binary_grub2
@@ -84,7 +84,7 @@ Grub_install_entry ()
if [ "${LABEL}" != "expert" ] && [ "${LABEL}" != "expertgui" ]
then
- APPEND="${APPEND} quiet"
+ APPEND="${APPEND} -- quiet"
fi
LINUX_INSTALL="${LINUX_INSTALL}\nmenuentry \"Debian GNU/Linux - ${LABEL}\" {"
Reply to: