This is a tool to create (open)SUSE Linux installation ISOs - either from scratch or by modifying existing ISOs. It is not intended to create an installation repository or completely new product media. For this, use kiwi.
mksusecd makes it easy to apply modifications to existing install media, like:
- integrate driver updates (DUD)
- modify the installation system
- replace kernel and modules used during installation
- add boot options
- create and integrate add-on repositories
- change the default repositories used during installation
- create a mini ('network') boot iso from a regular dvd
The images mksusecd creates can be put both on a cd/dvd or a (usb-)disk. For this mksusecd creates so-called 'isohybrid' images. If you are interested in the technical details, you can read more about it here.
Get the latest version from the openSUSE Build Service.
See also my mini-series of articles around SUSE installation media and driver updates that highlight specific use-cases:
- Update the update process!
- But what if I need a new kernel?
- And what if I want to remove some files?
- Encrypted installation media
Note
In all the examples below, when you use an iso image as source (and not a directory with the unpacked iso), you must run mksusecd with root permissions as it will need to mount the iso image temporarily.
We have a patch for yast2-core that is needed during installation and the final system, e.g. for an AutoYaST installation. The patch is included in yast2-core-3.1.12-0.x86_64.rpm.
-
Create a Driver Update Disk (DUD) from yast2-core.rpm:
mkdud --create bug-free.dud --dist 13.2 yast2-core-3.1.12-0.x86_64.rpm
-
Create a new ISO from the original openSUSE 13.2 ISO and the DUD:
mksusecd --create bug-free.iso --initrd bug-free.dud openSUSE-13.2-DVD-x86_64.iso
Now you can use bug-free.iso as a replacement for openSUSE-13.2-DVD-x86_64.iso.
Say, you need to walk around and install a lot from http://foo/bar
, then do
mksusecd --create foo.iso --nano --net=http://foo/bar openSUSE-13.2-DVD-x86_64.iso
--nano
puts only the necessary files for booting on the media (not the installer itself, for example).
If you need to repeatedly enter the same boot options, create an iso that already has them:
mksusecd --create foo.iso --boot "sshd=1 password=*****" openSUSE-13.2-DVD-x86_64.iso
This would start an ssh daemon you can login to during installation.
-
Unpack the iso into some temporary directory:
mount -oloop,ro openSUSE-13.2-DVD-x86_64.iso /mnt mkdir /tmp/foo cp -a /mnt/* /tmp/foo chmod -R u+w /tmp/foo umount /mnt
-
Do any changes you like in
/tmp/foo
-
Build a new iso
mksusecd --create foo.iso /tmp/foo
Often you will need mkdud along with mksusecd. Both mksusecd and mkdud are included in openSUSE Tumbleweed. So on openSUSE Tumbleweed installation is as simple as
zypper in mksusecd mkdud
To build, simply run make
. Install with make install
.
Basically every new commit into the master branch of the repository will be auto-submitted to all current SUSE products. No further action is needed except accepting the pull request.
Submissions are managed by a SUSE internal jenkins node in the InstallTools tab.
Each time a new commit is integrated into the master branch of the repository, a new submit request is created to the openSUSE Build Service. The devel project is system:install:head.
*.changes
and version numbers are auto-generated from git commits, you don't have to worry about this.
The spec file is maintained in the Build Service only. If you need to change it for the master
branch,
submit to the
devel project
in the build service directly.
Development happens exclusively in the master
branch. The branch is used for all current products.
You can find more information about the changes auto-generation and the tools used for jenkis submissions in the linuxrc-devtools documentation.