Bug ID | 1063789 |
---|---|
Summary | instsys settings for installation medias |
Classification | openSUSE |
Product | openSUSE Distribution |
Version | Leap 15.0 |
Hardware | Other |
OS | Other |
Status | NEW |
Severity | Normal |
Priority | P5 - None |
Component | Installation |
Assignee | adrian@suse.com |
Reporter | lnussel@suse.com |
QA Contact | jsrain@suse.com |
CC | dleuenberger@suse.com, kukuk@suse.com, snwint@suse.com |
Found By | --- |
Blocker | --- |
Need to document this somewhere with a reference, so using bugzilla... Booting an installation means to load the kernel, the initrd and the "instsys". Kernel and initrd are loaded by the bootloader, the instsys is loaded by linuxrc from the initrd. The instsys actually consists of several files, the first one loaded is the "root" file. Traditionally the instsys can be found on the installation medium in the /boot/$arch/ directory. e.g /boot/x86_64/root. All other files of the instsys are loaded by linuxrc from the same path as the root file. Obviously a CD/DVD used for pure offline installation needs to have kernel, initrd and the instsys available for direct access. Traditionally also the online repo followed the same layout. Linuxrc by default loads the instsys from the installation source, ie what is either built in or specified via the install= parameter in the boot loader. Since the contents of the instsys may be specific to the kernel that was used for building it the initrd and the instsys must match. To guarantee that, the initrd nowadays has the checksums of the matching root file built in. Since the instsys gets loaded from the installation source anyways, the traditional mini iso of openSUSE Leap and TW does not ship the instsys. There's a plugin for kiwi/product builder to remove superfluous instsys files (KIWIMiniIsoPlugin.pm). Now SLE requires that tools that only understand repomd can mirror a repository while retaining the ability to install from it. That means linuxrc wouldn't be able load an instsys from such a repo as the instsys is not part of repomd. Therefore the instsys must be provided alongside kernel and initrd and linuxrc needs to load the instsys from that location against it's default of loading the instsys from the install source. Assuming that linuxrc stays the way it is that means: 1. If SLE DVDs are meant to be used for installation from such a mirrored network source (like e.g by pressing F4 in the legacy boot loader on the x86_64 DVD), linuxrc must be instructed to load the instsys from the DVD instead of the network. => modify product builder to always put a linuxrc config with an instsys parameter in initrd. Right now such code is in the mini iso plugin but that is insufficient for full DVDs and might be wrong due to 2): https://github.com/openSUSE/product-builder-plugins/blob/b201a365665a9407143c3b9f30abd514bbb2be19/KIWIMiniIsoPlugin.pm#L143 $this -> updateInitRDNET("./etc/linuxrc.d/16_instsys", "instsys=disk:boot/___INITRD_ARCH___/root\n"); 2. For openSUSE we need to decide whether to a) keep a small NET iso without instsys, or b) follow the SLE approach and put the instsys on the iso. => For Leap I would like to stay with a). That means aforementioned code needs to be removed: https://github.com/openSUSE/product-builder-plugins/blob/b201a365665a9407143c3b9f30abd514bbb2be19/KIWIMiniIsoPlugin.pm#L143 If TW wants a bigger Mini iso this needs to be made configurable. Dominique? For the future it would make sense to get rid of those separate instsys files completely. Instead they could be subpackages of skelcd-installer and mirrored normally. Linuxrc would then need to learn parsing repomd to download from there.