YaST2 Developers Documentation: Bootloader installation and configuration

Bootloader installation and configuration

include/bootloader/routines/misc-common.ycp
Miscelaneous functions for bootloader configuration and installation

This module has an unstable interface.

WARNING: To be included to BootCommon.ycp only, requires function getLoaderType to avoid include-import cycle Use import "BootCommon" instead.

Imports

  • Directory
  • Kernel
  • Misc
  • Mode
  • ProductFeatures
  • Report
  • Stage
  • Storage
  • StorageDevices

Global Functions

Local Functions

global getLoaderName (string bootloader, symbol mode) -> string

return printable name of bootloader

Parameters:
bootloader string bootloader type internal string
mode symbol `combo or `summary (because of capitalization)
Return value:
printable bootloader name
global getBooleanAttrib (string attrib) -> boolean

Get value of specified boolean bootloader attribute

Parameters:
attrib string attribute name
Return value:
value of attribute
global getAnyTypeAttrib (string attrib, any defaultv) -> any

Get value of specified bootloader attribute

Parameters:
attrib string attribute name
defaultv any default value of the attribute (if not found)
Return value:
value of attribute
global updateTimeoutPopupForFloppy (string bootloader) -> void

Update the text of countdown widget

Parameters:
bootloader string printable name of used bootloader
global getFloppyDevices () -> list<string>

Get the list of installed floppy drives

Return value:
a list of floppy devices
global list2path (list<string> strs) -> path

converts array of string to path

Parameters:
strs list of string
Return value:
whose components are taken from strs
global MountByDev2Dev (string dev) -> string

Converts a "/dev/disk/by-" device name to the corresponding kernel device name, if a mapping for this name can be found in the map from yast2-storage. If the given device name is not a "/dev/disk/by-" device name, it is left unchanged. Also, if the information about the device name cannot be found in the target map from yast2-storage, the device name is left unchanged.

Parameters:
dev string device name
Return value:
kernel device name
global Dev2MountByDev (string dev) -> string

Converts a device name to the corresponding device name it should be mounted by, according to the "mountby" setting for the device from yast2-storage. As a safeguard against problems, if the "mountby" device name does not exist in the information from yast2-storage, it will fallback to the "kernel name" ("/dev/hda1").

Parameters:
dev string device name
Return value:
device name according to "mountby"
global getHintedPartitionList (list<string> parts_to_get) -> list<string>

Returns list of partitions with "mount by" hints. Goes through the list of partitions passed as a parameter and creates a list of partitions with hints according to the current partitioning requested from yast2-storage. To be used in a combobox or menu.

Parameters:
parts_to_get list partitions to list
Return value:
a list of strings containing a partition name and a hint (if applicable)
global getPartitionList (symbol type) -> list<string>

Returns list of partitions. Requests current partitioning from yast2-storage and creates list of partition for combobox, menu or other purpose.

Parameters:
type symbol `boot - for bootloader installation `root - for kernel root `boot_other - for bootable partitions of other systems `all - all partitions `parts_old - all partitions, except those what will be created during isntallation `deleted - all partitions deleted in current proposal `kept - all partitions that won't be deleted, new created or formatted `destroyed - all partition which are new, deleted or formatted
Return value:
a list of strings
global isBlank (string s) -> boolean

returns true if char is blank (newline, tab or space)

Parameters:
s single char string
Return value:
blank/non blank
local strip (string str) -> string

removes trailing and leading blank chars from string. eg: " as df " -> "as df"

Parameters:
str string source string
Return value:
stripped string
global replaceAll (string src, string from, string to) -> string

replaces all occurences of 'from' to 'to' in src

Parameters:
src input string
from string to be replaced
to string to be replaced by
Return value:
modified string
global mod2ui (any val) -> any

convert string values from agent representation to module representation 1) if string is quoted, quotes are removed 2) if string contains escaped quotes, they're unescaped

Parameters:
val value to transform
Return value:
transformed value
local difflist (list a, list b) -> list

returns list difference A \ B (items that are in A and are not in B)

Parameters:
a list A
b list B
Return value:
see above
global swapItems (list input, integer index1, integer index2) -> list

returns modified list where items index1 and index2 are swapped. if indices are out of bounds, unmodified list is returned.

Parameters:
input list
index1 index of the first element
index2 index og the second element
Return value:
modified list
global splitPath (string fullpth) -> list<string>

translate filename path (eg. /boot/kernel) to list of device and relative path

