On Fri, Aug 07, 2009 at 07:59:04AM +0200, Felix Zielcke wrote:
> Am Dienstag, den 04.08.2009, 11:45 +0200 schrieb Felix Zielcke:
> > Here's now a patch which does it without a version check.
> 
> I suggest to change the sed expression to
> "s!^GRUB_CMDLINE_LINUX=\"\?\([^\"]*\)\"\?!GRUB_CMDLINE_LINUX=\"\1 xyz\"!"
> because in lenny we just have GRUB_CMDLINE_LINUX= in /etc/defaul/grub
> or does someone have a better one?

Better to sed s!^GRUB_CMDLINE_LINUX=$!GRUB_CMDLINE_LINUX=""! first. But
then that also leaves unsightly leading spaces. There's no obvious
reason why we need to preserve any existing value in these variables, of
course.

However, now that grub2/linux_cmdline and grub2/linux_cmdline_default
debconf questions exist, we need to preseed them anyway to stop them
being asked in a default installation. As long as we have to do that, it
seems to me that we might as well set them to reasonable values.

How does this patch look?

Index: grub-installer
===================================================================
--- grub-installer      (revision 60561)
+++ grub-installer      (working copy)
@@ -394,6 +394,25 @@
        ;;
 esac
 
+user_params=$(user-params) || true
+defopt_params=""
+kopt_params=""
+for u_param in $user_params; do
+       case "$u_param" in
+           quiet)
+               defopt_params=${defopt_params:+$defopt_params }$u_param ;;
+           *)
+               kopt_params=${kopt_params:+$kopt_params }$u_param ;;
+       esac
+done
+if [ "$grub_version" = grub2 ]; then
+       # quoting to deconfuse vim
+       chroot /target 'debconf-set-selections' <<EOF
+$grub_package grub2/linux_cmdline string $kopt_params
+$grub_package grub2/linux_cmdline_default string $defopt_params
+EOF
+fi
+
 db_progress START 0 6 grub-installer/progress/title
 
 db_subst grub-installer/progress/step_install GRUB "$grub_version"
@@ -726,17 +745,6 @@
 
 # Add user parameters to menu.list; some options are only added to the
 # default entry for a kernel instead of all entries
-user_params=$(user-params) || true
-defopt_params=""
-kopt_params=""
-for u_param in $user_params; do
-       case "$u_param" in
-           quiet)
-               defopt_params=${defopt_params:+$defopt_params }$u_param ;;
-           *)
-               kopt_params=${kopt_params:+$kopt_params }$u_param ;;
-       esac
-done
 if [ "$defopt_params" ]; then
        sed -i "s!^\(# defoptions=.*\)!\1 $defopt_params!" 
$ROOT/boot/grub/$menu_file
 fi

-- 
Colin Watson                                       [cjwat...@debian.org]



-- 
To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to