[Bug 1302418] Re: grub-installer should fall back to grub-pc instead of grub-efi when there is no EFI system partition

Phillip Susi psusi at ubuntu.com
Tue Apr 8 16:28:34 UTC 2014


So this actually turned out ot be very simple.  I made the following
change, and tested it in the following ways:

1)  Boot in efi mode, do a use whole disk install.  It created an efi system partition and used grub-efi.
2)  Boot in efi mode, manually partition, remove the efi system partition, and replace it with bios_grub.  It uses grub-pc, and booted fine in bios mode.
2)  Installed 13.10 in bios mode, with an mbr partition table.  Boot trusty in efi mode and do an along side install.  It correctly used grub-pc, and boots fine in bios mode.

The patch is just this simple:

=== modified file 'grub-installer'
--- grub-installer	2014-03-28 13:11:31 +0000
+++ grub-installer	2014-04-08 16:22:27 +0000
@@ -442,6 +442,10 @@
 	else
 		grub_package="grub-efi"
 	fi
+	if ! [ -d /target/boot/efi ]; then
+		#fall back to grub-pc
+		grub_package="grub-pc"
+	fi
 	;;
     powerpc/*)
 	grub_package="grub-ieee1275"


I did notice two odd things in this process.  The first is that when you manually partition the disk and don't have an esp, you get warned that you need one, but this warning does not happen when you do the guided install.  I thought Colin mentioned on IRC that this warning should happen no matter how you get there.  The second is that the menu option for the firmware setup that only applies for efi installs is still generated on the grub menu, even though we used grub-pc.

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

Title:
  grub-installer should fall back to grub-pc instead of grub-efi when
  there is no EFI system partition

Status in “grub-installer” package in Ubuntu:
  Confirmed
Status in “grub-installer” source package in Trusty:
  Confirmed

Bug description:
  During a side-by-side installation, the EFI partition is not created..
  If it doesn't already exist (which given recent bug reports seems to
  be the case on systems with MS Windows installed), installation fails
  at grub stage.

  TEST CASE:
  Note: This test case simulates in qemu the behavior found on real HW eg. bug 1299134

  1. Install trusty in BIOS mode

  $ qemu-img create -f qcow2 /tmp/disk.img 16G
  $ qemu-system-x86_64 -enable-kvm \
      -drive file=/tmp/disk.img,if=ide,media=disk \
      -pflash /tmp/bios.bin \
      -cdrom $ISO

  2. Reboot
  3. Reuse the same disk and Install trusty in UEFI mode for example start qemu with the option -pflash=/tmp/ovmf.bin and the binary file attached to this bug report.

  $ qemu-system-x86_64 -enable-kvm \
      -drive file=/tmp/disk.img,if=ide,media=disk \
      -pflash /tmp/bios.bin \
      -cdrom $ISO

  4. Proceed to the partitioner and select a side-by-side installation
  5. Proceed with the rest of the installation

  ACTUAL RESULT:
  This crash

  EXPECTED RESULT:
  There are several ways to address this issue, I see 2 options there are probably more:
  1.  Warn the user and refuse to proceed past the partitioner
  2. Create an EFI partition like the entire disk installation does.

  ProblemType: Bug
  DistroRelease: Ubuntu 14.04
  Package: ubiquity 2.17.10
  ProcVersionSignature: Ubuntu 3.13.0-22.44-generic 3.13.8
  Uname: Linux 3.13.0-22-generic x86_64
  ApportVersion: 2.14-0ubuntu1
  Architecture: amd64
  CasperVersion: 1.339
  Date: Fri Apr  4 10:36:19 2014
  InstallCmdLine: BOOT_IMAGE=/casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --
  LiveMediaBuild: Ubuntu 14.04 LTS "Trusty Tahr" - Daily amd64 (20140403)
  ProcEnviron:
   PATH=(custom, no user)
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: grub-installer
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub-installer/+bug/1302418/+subscriptions



More information about the foundations-bugs mailing list