Sometimes it's convenient to make small modifications to the regular SUSE installation media.
For this, mksusecd exists.
You can replace or add any file to the medium. Simply create a directory structure and put the file into it. Then specify all sources to be merged on the command line. For example
mkdir -p /tmp/foo/boot/x86_64/loader/
cp some_suitable_picture.jpg /tmp/foo/boot/x86_64/loader/welcome.jpg
mksusecd --create foo.iso suse.iso /tmp/foowill create a new image foo.iso from suse.iso that has a new startup picture.
If you always have to enter the same boot options for each installation, add them:
mksusecd --create foo.iso --boot "textmode=1 sshd=1 password=XXX" suse.isoIt is also possible to add a new boot entry instead of modifying the existing one:
mksusecd --create foo.iso --add-entry "XXX" --boot "sshd=1 password=XXX" suse.isoIf you run your own installation server you might want a medium that connects to it per default. To change the default network repository do, for example:
mksusecd --create foo.iso --net "https://example.com/suse" suse.isoIf you are regularly installing via network or need to hand out a small image with your modifications, create a network iso.
For this, simply add the --nano option:
mksusecd --create foo.iso --nano suse.isoTo seamlessly integrate any driver updates you want applied, add them to the initrd. mksusecd has special code for this. For example
mksusecd --create foo.iso --initrd bar.dud suse.isocreates a new foo.iso that will load the driver update bar.dud without any extra user interaction.
If you have a collection of rpms you would like to be able to install you can have mksusecd create an add-on repository and put it on the medium:
mksusecd --create foo.iso --addon foo.rpm bar.rpm -- suse.isoIf you need an updated kernel to be able to run the installation, it can get really tricky. mksusecd lets you rework the installation
system included on the medium so that a new kernel is used during the installation. You just need the new kernel packages:
mksusecd --create foo.iso --kernel kernel-default.rpm kernel-firmware.rpm -- suse.isoIf you need also KMP packages, add them, too.
mksusecd will try to include the same modules as in the original installation medium. If some modules are missing, it will show
the differences.
Sometimes just a module is missing in the installation system that you really need. It's possible to add it this way:
mksusecd --create foo.iso --kernel kernel-default.rpm kernel-firmware.rpm --modules bar,zap -- suse.isoThis replaces the kernel and adds modules bar and zap. Module dependencies will be automatically taken into account.
Note that the --kernel option does not change the kernel that is going to be installed! For this, either create a driver update
with the kernel rpms and integrate the driver update or create an add-on with the kernel packages.
SLES 15 supports so-called 'modules' or 'extensions' (not to be confused with kernel modules) for different product components.
Technically they look like software repositories and are treated similar to add-ons.
mksusecd lets you create a single medium containing the parts you need.
mksusecd --list-repos sle-installer.iso sle-packages.isoshows the modules that are on the media. Pick the modules you need and do, for example:
mksusecd --create foo.iso \
--include-repos Basesystem-Module,Desktop-Applications-Module \
sle-installer.iso sle-packages.isoThe created image then has to be added as add-on during the installation workflow.
You can skip that extra step using the --enable-repos option. Like:
mksusecd --create foo.iso \
--enable-repos auto --include-repos Basesystem-Module,Desktop-Applications-Module \
sle-installer.iso sle-packages.isoIn that case a file add_on_products.xml is added to the medium that activates all
modules automatically.
Alternatively, use --enable-repos ask to have the installer present a dialog that lets you manually pick
the modules you need.
Note
If you are doing an installation with AutoYaST you do not have to mention these modules separately in the AutoYaST control file when
--enable-reposis used.