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.


You are receiving this mail because: