YaST module bootloader
Switch branches/tags
yast-bootloader/2_22_0 yast-bootloader/2_21_0 yast-bootloader/2_20_1 yast-bootloader/2_19_16 yast-bootloader/2_19_15 yast-bootloader/2_19_14 yast-bootloader/2_19_13 yast-bootloader/2_19_12 yast-bootloader/2_19_11 yast-bootloader/2_19_10 yast-bootloader/2_19_9 yast-bootloader/2_19_8 yast-bootloader/2_19_7 yast-bootloader/2_19_6 yast-bootloader/2_19_5 yast-bootloader/2_19_4 yast-bootloader/2_19_3 yast-bootloader/2_19_2 yast-bootloader/2_19_1 yast-bootloader/2_19_0 yast-bootloader/2_18_17 yast-bootloader/2_18_16 yast-bootloader/2_18_15 yast-bootloader/2_18_14 yast-bootloader/2_18_13 yast-bootloader/2_18_11 yast-bootloader/2_18_10 yast-bootloader/2_18_9 yast-bootloader/2_18_8 yast-bootloader/2_18_7 yast-bootloader/2_18_6 yast-bootloader/2_18_5 yast-bootloader/2_18_4 yast-bootloader/2_18_3 yast-bootloader/2_18_2 yast-bootloader/2_18_1 yast-bootloader/2_18_0 yast-bootloader/2_17_46 yast-bootloader/2_17_45 yast-bootloader/2_17_44 yast-bootloader/2_17_43 yast-bootloader/2_17_42 yast-bootloader/2_17_41 yast-bootloader/2_17_40 yast-bootloader/2_17_39 yast-bootloader/2_17_38 yast-bootloader/2_17_37 yast-bootloader/2_17_36 yast-bootloader/2_17_35 yast-bootloader/2_17_34 yast-bootloader/2_17_33 yast-bootloader/2_17_32 yast-bootloader/2_17_31 yast-bootloader/2_17_30 yast-bootloader/2_17_29 yast-bootloader/2_17_28 yast-bootloader/2_17_27 yast-bootloader/2_17_26 yast-bootloader/2_17_25 yast-bootloader/2_17_24 yast-bootloader/2_17_23 yast-bootloader/2_17_22 yast-bootloader/2_17_21 yast-bootloader/2_17_20 yast-bootloader/2_17_19 yast-bootloader/2_17_18 yast-bootloader/2_17_17 yast-bootloader/2_17_16 yast-bootloader/2_17_15 yast-bootloader/2_17_14 yast-bootloader/2_17_13 yast-bootloader/2_17_12 yast-bootloader/2_17_11 yast-bootloader/2_17_10 yast-bootloader/2_17_9 yast-bootloader/2_17_8 yast-bootloader/2_17_7 yast-bootloader/2_17_6 yast-bootloader/2_17_5 yast-bootloader/2_17_4 yast-bootloader/2_17_3 yast-bootloader/2_17_2 yast-bootloader/2_17_1 yast-bootloader/2_16_17 yast-bootloader/2_16_16 yast-bootloader/2_16_15 yast-bootloader/2_16_14 yast-bootloader/2_16_13 yast-bootloader/2_16_12 yast-bootloader/2_16_11 yast-bootloader/2_16_10 yast-bootloader/2_16_9 yast-bootloader/2_16_8 yast-bootloader/2_16_7 yast-bootloader/2_16_6 yast-bootloader/2_16_5 yast-bootloader/2_16_4 yast-bootloader/2_16_3 yast-bootloader/2_16_2 yast-bootloader/2_16_1
Nothing to show
Clone or download
jreidinger Merge pull request #534 from yast/GPL-2.0-or-later
Switched license in spec file from SPDX2 to SPDX3 format.
Latest commit 94373b6 Aug 23, 2018

README.md

YaST - The Bootloader Module

Travis Build Jenkins Build Coverage Status inline docs

Goal

This module has two main responsibilities:

  1. Proposing a bootable configuration so even beginners who've never heard about booting can get a bootable distribution out of the box without any interaction.

  2. Letting advanced users who already know what they want to achieve to edit an existing configuration or a proposal.

Check our list of supported scenarios.

Development

High Level Overview

The bootloader module consists of two more or less separated components. The UI including dialogs, widgets and similar, and the backend that is responsible for reading, writing, proposing.

Backend

overview picture

To get to the clickable links in the image, right-click the diagram and choose "Display Image" (Firefox) or "Open Image in New Tab" (Chromium).

The entry point to the backend is the bootloader factory, that holds and also can propose the bootloader implementation. So now let's explain each component of the picture:

  • GRUB2 for legacy booting or emulated grub2 boot like s390x.
  • GRUB2-EFI for EFI variant of GRUB2 bootloader
  • None when YaST does not manage booting
  • GRUB2 base is the shared functionality for both GRUB2 implementations
  • GRUB password is a specific class that manages password protection of grub2
  • Sections is a component responsible for getting info about generated grub2 sections and what the default section for booting is
  • GRUB2 install is responsible for calling the grub2-install script with correct arguments. For legacy booting it gets target stage1 devices.
  • Device Map is a component responsible for managing the mapping between grub device names and kernel/udev names.
  • Stage1 holds information about stage1 location for grub2, also whether a generic MBR is needed and whether a partition should be activated.
  • MBR Update is responsible for generic MBR and stage1 if needed
  • Boot Record backup creates a backup of boot record for devices which the code touched
  • Serial Console converts between grub2 serial console configuration and kernel serial console configuration
  • Sysconfig read/write sysconfig configuration for bootloader. Sysconfig basically holds currently used grub2 implementation and configuration that is not in grub2 itself like if use secure boot or trusted grub

See Also

The bootloader module uses CFA (config files API) module for GRUB2 - See CFA for GRUB2 repository