From Fedora Project Wiki
mNo edit summary
(→‎Scope: add link to implementing commit)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
= Support for two variants of the boot mode for Fedora Cloud =
= Build Fedora Cloud Images with Hybrid BIOS+UEFI Boot Support =
== Summary ==
== Summary ==


With recent changes in public cloud widely accepting the
With recent changes in public cloud widely accepting the
use of UEFI boot, it would be consistent to add hybrid boot in support of
use of UEFI boot, it would be consistent to add hybrid boot in support of
both unifying the classic and uefi boot to the fedora cloud base images.
both unifying the legacy (BIOS) and UEFI boot to the Fedora Linux cloud base images.


== Owner ==
== Owner ==


* Name: [[User:Davdunc|David Duncan]], [[User:Chrismurphy|Chris Murphy]], [[User:Josef|Josef Bacik]], [[User:Salimma|Michel Alexandre Salim]], [[User:Dcavalca|Davide Cavalca]], [[User:Ngompa|Neal Gompa]], [[User:Dustymabe|Dusty Mabe]], [[User:Malmond|Matthew Almond]]
* Name: [[User:Davdunc|David Duncan]], [[User:Chrismurphy|Chris Murphy]], [[User:Salimma|Michel Alexandre Salim]], [[User:Dcavalca|Davide Cavalca]], [[User:Ngompa|Neal Gompa]], [[User:Dustymabe|Dusty Mabe]]
* Email: davdunc@amazon.com, chrismurphy@fedoraproject.org, josef@toxicpanda.com, michel@michel-slm.name, dcavalca@fb.com, ngompa13@gmail.com, dusty@dustymabe.com, malmond@fb.com
* Email: davdunc@amazon.com, chrismurphy@fedoraproject.org, michel@michel-slm.name, dcavalca@fb.com, ngompa13@gmail.com, dusty@dustymabe.com
* Products: Fedora Cloud Edition
* Products: Fedora Cloud Edition
* Responsible WGs: Fedora Cloud WG
* Responsible WGs: Fedora Cloud WG


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF35]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 26: Line 26:
* Targeted release: [[Releases/35|Fedora Linux 35]]
* Targeted release: [[Releases/35|Fedora Linux 35]]
* Last Updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}
* Last Updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}
* FESCo Issue: ''Pending''
* FESCo Issue: [https://pagure.io/fesco/issue/2621 #2621]
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1972377 #1972377]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/703 #703]


== Detailed Description ==
== Detailed Description ==
The cloud base will be created with multiple partitions and a GPT label instead of one single partition and implicit mbr
The Fedora Cloud Edition image will be updated to be configured with multiple partitions and a GPT label, instead of a single partition and implicit MBR.
The partitions will be:
1. An EFI System partition
1. A BIOS boot partition
1. A general data partition


The partition order will be:
# BIOS boot
# EFI System (FAT32)
# /boot (ext4)
# / (btrfs)


== Feedback ==
== Feedback ==
Line 44: Line 46:
== Benefit to Fedora ==
== Benefit to Fedora ==


This is a continuation from the changes outlined in the [[Releases/34|Fedora Linux 34]] changes to [[Changes:UnifyGrubConfig|unify the Grub configuration files]]. There has been an overwhelming support in the public cloud architectures leading to widespread support for UEFI boot to support migration work. This also add support for other anticipated changes which would require this modification to include the boot partitions; both the classic boot as a fallback and the UEFI. This is going to require a group of modifications to the cloud base, including modifying the partition to support UEFI and a disk label change to GPT. With this change in place, the images will have greater flexibility to support file systems, such as btrfs, for boot across a number of supported providers and environments.
This is a continuation from the changes outlined in the [[Releases/34|Fedora Linux 34]] changes to [[Changes/UnifyGrubConfig|unify the Grub configuration files]]. There has been an overwhelming support in the public cloud architectures leading to widespread support for UEFI boot in support of migration work. This also adds support for other anticipated changes that would require this modification to include the boot partitions; both legacy boot as a fallback through the BIOS boot partition and UEFI boot through the EFI system partition. This is going to require a group of modifications to the cloud base, including modifying the partition to support UEFI and a disk label change to GPT. With this change in place, the images will have greater flexibility to support file systems, such as btrfs, for boot across a number of supported providers and environments.


* To have a consistent configuration across all the architectures  
* To have a consistent configuration across all the architectures  
* Allows the same image to be booted using either EFI or legacy BIOS.
* Allows the same image to be booted using either UEFI or legacy BIOS.
* Allow easier migration from one environment to another where there is potentially a change in boot loader.
* Allow easier migration from one environment to another where there is potentially a change in boot loader.
* Use the same documentation and commands for the avialable cloud architectures instead of having special cases for different environments.   
* Use the same documentation and commands for the available cloud architectures instead of having special cases for different environments.   
* Align with images generated by COSA and OSBuild on how the GRUB configuration files are used.
* Align with images generated by COSA, KIWI, and OSBuild on how the GRUB configuration files are used.
* Align with other installation methods on how the partitions under <pre>/boot</pre> are defined
* Align with other installation methods on how the partitions under <code>/boot</code> are defined
* Align with other distributions, like CentOS and OpenSUSE, on support for GRUB configuration
* Align with other distributions, like CentOS and openSUSE, on support for GRUB configuration


== Scope ==
== Scope ==


* Proposal owners:
* Proposal owners:
** Submit PRs for Cloud Edition kickstarts to produce hybrid boot.
** Submit PRs for Cloud Edition kickstarts to produce hybrid boot ([https://pagure.io/fedora-kickstarts/c/611edda1490ebb93d996acb29692805ec9e481d3 commit]).
* Release engineering:  
* Release engineering: [https://pagure.io/releng/issue/10143 #10143]
* Policies and guidelines: N/A
* Policies and guidelines: N/A
* Trademark approval: N/A
* Trademark approval: N/A
Line 71: Line 73:
Once the change lands in Rawhide, spin up the images in AWS, GCP, and
Once the change lands in Rawhide, spin up the images in AWS, GCP, and
KVM/OpenStack to test to see systems boot and run. Where possible,
KVM/OpenStack to test to see systems boot and run. Where possible,
test images on cloud virtual machines types where both methods are
test images on cloud virtual machines types where both boot methods are
support.
supported.


Verify that the general data partition is properly grown in the case
Verify that the general data partition is properly grown in the case
Line 84: Line 86:
== Dependencies ==
== Dependencies ==


Grub2
* fedora-kickstarts


== Documentation ==
== Documentation ==


No extra documentation is required reading for users. Supporting recovery documentation is already avaialble.
No extra documentation is required reading for users. Supporting recovery documentation is already available.


== Release Notes ==
== Release Notes ==


Fedora cloud images are updated to boot both UEFI and legacy boot through a hybrid configuration.
Fedora Linux cloud images are updated to boot both UEFI and legacy boot (BIOS) through a hybrid configuration.

Latest revision as of 10:35, 16 August 2023

Build Fedora Cloud Images with Hybrid BIOS+UEFI Boot Support

Summary

With recent changes in public cloud widely accepting the use of UEFI boot, it would be consistent to add hybrid boot in support of both unifying the legacy (BIOS) and UEFI boot to the Fedora Linux cloud base images.

Owner

Current status

Detailed Description

The Fedora Cloud Edition image will be updated to be configured with multiple partitions and a GPT label, instead of a single partition and implicit MBR.

The partition order will be:

  1. BIOS boot
  2. EFI System (FAT32)
  3. /boot (ext4)
  4. / (btrfs)

Feedback

Benefit to Fedora

This is a continuation from the changes outlined in the Fedora Linux 34 changes to unify the Grub configuration files. There has been an overwhelming support in the public cloud architectures leading to widespread support for UEFI boot in support of migration work. This also adds support for other anticipated changes that would require this modification to include the boot partitions; both legacy boot as a fallback through the BIOS boot partition and UEFI boot through the EFI system partition. This is going to require a group of modifications to the cloud base, including modifying the partition to support UEFI and a disk label change to GPT. With this change in place, the images will have greater flexibility to support file systems, such as btrfs, for boot across a number of supported providers and environments.

  • To have a consistent configuration across all the architectures
  • Allows the same image to be booted using either UEFI or legacy BIOS.
  • Allow easier migration from one environment to another where there is potentially a change in boot loader.
  • Use the same documentation and commands for the available cloud architectures instead of having special cases for different environments.
  • Align with images generated by COSA, KIWI, and OSBuild on how the GRUB configuration files are used.
  • Align with other installation methods on how the partitions under /boot are defined
  • Align with other distributions, like CentOS and openSUSE, on support for GRUB configuration

Scope

  • Proposal owners:
    • Submit PRs for Cloud Edition kickstarts to produce hybrid boot (commit).
  • Release engineering: #10143
  • Policies and guidelines: N/A
  • Trademark approval: N/A

Upgrade/compatibility impact

Change will not affect upgrades.


How To Test

Once the change lands in Rawhide, spin up the images in AWS, GCP, and KVM/OpenStack to test to see systems boot and run. Where possible, test images on cloud virtual machines types where both boot methods are supported.

Verify that the general data partition is properly grown in the case that the root volume is larger than the image default.

User Experience

  • Mostly transparent.
  • Consistent recovery experience with other distributions and builds of Fedora Linux.

Dependencies

  • fedora-kickstarts

Documentation

No extra documentation is required reading for users. Supporting recovery documentation is already available.

Release Notes

Fedora Linux cloud images are updated to boot both UEFI and legacy boot (BIOS) through a hybrid configuration.