Scripts and tools to generate the disk images used during installation (inst-sys) and the rescue disk images for openSUSE and SUSE.
To build a new image, you have to:
- be root
- put the installation-images directory on a local file system (ie. not NFS)
- have a valid ~/.oscrc or ~/.config/osc/oscrc
Then you must run make once to build all parts.
The images will be stored in the 'image' directory, the contents of the images will be in the 'tmp' directory.
make install will gather the images and put them into the 'instsys' dir.
For testing purposes there is a make target 'cd1' that builds a complete tree as it's used on our media.
make iso will directly create the .iso file for CD1 (images/cd1.iso file)
The exact behavior of make can be influenced by several environment
variables. For a full description of these variables and how they affect each
image, check the configoptions.md file.
The default network repository location is product dependent and defined in
obs/installation-images.spec in the net_repo
macro.
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.
For details see here.
After a successful execution of make the directory images/ will
contain several subdirectories and files. Follows a short description of the images:
images/baseis the build environment used for the other images.images/bootis the image that contains the bootloader.images/cd1.isois a media used for testing purposes only; can be optionally generated by themake isocommand.images/initrdcontains all the files used at the initrd stage (check out our initrd implementation).images/rescuecontains the data for the rescue system.images/rootis mounted to provide the necessary files for YaST installation.images/gdbis an extension containing the GNU GDB debugger (use theextend gdbcommand to activate it in the inst-sys).images/libyui-rest-apiis an extension containing the LibYUI REST API packages (use theextend libyui-rest-apicommand to activate it in the inst-sys).
-
How to make sure a driver is available in the installation/rescue system? Check the modules.md file.
-
How to add a package or one of its file to the image? Check the files.md file.
-
How the branding works? Check the branding.md file
-
How to remove a specific file from the initrd image?
If you can rebuild the image, the recommended way is to exclude the file from the package that contains it. To do so, you need to modify the .file_list of the image (see files.md ).
If you're looking for a quick hack with
mksusecdplease keep in mind that symlinks won't work; instead you'll need to overwrite the files with other, real files (even empty) thanks to the --initrd flag. -
After building an image from the master branch and installing it I get an error regarding "Wrong media".
This is because for some reason, your images have mismatching build IDs. To check a build id, you want to look at the content of the .config files.
find . -name "*.config"will show a few of them, in general you'll be interested in .instsys.config and linuxrc.config. -
What happens if a package is included in two subsequent stages (e.g. initrd, root)?
Installation-images is smart enough to recognise this duplication and eliminate it. Please do not abuse of this feature because the .file_list files serve as a list of files included in the image (read: documentation) so polluting the files might cause confusion.
-
What is the control.xml used for?
This is a very important file! It gives YaST the instructions on how to (the sequence of steps) used to install a system.
-
How do I mount the built images?
The images are compressed using the squashfs file system, but you can normally mount them with the
mountcommand.
TODO FAQ: compression algorithm, linemode, fonts