Home Wiki > Portal:KIWI
Sign up | Login


tagline: From openSUSE

Welcome to the KIWI Portal edit

The openSUSE KIWI Image System provides a complete operating system image solution for Linux supported hardware platforms as well as for virtualisation systems like Xen, Qemu or VMware

With KIWI you can

  • Create a tuned server appliance, containing your application and just enough operating system components
  • Spin a live CD or DVD with just the packages and software you need
  • Create a ready-to-run VMware virtual appliance
  • Create a live USB key and carry your Linux system with you wherever you go
  • Build a hard disk image for preloading onto hardware
  • Build a new openSUSE project like openSUSE Medical
  • and much more ...

Topics edit


The easy recipes provided below allow you to copy & paste the commands to a terminal in an effort to help you to get started quickly with KIWI


Start Cooking General Preparation for all recipes

Before we start cooking, we need to make sure that we have all required ingredients ready and set up correctly.

Learnings: Here you will get a brief introduction to KIWI, the required packages, commands and other useful getting started information.


Get Juiced - our first recipe Ups - what? Which Juice?'

Juice is the pronunciation for JeOS, which stands for “Just Enough Operating System.” Wikipedia

The term JeOS refers to a customized operating system that precisely fits the needs of a particular application. This means it includes only those pieces of an operating system required to support a particular application, resulting in a small system.

Learnings: Based on one of the KIWI supplied templates build a JeOS (Just enough OS) system to get familiar with the KIWI process.

Tux Suse.png

Tux Live - our second recipe A functional openSUSE live system.

A live system image is a bootable operating system on portable media (CD, DVD, or USB for example). The live system treats the CD/DVD/USB as the hard disk of the system. This provides us the opportunity to carry our system with us and use it on any computer we can get our fingers on.

Learnings: Build an image you can boot and run from a CD. Take a first step to modify a base KIWI configuration to change the content of the image.


Going virtual - our third recipe A Virtual Machine Image

The previous examples focused on the creation of iso images you could test and run with qemu or as a LiveCD/DVD. Kiwi supports also the creation of virtual images in various formats.

Learnings: Step into the world of virtualization with this VMware based example. Learn more about the XML elements and how they work.


Pimp your USB stick - our fourth recipe A System on a USB Stick.

This example shows how you can use Kiwi to create a image that can be installed on a USB stick. The resulting live USB stick allows you to boot the OS and use the system as if the OS were installed on the system hard drive.

Learnings: Learn howto build an image that can run a Linux system from a USB stick. Include some "firstboot magic" to help configure the system on initial boot.


A Minimal GNOME Appliance - our fifth recipe A GNOME System.

While our previous recipes focused on the various types of images we can create with Kiwi, this recipe focuses more on the content of the appliance and some configuration questions.

Learnings: Learn how to run GNOME as your graphical UI. Customize the base example to enable auto login, automatically start Firefox and customize GNOME right out of the gate.


Creating a Web-Kiosk image - our sixth recipe A Kiosk System.

In this example we combine various topics discussed previously to create an image that is a bit more functional.

Learnings: Using the Minimum GNOME example as a base to make appropriate modifications in order to create an image that may be used as a web-kiosk.


Create a private Cloud with OpenNebula Minimize cloud expansion time

Improving the set up time for your private cloud can be accomplished with image creation. Using a self configuring cloud node image can reduce the deployment of a new cloud node to a few minutes. This example describes how to create the infrastructure images and guest images for a private cloud based on the OpenNebula cloud infrastructure software.

Learnings: Using a firstboot work flow and network communication to implement self configuring images.


Create your own Cloud with help of 3 images

Setting up your own cloud can be pretty simple. This example describes how to create the infrastructure images and guest images for your own cloud. The infrastructure is based on Eucalyptus.

Learnings: Using 3rd party software within our images


The splash screens customize it

Building images with Kiwi is all about setting up an environment that meets your needs, i.e. customization. Thus, customization of the appearance during boot maybe just the ticket to make your image your own.

Learnings: The recipe describes the process of setting up customized splash screens for the boot process.


Data separation or handling partitioning

For OEM images partitioning is an often requested feature, especially since AutoYaST can do such a wonderful job with partitioning during install, well actually prior to installation.

This example provides some reasoning behind why Kiwi does not provide partitioning elements in config.xml (spare LVM support) and shows how to provide the generally desired data separation for application data and the OS part of an image as a post dump step.

KIWI and AutoYaST a winning combination

YaST is the installation and configuration tool for the SUSE distributions. It is popular for its easy use and attractive graphical interface and the capability to customize your system quickly during and after the installation. YaST can be used to configure your entire system and with help of AutoYaST you can do this without any interaction. Combine the power of KIWI and AutoYaST to easily customize your system.

Learnings: How to use YaST and AutoYaST as an configuration tool in an appliance


Web based Appliance Administration with WebYaST

WebYaST is the tool set that allows you to remotely administer an appliance (or regularly installed system) through a browser. WebYaST does not yet encompass all the functionality found in YaST, but you will probably find that the functionality provided is more than sufficient to administer your appliances. Find out how to build an image with Kiwi that includes WebYaST and the service running by default.

Learnings: How to include WebYaST in an appliance built by Kiwi.


the KIWI RELAX NG Schema Adding a New Element into the KIWI RELAX NG Schema

Unlike our previous examples which focused on the use of Kiwi to create an image, this example is more developer focused as it shows how to make modifications to the schema governing the config.xml file.

Learnings: Find out how you can develop and customize the KIWI RELAX NG Schema which is used for validating the XML configuration file

Random question and answers edit

Q: Where can I request enhancements, report bugs or submit patches?

1) Searching the list archives is your best starting point. Should you be unable to find an answer to your question in the archives, you can post to the mailing lists after subscribing.

2) There is an IRC channel on freenode

3) You may file bugs using the Novell bugzilla (a Novell account is required)

  • Classification: All
  • Product: openSUSE.org
  • Component: System Imaging
  • Summary : "kiwi: summarize your report here"
  • Convenient URL to file new KIWI bug (with the settings above)

Things to do edit

If you would like requesting enhancements, reporting bugs or submitting patches, then please visit http://bugzilla.novell.com and enter the following data

  • Classification: All
  • Product: openSUSE.org
  • Component: System Imaging
  • Summary : "kiwi: <summarize your report here>"

and your description.

Please also look at http://en.opensuse.org/openSUSE:Submitting_bug_reports for details about submitting bugs.

Here a convenient URL to file a new KIWI bug (with the settings above)

Related links edit

Related Points to be noted


Projects using KIWI

  • SUSE Studio uses KIWI as backend. It provides a web interface for creating custom Linux, fast and easy, in your browser.
  • The Open Build Service
  • LTSP5 on openSUSE LTSP
  • SUSE Linux Point of Service uses KIWI together with the YaST-based Image Creator frontend to build OS images for Point of Service terminals.
  • YaST module providing GUI for KIWI is called Image Creator.

Products built with KIWI

Other places where KIWI has been used

In the news edit