[Bug 1091464] Re: Unable to chainload Windows 8 with Secure Boot enabled

Roderick Smith rodsmith at rodsbooks.com
Mon Jul 1 03:43:44 UTC 2013


I don't have a fix for GRUB, but you *should* be able to work around the
problem by using my rEFInd boot manager
(http://www.rodsbooks.com/refind/):

1. In Linux, install the rEFInd Debian package.
2. Check the /boot/efi/EFI/refind directory. It should contain *either* a refind_x64.efi file *or* a shim.efi file and a grubx64.efi file.
3. If there's a refind_x64.efi file, rename it to grubx64.efi. That's rEFInd, despite the filename.
4. Download version 0.2 of shim from its download site (http://www.codon.org.uk/~mjg59/shim-signed/). (Note that Ubuntu ships with shim 0.1, which is useless for the procedure I'm describing.) Use either the shim-signed.tgz or shim-signed-0.2.tgz files; they're identical. Alternatively, you could use Fedora's or OpenSuSE's version of shim 0.2.
5. Copy shim.efi from the shim package to /boot/efi/EFI/refind, overwriting shim.efi if it's already present.
6. Copy MokManager.efi from the shim package to /boot/efi/EFI/refind.
7. Use efibootmgr to add shim to the NVRAM boot options, as in "efibootmgr -c -l '\EFI\refind\shim.efi' -L rEFInd". (You *should* be able to skip  this step if you installed rEFInd with Secure Boot enabled.)
8. Reboot. You'll see the MokManager menu appear. Use it to add the keys for both rEFInd and Canonical to the MOK list. (If you have the right software installed, the rEFInd installer will re-sign the rEFInd binaries with locally-generated keys, in which case you should enroll your local public key instead of or in addition to the rEFInd key. IIRC, it's called refind_local.cer.) I'm afraid the MokManager user interface is dreadful; it makes an Apple II's UI look advanced. All the keys should be in the EFI\refind\keys directory of the ESP, which is probably the first partition in the list. You need the .der and .cer keys.
9. When you exit MokManager, the computer could boot Windows, launch rEFInd, reboot, or even hang. If it does anything but launch Linux, reboot.
10. When you reboot, rEFInd should come up as your default boot manager, and it should enable you to boot either Linux or Windows with Secure Boot active. You can verify that Secure Boot is active from the rEFInd information screen. (Check the "platform" line.)

For more information, as well as variants on this procedure involving
the Linux Foundation's PreLoader rather than shim, see the rEFInd page
on Secure Boot:

http://www.rodsbooks.com/refind/secureboot.html

-- 
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/1091464

Title:
  Unable to chainload Windows 8 with Secure Boot enabled

Status in “grub2” package in Ubuntu:
  Confirmed

Bug description:
  I've been working with Yannubuntu and he suggested I post a bug here.
  Here's what I did.

  Received a brand new Dell XPS13 laptop with Windows8 pre-installed
  with both UEFI and SecureBoot enabled.    After playing around,
  decided to wipe everything and create a dual boot configuration with
  both Windows 8 and Ubuntu 12.10.  Steps:

  1. Install Windows 8 via Dell supplied recovery media in UEFI mode.  The installer will create the /boot/efi, recovery and main partition.  
  2. Use Windows 8 to resize hard drive down to 50GB.  Use the rest for Ubuntu.
  3. Verify the computer boots successfully to Windows 8 with UEFI and Secure Boot enabled.
  4. Boot with USB Ubuntu install media and select 'do something else' to create partitions and indicate /boot/efi
  5. Let the install complete.  Normally here, I run boot repair because the signed bootloader doesn't seem to install.  In boot repair, I use advance options, indicate where the EFI boot should go, primary OS (ubuntu) and select SecureBoot.
  6. Now, everything is configured as I want it.  Upon boot up, the computer will boot to grub and then I can go to either Ubuntu or Windows UEFI.  
  7. Upon selecting Windows UEFI, I get the error:

   /EndEntire
  file path: /ACPI(a0341d0,0)/PCI(2,1f)/UnknownMessaging(12)/HD(2,96800,32000,7c043777b8608641,87,f6)/File(\EFI\Microsoft\Boot)/File(bootmgfw.efi)/EndEntire
  error: cannot load image

  8.  If I swap the order in the BIOS to boot to Windows first (with UEFI and Secure Boot) it directly boots to Windows so I know the EFI boot files are working.
  9. If I go back to my original configuration (e.g. Ubuntu first) with UEFI, but Secure Boot disabled, then the system is able to successfully chainload the MSFT boot files.

  My gut tells me that grub is unable to chainload to an OS (or maybe
  just windows 8) which is expecting a secure boot to be initiated from
  the UEFI bios.

  As a work around, I have disabled Secure Boot, but I'd like my
  ultimate configuration to support Secure Booting to either Ubuntu or
  Windows 8 via grub.

  Thanks,

  Neeraj

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091464/+subscriptions




More information about the foundations-bugs mailing list