Parameters:
fullpth string fileststem path (eg. /boot/vmlinuz)
Return value:
a list containing device and relative path, eg. ["/dev/hda1", "/vmlinuz"]
global GetBootloaderDevice () -> string

Get bootloader device for specified location FIXME: this function is being phased out. Keeping it around until selected_location and loader_device can be dropped for all bootloader types.

Return value:
device name
global GetBootloaderDevices () -> list<string>

Get list of bootloader device names for all selected or specified locations

Return value:
device names
global InstallingToFloppy () -> boolean

Check if installation to floppy is performed

Return value:
true if installing bootloader to floppy
local ListKernelParamsInLine (string line) -> list<string>

Get the list of particular kernel parameters

Parameters:
line string the whole kernel command line
Return value:
a list of the kernel parameters split each separaterlly
global getKernelParamFromLine (string line, string key) -> string

get kernel parameter from kernel command line

Parameters:
line string original line
key string parameter key
Return value:
value, "false" if not present, "true" if present key without value
Info:

set kernel parameter to GRUB command line

Parameters:
key string parameter key
line string original line
value string value, "false" to remove key, "true" to add key without value
Return value:
new kernel command line
local getPartitionToActivate (string boot_partition, string loader_device) -> map<string,any>

Get partition which should be activated if doing it during bl inst.

Parameters:
boot_partition string the partition holding /boot subtree
loader_device string the device to install bootloader to
Return value:
a map $[ "dev" : string, "mbr": string, "num": any] containing device (eg. "/dev/hda4"), disk (eg. "/dev/hda") and partition number (eg. 4)
local getPartitionsToActivate () -> list<map<string, any> >

Get a list of partitions to activate if user wants to activate boot partition

Return value:
a list of partitions to activate
local getMbrsToRewrite () -> list<string>

Get the list of MBR disks that should be rewritten by generic code if user wants to do so

Return value:
a list of device names to be rewritten
local getFileChangeDate (string filename) -> string

Get last change time of file

Parameters:
filename string name of file
Return value:
last change date as YYYY-MM-DD-HH-MM-SS
local saveMBR (string device) -> void

Save current MBR to /boot/backup_mbr Also save to /var/lib/YaST2/backup_boot_sectors/%device, if some existing, rename it

Parameters:
device string name of device
global updateMBR () -> boolean

Update contents of MBR (active partition and booting code) FIXME move tis function to lilolike.ycp

Return value:
true on success
global restoreMBR (string device) -> boolean

Rewrite current MBR with /var/lib/YaST2/backup_boot_sectors/%device Warning!!! don't use for bootsectors, 446 bytes of sector are written

Parameters:
device string device to rewrite MBR to
Return value:
true on success
local dev2majmin (string device) -> string

Translate device name to major/minor number

Parameters:
device string
Return value:
major*256+minor hexadecimal without leading 0x, in case of any fail return unchanged device node
global UpdateKernelParams (string orig) -> string

Update kernel parameters if some were added in Kernel module

Parameters:
orig original kernel parameters or kernel command line
Return value:
kernel command line or parameters with added new parameters
global getSwapPartitions () -> map<string, integer>

Get map of swap partitions

Return value:
a map where key is partition name and value its size
global translateSectionTitle (string orig) -> string

Create translated name of a section

Parameters:
orig string original section name
Return value:
translated section name
local IsMbr (string device) -> boolean

Check if device is MBR of a disk

Parameters:
device string device to check
Return value:
true if is MBR
local AddMbrToDescription (string descr, string device) -> string

Add '(MBR)' to the disk description if it is a MBR of some partition

Parameters:
descr string disk description
device string disk device
Return value:
updated description
global UpdateInstallationKernelParameters () -> void

Update the Kernel::vgaType value to the saved one if not defined

global GetAdditionalFailsafeParams () -> string

Get additional kernel parameters

Return value:
additional kernel parameters
global GetAdditionalKernelParams () -> string

Get additional kernel parameters from control file

Return value:
additional kernel parameters
global ListAdditionalKernelParams () -> list<string>

Get additional kernel parameters splitted to a list

Return value:
a list of additional kernel parameters
global UpdateGfxMenuContents () -> boolean

Update graphical bootloader to contain help text of current language And make the selected installation language default

Return value:
true on success
global UpdateDevice (string device) -> string

Update device name according to changes in kernel (eg. SATA)

Parameters:
device string the original device name
Return value:
updated device
global MemtestPresent () -> boolean

Check if memtest86 is present

Return value:
true if memtest86 section is to be proposed
global BootloaderInstallable () -> boolean

Check if the bootloader can be installed at all with current configuration

Return value:
true if it can