kiwi-ng
Create customized operating system images
TLDR
Build an appliance
Show build result of built appliance
Display help
Display version
SYNOPSIS
kiwi-ng [global-options] <command> [command-options] <DESCRIPTION.xml>
PARAMETERS
--debug
Enable debug output and increase verbosity
--quiet
Suppress non-essential output
--logfile <FILE>
Write log messages to specified file
--profile <PROFILE>
Build only specified profile(s) from XML
--target-dir <DIR>
Set target directory for image output
--type <TYPE>
Override image type (e.g., oem, iso, vmx)
--root <DIR>
Path to prep init root directory
--overlay <DIR>
Path to overlay tree directory
--strip
Strip bootloader files from image
--help, -h
Show help for command or global options
DESCRIPTION
KIWI-NG is a complete imaging solution that allows users to create customized Linux OS images, live systems, and appliances from XML-based descriptions. It supports various output formats including ISO, USB, virtual machines (QCOW2, VMDK), cloud images (AMI, raw), and installable OEM systems.
Key features include flexible package management integration (zypper, dnf, apt), bootloader configuration (GRUB, syslinux), and support for overlays, LVM, and Btrfs snapshots. Users define images via <image> XML schemas specifying type, preferences, users, repositories, and packages. KIWI-NG handles chroot-based preparation, image creation, and deployment.
Primarily used in openSUSE, SUSE Linux Enterprise, and embedded systems, it excels in CI/CD pipelines for reproducible builds. It replaces the legacy KIWI tool with improved modularity, plugin support, and better error handling.
CAVEATS
Requires XML description file; root privileges often needed for build operations. Not all formats supported on every architecture. Large images may require significant disk space and time.
COMMON COMMANDS
system init: Initialize image root tree.
system build: Prepare image without creating final format.
system create: Create final image from prepared root.
list: List image types or profiles.
XML SCHEMA
Core file is <image schemaversion="..."> with <type>, <preferences>, <repository>, <packages> sections.
HISTORY
Developed as successor to KIWI by openSUSE team around 2019. Initial release in openSUSE Leap 15.2. Focuses on modularity, Python3 rewrite, and container-friendly builds. Actively maintained for SLE and openSUSE.


