Activity log for bug #1640878

Date Who What changed Old value New value Message
2016-11-10 17:36:02 Chris Glass bug added bug
2016-11-10 17:36:52 Mathieu Trudel-Lapierre grub2 (Ubuntu): status New Triaged
2016-11-10 17:36:54 Mathieu Trudel-Lapierre grub2 (Ubuntu): importance Undecided High
2016-11-10 17:37:11 Mathieu Trudel-Lapierre grub2 (Ubuntu): assignee Chris Glass (tribaal)
2016-11-15 20:11:39 Launchpad Janitor grub2 (Ubuntu): status Triaged Fix Released
2017-03-01 20:16:56 Steve Langasek description As it currently stands grub2 cannot create grub.cfg menu entries that do not use an initrd image if one is present but the user does not desire to use it. Furthermore, root= entries only support UUID and LABEL, but neither is an option if booting the kernel without an initrd. Suggestion: Allow grub2 to create configuration files without an "initrd" line and passing PARTUUID as root= entry by adding configuration knobs. As it currently stands grub2 cannot create grub.cfg menu entries that do not use an initrd image if one is present but the user does not desire to use it. Furthermore, root= entries only support UUID and LABEL, but neither is an option if booting the kernel without an initrd. Suggestion: Allow grub2 to create configuration files without an "initrd" line and passing PARTUUID as root= entry by adding configuration knobs. [SRU Justification] A lot of time is wasted across the many, many instances of Ubuntu loading initramfs when booting. It's a measurable savings of CPU time and electricity to skip loading an initramfs at boot if it's not required. [Test case] 1. cp /boot/grub/grub.cfg /tmp/grub.cfg 2. install the grub packages from -proposed. 3. cmp /boot/grub/grub.cfg /tmp/grub.cfg || echo 'fail' 4. as root, configure /etc/default/grub to mount the root disk directly and bypass the initramfs: echo GRUB_DISABLE_INITRD=true >> /etc/default/grub root=$(awk </etc/fstab '$2 == "/" { print $1 }') case $root in LABEL=*|UUID=*) dev="-l -t $root" ;; *) dev=$root ;; esac partuuid=$(blkid -s PARTUUID -o value $dev) if [ -z "$partuuid" ]; then echo "Error: cannot get partuuid for $root." else echo GRUB_FORCE_PARTUUID=$partuuid >> /etc/default/grub fi 5. If a partuuid has been found, run update-grub. Note that this will only work if your root device is a partition on a GPT-formatted disk. 6. Check that /boot/grub/grub.cfg now contains entries that don't specify an initramfs, and do include root=PARTUUID=* on the kernel commandline.
2017-03-01 20:25:01 Steve Langasek description As it currently stands grub2 cannot create grub.cfg menu entries that do not use an initrd image if one is present but the user does not desire to use it. Furthermore, root= entries only support UUID and LABEL, but neither is an option if booting the kernel without an initrd. Suggestion: Allow grub2 to create configuration files without an "initrd" line and passing PARTUUID as root= entry by adding configuration knobs. [SRU Justification] A lot of time is wasted across the many, many instances of Ubuntu loading initramfs when booting. It's a measurable savings of CPU time and electricity to skip loading an initramfs at boot if it's not required. [Test case] 1. cp /boot/grub/grub.cfg /tmp/grub.cfg 2. install the grub packages from -proposed. 3. cmp /boot/grub/grub.cfg /tmp/grub.cfg || echo 'fail' 4. as root, configure /etc/default/grub to mount the root disk directly and bypass the initramfs: echo GRUB_DISABLE_INITRD=true >> /etc/default/grub root=$(awk </etc/fstab '$2 == "/" { print $1 }') case $root in LABEL=*|UUID=*) dev="-l -t $root" ;; *) dev=$root ;; esac partuuid=$(blkid -s PARTUUID -o value $dev) if [ -z "$partuuid" ]; then echo "Error: cannot get partuuid for $root." else echo GRUB_FORCE_PARTUUID=$partuuid >> /etc/default/grub fi 5. If a partuuid has been found, run update-grub. Note that this will only work if your root device is a partition on a GPT-formatted disk. 6. Check that /boot/grub/grub.cfg now contains entries that don't specify an initramfs, and do include root=PARTUUID=* on the kernel commandline. As it currently stands grub2 cannot create grub.cfg menu entries that do not use an initrd image if one is present but the user does not desire to use it. Furthermore, root= entries only support UUID and LABEL, but neither is an option if booting the kernel without an initrd. Suggestion: Allow grub2 to create configuration files without an "initrd" line and passing PARTUUID as root= entry by adding configuration knobs. [SRU Justification] A lot of time is wasted across the many, many instances of Ubuntu loading initramfs when booting. It's a measurable savings of CPU time and electricity to skip loading an initramfs at boot if it's not required. [Test case] 1. cp /boot/grub/grub.cfg /tmp/grub.cfg 2. install the grub packages from -proposed. 3. cmp /boot/grub/grub.cfg /tmp/grub.cfg || echo 'fail' 4. as root, configure /etc/default/grub to mount the root disk directly and bypass the initramfs:   echo GRUB_DISABLE_INITRD=true >> /etc/default/grub   root=$(awk </etc/fstab '$2 == "/" { print $1 }')   case $root in       LABEL=*|UUID=*)           dev="-l -t $root"           ;;       *)           dev=$root           ;;   esac   partuuid=$(blkid -s PARTUUID -o value $dev)   if [ -z "$partuuid" ]; then       echo "Error: cannot get partuuid for $root."   else       echo GRUB_FORCE_PARTUUID=$partuuid >> /etc/default/grub   fi 5. If a partuuid has been found, run update-grub. Note that this will only work if your root device is a partition on a GPT-formatted disk. 6. Check that /boot/grub/grub.cfg now contains entries that don't specify an initramfs, and do include root=PARTUUID=* on the kernel commandline. [Regression potential] This upload introduces no behavior changes unless the user updates /etc/default/grub to configure the use of the new feature, so there should be no regressions here. The SRU test case verifies that /boot/grub/grub.cfg remains unchanged with the new version.
2017-03-01 20:30:51 Steve Langasek grub2 (Ubuntu Xenial): status New Fix Committed
2017-03-01 20:30:53 Steve Langasek bug added subscriber Ubuntu Stable Release Updates Team
2017-03-01 20:30:59 Steve Langasek bug added subscriber SRU Verification
2017-03-01 20:31:04 Steve Langasek tags verification-needed
2017-03-01 20:33:22 Steve Langasek bug task added grub2-signed (Ubuntu)
2017-03-01 20:35:12 Steve Langasek grub2-signed (Ubuntu): status New Fix Released
2017-03-01 21:59:34 Steve Langasek tags verification-needed verification-done
2017-03-09 15:07:20 Launchpad Janitor grub2 (Ubuntu Xenial): status Fix Committed Fix Released
2017-03-09 15:07:32 Brian Murray removed subscriber Ubuntu Stable Release Updates Team