--- update-grub.orig 2011-03-17 14:32:24.000000000 +0000 +++ update-grub 2012-09-06 22:38:51.498737000 +0100 @@ -218,7 +218,7 @@ kopt="root=$linux_root_device ro" # Title -title="Debian GNU/`uname -s | sed -e s,GNU/,,g`" +title=$(lsb_release --short --description 2>/dev/null) || title="Ubuntu" # should update-grub remember the default entry updatedefaultentry="false" @@ -235,7 +235,7 @@ # additional options to use with the default boot option, but not with the # alternatives - defoptions="" + defoptions="quiet splash" # should grub lock the old kernels lockold="false" @@ -247,7 +247,7 @@ xenkopt="console=tty0" # options to use with the alternative boot options - altoptions="(single-user mode) single" + altoptions="(recovery mode) single" # controls howmany kernels are listed in the config file, # this does not include the alternative kernels @@ -262,6 +262,13 @@ # stores the command line arguments command_line_arguments=$1 +# does this version of grub support the quiet option? +if [ -f ${grub_dir}/installed-version ] && dpkg --compare-versions `cat ${grub_dir}/installed-version` ge 0.97-11ubuntu4; then + supports_quiet=true +else + supports_quiet=false +fi + # read user configuration if test -f "/etc/default/grub" ; then . /etc/default/grub @@ -504,6 +511,12 @@ local hypervisor_options; hypervisor_options=$1; shift fi + local grub_root_type + case "$grub_root_device" in + [^A-Za-z0-9]*) grub_root_type='root' ;; + *) grub_root_type='uuid' ;; + esac + echo -n "title " >> $buffer if [ -n "$hypervisor" ]; then @@ -512,7 +525,12 @@ echo -n "$title" >> $buffer if [ -n "$kernel_version" ]; then - echo -n ", kernel $kernel_version" >> $buffer + echo -n ", " >> $buffer + # memtest86 is not strictly a kernel + if ! echo "$kernel_version" | grep -q ^memtest86; then + echo -n "kernel " >> $buffer + fi + echo -n "$kernel_version" >> $buffer fi if [ -n "$recovery_desc" ]; then echo -n " $recovery_desc" >> $buffer @@ -528,7 +546,7 @@ echo "lock" >> $buffer fi - echo "root $grub_root_device" >> $buffer + echo "$grub_root_type $grub_root_device" >> $buffer echo -n "kernel " >> $buffer if [ -n "$hypervisor" ]; then @@ -557,6 +575,10 @@ echo "$initrd" >> $buffer fi + if [ ! -n "$recovery_desc" -a x"$supports_quiet" = x"true" ]; then + echo "quiet" >> $buffer + fi + if test x"$savedefault" = x"true" ; then echo "savedefault" >> $buffer fi @@ -701,7 +723,7 @@ echo "## altoption boot targets option" >> $buffer echo "## multiple altoptions lines are allowed" >> $buffer echo "## e.g. altoptions=(extra menu suffix) extra boot options" >> $buffer -echo "## altoptions=(single-user) single" >> $buffer +echo "## altoptions=(recovery) single" >> $buffer if ! grep -q "^# altoptions" $menu ; then echo "# altoptions=$altoptions" >> $buffer @@ -846,13 +868,18 @@ ## heres where we start writing out the kernel entries counter=0 +case "$grub_root_device" in +[^A-Za-z0-9]*) grub_root_type='root' ;; +*) grub_root_type='uuid' ;; +esac + grub2name="${kernel_dir}/grub/core.img" if [ "$LET_US_TRY_GRUB_2" = "true" ] \ && test -f /boot/grub/core.img ; then echo "Found GRUB 2: $grub2name" >&2 cat >> $buffer << EOF title Chainload into GRUB 2 -root $grub_root_device +$grub_root_type $grub_root_device kernel $grub2name title `echo ───────────────────────────────────────────────────────────────────── | iconv -f utf-8 -t cp437`