[Bug 1097570] Re: grub2-signed can not find the right device when there are two filesystems containing the file '.disk/info'.

Colin Watson cjwatson at canonical.com
Tue Sep 10 00:32:35 UTC 2013


We have to find /boot/grub somehow in the signed memdisk configuration
(generated in debian/build-efi-images, if you're curious), but none of
the solutions I initially thought of work here.  The filesystems are
identical because they were copied, so we can't leave any clues in the
file names or contents.  Filesystem labels are reserved for sysadmins to
set - at least if you're at all sensible - and we can't realistically
bake a filesystem UUID into the signed memdisk configuration because
we'd then end up changing the UUID of the filesystem containing
/boot/grub and that doesn't sound like a great plan.

So, all the cleverer search strategies seem off the table, but EFI does
have the Loaded Image Protocol which lets you find out where the image
you're running came from.  And oh look - GRUB's EFI initialisation code
already sets $root from that if it can.  I suspect the reason I didn't
rely on this is that GRUB only does this for hard disks (which might
well be reasonable), but this is in the startup code used on CDs and I
needed it to work there as well.  I think the right answer is probably
something along these lines:

-if ! search --file --set=root /.disk/info; then
-       search --file --set=root /.disk/mini-info
+if [ -z "\$root" ]; then
+       if ! search --file --set=root /.disk/info; then
+               search --file --set=root /.disk/mini-info
+       fi
 fi

But I need to do some testing to check exactly how the boot process
behaves in a few different cases, and possibly add more sanity checking
there to make sure that ($root)/boot/grub exists before committing to
it.

** Changed in: grub2 (Ubuntu)
       Status: Triaged => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub2 in Ubuntu.
https://bugs.launchpad.net/bugs/1097570

Title:
  grub2-signed can not find the right device when there are two
  filesystems containing the file '.disk/info'.

Status in OEM Priority Project:
  Triaged
Status in OEM Priority Project precise series:
  Triaged
Status in “grub2” package in Ubuntu:
  In Progress
Status in “grub2” source package in Precise:
  Triaged
Status in “grub2” source package in Raring:
  Triaged

Bug description:
  * Ubuntu 12.04.2 LTS "Precise Pangolin" - Release amd64 (20130108)
  precise-desktop-amd64.iso from http://cdimage.ubuntu.com/precise/daily-live/current/ .

  * Package Version
  grub2-signed 1.9~ubuntu12.04.2+1.99-21ubuntu3.7

  * Reproduce Steps
  1. Use `usb-creator-gtk` to create a bootable USB drive by precise-desktop-amd64.iso
  2. Use this USB drive to boot "Try Ubuntu without installing" on an UEFI secure boot enabled laptop.
  3. Create only one 1GB primary fat32 partition on the disk of the laptop with GPT-based disk layout.
  4. Mount fat32 partition on /mnt
      $ sudo mount /dev/sda1 /mnt
  5. Manually copy all contents from the USB stick into the fat32 partition.
      $ sudo cp -av /cdrom/.disk /cdrom/* /mnt
  6. Set up the EFI boot entry.
      $ sudo apt-get install efibootmgr grub-efi-amd64-signed shim-signed
      $ sudo grub-install --removable --uefi-secure-boot --root-directory /mnt /dev/sda1
      $ sudo efibootmgr -c -d /dev/sda -p 1 -l "\\EFI\\BOOT\\BOOTx64.EFI" -L recovery
  7. Append 'from recovery partition' to every menuentry title in /mnt/boot/grub/grub.cfg .
  8. Reboot and select the boot entry 'recovery' from UEFI boot option menu.

  * Expected Result
  We can see every menu entry of grub with the suffix 'from recovery partition'.

  * Actual Result
  There is no suffix 'from recovery partition' on menu entries of grub.

  P.S. The USB drive is still plunged in the laptop. After we unplug the
  USB drive and select the boot entry 'recovery' from UEFI boot option
  menu, we can see every menu entry of grub with the suffix 'from
  recovery partition'.

To manage notifications about this bug go to:
https://bugs.launchpad.net/oem-priority/+bug/1097570/+subscriptions




More information about the foundations-bugs mailing list