Bootloader installation and configuration |
include/bootloader/routines/lilolike.ycp |
Functions common for lilo-like bootloaders only | |
|
|
This module has an unstable interface. |
Imports
Includes
Global Functions
|
Is embedding 1.5 stage of bootloader to dedicated partition area possible?
- Return value:
-
true if it is possible
Check whether disk settings were changed since last checking
- Return value:
-
true if needs to recheck
FindMbrDisk() try to find the system's mbr device
- Return value:
-
mbr device
ConfigureLocation() Where to install the bootloader. Returns the type of device where to install: one of "boot", "root", "mbr", "mbr_md" Also sets internal global variable selected_location to this.
Sets internal global variables: - selected_location to the type of bootloader device (currently one of: "boot", "root", "mbr", "mbr_md") - loader_device to the actual device name to install the bootloader to (e.g. "/dev/hda1") or to "mbr_md" - activate to true if the loader_device needs to be activated in the MBR - activate_changed leave untouched, except when - booting from a primary /boot partition on the first disk (the one with the MBR seen by the BIOS), then set to true (FIXME: why only then?) - repl_mbr leave untouched, except when - booting from a primary /boot partition on the first disk, then set to true when - the examination of the code in the MBR - by examine_mbr.pl shows that it - DOES NOT look like a valid "stage 1" at all (not enough entropy to contain valid code) OR - DOES NOT look like a "generic MBR" (= DOS MBR) (OK as stage 1 to boot primary part. on 1st disk) OR - DOES look like a LILO or GRUB MBR (replace them with generic code (if stage 1 is not in MBR, see code in updateMBR()), they probably contain an obsolete block list for stage 2) OR - DOES look like some "stage 1" code (has enough entropy, but no known signature) OR - by KeepMBR() -> ThinkPadMBR() shows that it - DOES NOT look like a Thinkpad MBR (begins with specific code sequence from that one) otherwise set to false
- Return value:
-
type of location proposed to bootloader
Detect /boot and / (root) partition devices If loader_device is empty or the device is not available as a boot partition, also calls ConfigureLocation to configure loader_device, set selected_location and set the activate flag if needed all these settings are stored in internal variables
Converts the md device to the list of devices building it
- Parameters:
-
md_device string md device
- Return value:
-
a map of devices (from device name to BIOS ID or nil if not detected) building the md device
Converts the md device to the first of its members
- Parameters:
-
md_device string md device
- Return value:
-
one of devices building the md array
Fix global section of lilo-like bootloader This currently only changes the "default" key to point to the first section, in case the referenced section does not exist anymore. An empty "default" value is not changed.
Fix section of lilo-like bootloader
Update sections of bootloader menu modifies internal structures
- Parameters:
-
replace boolean true if old sectinos shall be replaced
Update global options of bootloader modifies internal sreuctures
Update the device map according to changed device names Read device map and store it in internal structures
Filter sections, remove those pointing to unexistent image
- Parameters:
-
path_prefix string prefix to be added to kernel path relative_path_prefix prefix to be added to relative kernel paths (without leading slash)
Remove or add initrd option if needed, update append option if some parameters were changed
Update append option if some parameters were changed
Update the gfxboot/message/... line if exists
Generate device map proposal, store it in internal variables
Get the order of disks according to BIOS mapping
- Return value:
-
a list of all disks in the order BIOS sees them
Get the summary of disks order for the proposal
- Return value:
-
a line for the summary (or nil if not intended to be shown)