Verification for bionic, basic grub2 grub-install test (using bionic
ubuntu-server daily image 20180704):

I had a legacy BIOS system on a virtual HDD. Using kvm, I booted the bionic 
daily image in UEFI mode and installed a new Ubuntu system next to it (with the 
ESP created etc.). I have then booted the UEFI system and ran `grub-install 
--target=x86_64-efi --auto-nvram` - the command returned with return value of 0.
Then I switched to legacy BIOS mode and booted into the UEFI-installed system. 
I have run the `grub-install --target=x86_64-efi --auto-nvram` command there 
again and the command also returned with the return value of 0 (success).

Proceeding with installation tests.

** Description changed:

  [Impact]
  
  There are multiple use cases which require both BIOS and UEFI bootloaders 
installed on a target image and to keep them both updated.
  - cloud images on clouds that support both BIOS and UEFI boot in alternate 
instance types
  - PC installs that should remain bootable in the face of firmware upgrades or 
reconfigurations
  
  This currently doesn't work because 'grub-install' selects its install
  target based on which of grub-pc or grub-efi-amd64 is installed.
  
  In cosmic we have introduced a --auto-nvram grub-install option that
  automatically determines if we're running with NVRAM access or not and
  if yes, updates the NVRAM contents. This allows such dual BIOS-UEFI
  bootloader setups to work. Same changes are required to be backported to
  bionic for our cloud images.
  
  [Test Case]
  
  Basic grub2 grub-install test:
-  * Boot up a bionic system in UEFI mode.
-  * Upgrade grub2-common to the version in -proposed.
-  * Run `grub-install --target=x86_64-efi --auto-nvram` and make sure it 
succeeds.
-  * Boot up a bionic system in legacy BIOS mode.
-  * Upgrade grub2-common to the version in -proposed.
-  * Run `grub-install --target=x86_64-efi --auto-nvram` and make sure it 
succeeds (actually not doing anything).
+  * Boot up a bionic system in UEFI mode.
+  * Upgrade grub2-common to the version in -proposed.
+  * Run `grub-install --target=x86_64-efi --auto-nvram` and make sure it 
succeeds.
+  * Prepare a system with an UEFI installed system that can be booted into in 
legacy BIOS mode.
+  * Boot up the bionic system in legacy BIOS mode.
+  * Upgrade grub2-common to the version in -proposed.
+  * Run `grub-install --target=x86_64-efi --auto-nvram` and make sure it 
succeeds (actually not doing anything).
  
  Install test for UEFI (repeat for both server-live, server and desktop):
-  * Download the latest bionic -proposed-enabled image.
-  * Make sure the image includes the -proposed version of grub2, grub2-signed, 
shim-signed and grub-installer (and/or ubiquity).
-  * Install the system normally on an EFI system.
-  * Reboot and make sure the system is bootable.
+  * Download the latest bionic -proposed-enabled image.
+  * Make sure the image includes the -proposed version of grub2, grub2-signed, 
shim-signed and grub-installer (and/or ubiquity).
+  * Install the system normally on an EFI system.
+  * Reboot and make sure the system is bootable.
  
  Install test for legacy BIOS (repeat for both server-live, server and 
desktop):
-  * Download the latest bionic -proposed-enabled image. 
-  * Make sure the image includes the -proposed version of grub2, grub2-signed, 
shim-signed and grub-installer (and/or ubiquity).
-  * Install the system normally on a BIOS system.
-  * Reboot and make sure the system is bootable.
+  * Download the latest bionic -proposed-enabled image.
+  * Make sure the image includes the -proposed version of grub2, grub2-signed, 
shim-signed and grub-installer (and/or ubiquity).
+  * Install the system normally on a BIOS system.
+  * Reboot and make sure the system is bootable.
  
  TODO: Add cloud image testing.
  
  [Regression Potential]
  
  The backport introduces a change in the dependency chain for grub which,
  in some cases, can lead to systems loosing their ability to boot.
  Basically the symptoms to look for is the inability of booting the
  installed system on EFI or BIOS. A lot of testing and dogfooding will be
  required to make sure no installation-case has been broken by this.

** Description changed:

  [Impact]
  
  There are multiple use cases which require both BIOS and UEFI bootloaders 
installed on a target image and to keep them both updated.
  - cloud images on clouds that support both BIOS and UEFI boot in alternate 
instance types
  - PC installs that should remain bootable in the face of firmware upgrades or 
reconfigurations
  
  This currently doesn't work because 'grub-install' selects its install
  target based on which of grub-pc or grub-efi-amd64 is installed.
  
  In cosmic we have introduced a --auto-nvram grub-install option that
  automatically determines if we're running with NVRAM access or not and
  if yes, updates the NVRAM contents. This allows such dual BIOS-UEFI
  bootloader setups to work. Same changes are required to be backported to
  bionic for our cloud images.
  
  [Test Case]
  
  Basic grub2 grub-install test:
   * Boot up a bionic system in UEFI mode.
   * Upgrade grub2-common to the version in -proposed.
   * Run `grub-install --target=x86_64-efi --auto-nvram` and make sure it 
succeeds.
-  * Prepare a system with an UEFI installed system that can be booted into in 
legacy BIOS mode.
-  * Boot up the bionic system in legacy BIOS mode.
+  * Prepare a system with an UEFI installed system that can be booted into in 
legacy BIOS mode.
+  * Boot up the UEFI-installed bionic system in legacy BIOS mode.
   * Upgrade grub2-common to the version in -proposed.
   * Run `grub-install --target=x86_64-efi --auto-nvram` and make sure it 
succeeds (actually not doing anything).
  
  Install test for UEFI (repeat for both server-live, server and desktop):
   * Download the latest bionic -proposed-enabled image.
   * Make sure the image includes the -proposed version of grub2, grub2-signed, 
shim-signed and grub-installer (and/or ubiquity).
   * Install the system normally on an EFI system.
   * Reboot and make sure the system is bootable.
  
  Install test for legacy BIOS (repeat for both server-live, server and 
desktop):
   * Download the latest bionic -proposed-enabled image.
   * Make sure the image includes the -proposed version of grub2, grub2-signed, 
shim-signed and grub-installer (and/or ubiquity).
   * Install the system normally on a BIOS system.
   * Reboot and make sure the system is bootable.
  
  TODO: Add cloud image testing.
  
  [Regression Potential]
  
  The backport introduces a change in the dependency chain for grub which,
  in some cases, can lead to systems loosing their ability to boot.
  Basically the symptoms to look for is the inability of booting the
  installed system on EFI or BIOS. A lot of testing and dogfooding will be
  required to make sure no installation-case has been broken by this.

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

Title:
  Support for grub upgrades with bios+uefi bootloader targets

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to