Use GPT on new installs by default
Summary
Utilize newer GPT partitioning instead of MBR/msdos on BIOS systems. This change is focused on x86.
Owner
- Name: Kyle Marek
- Email: psppsn96@gmail.com
- Release notes owner:
Current status
- Targeted release: Fedora 29
- Last updated: 2018-06-29
- Tracker bug: <will be assigned by the Wrangler>
Detailed Description
On unpartitioned systems, Anaconda creates a GPT disk label only on EFI systems, and uses MBR/msdos on BIOS systems.
The individual changes proposed:
- Configure Anaconda to implement the functionality of adding "inst.gpt" to the kernel cmdline by default.
- Add a companion option to inst.gpt to install with MBR instead.
Benefit to Fedora
Installing with GPT by default was tried in Fedora 16 and resulted in lots of EFI-capable hardware (most notably: Lenovo laptops) refusing to boot due to seeing a GPT disk label and assuming this means to use EFI instead the legacy BIOS CSM. This time, the intention behind this proposed change is to later work towards an installer configuration that installs both EFI and BIOS boot loaders, regardless of which was used to boot the installation media. Installing both bootloaders will also address the Lenovo issue.
Immediate benefits:
- GPT allows for more partitions with better identifiers than MBR/msdos.
- GRUB boot code that is normally stored in the gap before first partition will instead be stored in a dedicated partition.
Note: While out of scope for this proposal, the future benefits are listed to justify why Fedora should temporarily go back to the GPT partitioning that caused the Lenovo issue.
Intended benefits for Fedora 30 :
- Recovering data/moving drives to new machine with opposite boot system will work without repartitioning.
- Installers booted in BIOS mode (causes the Lenovo issue) will make installations that will work in EFI mode.
Scope
- Proposal owners: Present patch to Anaconda developers implementing this change, test MBR option on known problematic Lenovo hardware, present documentation for new behavior and options for Fedora's Installation Guide.
- Other developers: Anaconda: review and apply said patch
- Release engineering: #Releng issue number (a check of an impact with Release Engineering is needed)
- List of deliverables: TODO
- Policies and guidelines: N/A
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
The proposed change will only apply to new installations on unpartitioned storage (no impact on existing installations).
However, this change will re-introduce a default incompatibility with Lenovo laptops and other hardware that boot the installer in BIOS mode and use the existence of GPT to assume EFI-booting.
Known to be affected models:
- Lenovo Thinkpad T420s
- Lenovo Thinkpad X220
- Lenovo Thinkpad X120e
- Lenovo Thinkpad T520
- Lenovo Thinkpad W520
- Lenovo Ideapad S205
- Intel DG965OT
- Intel DG965RY
- Intel D945GCLF2
- Intel DP35DP
- Medion MD 95300
- Asrock Z68 Pro3
- Dell Inspiron N7110
How To Test
- Anaconda booted with x86_64 machine running BIOS firmware
- Should create GPT disk label
- Should have a "BIOS boot partition" (type EF02)
- Should boot from machines with BIOS firmware
- Anaconda booted with x86_64 machine running BIOS firmware with MBR boot option
- Should create MBR/msdos disk label
- Should boot from machines with BIOS firmware
- Anaconda booted with x86_64 machine running EFI firmware
- Should create GPT disk label
- Should have a "EFI System partition" (type EF00)
- Should boot from machines with EFI firmware
- Anaconda booted with x86_64 machine running EFI firmware with MBR boot option
- Undefined(?) EFI needs GPT
User Experience
With this change alone, the user experience improvement is limited to a lack of partitioning limitations.
Users with buggy EFI firmware will have a negative experience of having to add a boot option to install with MBR until the next proposal is made to install EFI boot loaders, too.
Dependencies
N/A
Contingency Plan
- Contingency mechanism: Revert changes to Anaconda
- Contingency deadline: TODO
- Blocks release? TODO
- Blocks product? TODO
Documentation
N/A