The wikis are now using the new authentication system.
If you did not migrate your account yet, visit https://idp-portal-info.suse.com/

SDB:KIWI Kochbuch Mit dem Kochen beginnen

Wechseln zu: Navigation, Suche
Hier werden Sie eine kurze Einführung zu KIWI, die geforderten Pakete, Kommandos und andere nützliche Informationen erhalten, um beginnen zu können. Dieses Verfahren wurde auf der KIWI-Version 4.58 getestet - es wird erwartet, das es auch mit älteren Versionen von KIWI mit geeigneten Änderungen in config.xml funktioniert.
Getestet mit openSUSE Empfohlene Artikel Verwandte Artikel
Icon-checked.png

Icon-manual.png Icon-help.png

Grundsätzliche Vorbereitung für alle Rezepte

Bevor wir mit dem Kochen beginnen, müssen wir sicher stellen, dass wir alle geforderten Zutaten fertig und korrekt angerichtet haben.

Um die KIWI-Werkzeuge nutzen zu können, müssen Sie als Root angemeldet sein.

Installation des KIWI-Werkzeugsatzes

Es wird dringend empfohlen, dass Sie die veröffentlichte Version der KIWI-Werkzeugsatzes verwenden. Indem Sie das Repository Virtualization:Appliances zu Ihrem System hinzufügen, wird es Ihnen ermöglichen, alle auf KIWI bezogenen Pakete zu installieren.

Das Kommando unten veranschaulicht, wie das Repository hinzu zu fügen ist und wie die KIWI-Werkzeuge in der Kommandozeile mittels Zypper zu installieren sind. Alternativ können Sie auch YaST2, mit grafischer Oberfläche, verwenden, um das Repository hinzu zu fügen und die Installation durchzuführen.

  • Fügen Sie, wenn nötig, das Werkzeug-Repository hinzu, indem Sie aus der Liste in Appliances das Repository Ihrer openSUSE-Version auswählen. Für openSUSE Leap und Tumbleweed sind ist das entsprechende Werkzeug-Repository unter virt-builder-images zu finden. Für openSUSE 11.4 führen Sie folgenden den Befehl aus:
# zypper ar http://download.opensuse.org/repositories/Virtualization:/Appliances/openSUSE_11.4/
  • Installieren Sie kIWI und andere benötigten Pakete:
# zypper in kiwi kiwi-doc kiwi-templates kiwi-desc-vmxboot kiwi-desc-usbboot kiwi-desc-isoboot kiwi-desc-xenboot kiwi-desc-oemboot squashfs


Wenn Sie vorher das Werkzeug-Repository konfiguriert haben, haben aber nicht KIWI installiert, dann führen Sie das obige Kommando aus.

Das folgende Kommando wird Ihnen erlauben, alle Pakete aus dem Werkzeug-Repository zu aktualisieren, einschließlich KIWI, wenn es zuvor installiert wurde.

  • Aktualisieren des Repositorys
# zypper refresh


  • Update aller installierten Pakete mit neueren Versionen
# zypper up --repo Virtualization:/Appliances


Bemerkung: Für detaillierte Informationen über die Zypper Befehlszeilenoptionen finden Sie in der Zypper Manpage (man zypper) bzw. durch die Nutzung der Dokumentation SDB:Zypper benutzen

Die Verzeichnisse, in denen wir kochen

Erstellen von Bildern mit KIWI benötigt Platz in Ihrem Dateisystem (Ihrer Festplatte oder einem gemounteten externen Speicher). Der Platzbedarf ist abhängig von der Größe der verwendeten Pakete und der zusätzlichen Software, die in das Abbild integriert werden sollen.

Der grundsätzliche Richtwert für den Speicherbedarf beträgt 8 GB + die Größe der zusätzlichen Software. Auf einem 8 GB großen Speicherplatz können Sie die ganze Distribution speichern. Damit bietet das ausreichend Platz für alle Pakete, die Sie vom Distributions-Repository benötigen.

Für die Beispiele, die hier aufgeführt werden, werden wir Verzeichnisse in /tmp verwenden. Aber Sie können Ihr Arbeitsverzeichnis auch irgendwo in Ihrem Dateisystem wählen.

Die Verzeichnisse, die in diesem Schritt erzeugt werden, werden später als Kommandozeilenargumente verwendet.

Temporäres Verzeichnis zum Bauen:

# mkdir -p /tmp/myiso


Endgültiges Abbildverzeichnis:

# mkdir -p /tmp/myiso-result


Bitte beachten Sie, dass das Verzeichnis zum Bauen sollte nur einmal verwendet werden. Das bedeutet, das Verzeichnis muß vorher geleert werden, um andere Abbilder im gleichen Verzeichnis vorzubereiten. Der KIWI-Werkzeugsatz wird einen Fehler erzeugen, wie Couldn't create root directory: File exists failed.

Der nächste Abschnitt liefert einen schnellen Überblick über die grundlegenden Kommandos und eine kurze Beschreibung darüber, wie KIWI funktioniert.



Datei-Kiwi.png Machen Sie sich bereit zum Kochen!


Die Erstellung eines Abbildes mit KIWI ist ein Prozess in zwei Schritten. Der erste Schritt ist der Vorbereitungsschritt gefolgt vom Herstellungsschritt.

Im Vorbereitungsschritt wird das so genannte ungepackte Abbild im temporären Bauraumverzeichnis (/tmp/myiso in unserem Beispiel, wie oben erwähnt) erzeugt. Das ungepackte Abbild im temporären Bauraum enthält Ihr neues Dateisystem, das auf einem oder mehreren Softwarepaket(en), aus den spezifizierten Repositorys (mehr zu diesen Repositorys später), basiert.

Der Herstellungsschritt verwendet das Dateisystem, das im Vorbereitungsschritt als Abbild-Wurzelverzeichnis erzeugt wurde, um das Ausgabeabbild zu erzeugen. Dieses Abbild ist im endgültigen Abbildverzeichnis (d.h. /tmp/myiso-result in unserem Beispiel, wie oben erwähnt) angeordnet. Wenn der Abbildtyp ISO angefordert wurde, dann ist das Ausgabeabbild eine Datei mit dem Suffix .iso, das ein Live-System auf CD oder DVD repräsentiert. Es ist ebenso möglich, ein ISO-Abbild zu erzeugen, das als Installationsquelle werden kann.

Zusätzlich zur Erzeugung des LiveCD ISO Abbildes, kann man mit KIWI ein Abbild für eine virtuelle Maschine (VMware/qemu) oder eine para-virtuelle (Xen) Umgebung sowie für einen USB-Stick, PXE-Netzwerk-Clients und OEM maßgeschneiderte Linux-Systeme erzeugen.

Die grundlegenden Kommandos

Der Zweischrittprozess aus Vorbereitung und Herstellung wird mit folgenden Kommandos ausgeführt:

kiwi --prepare <ImageDescriptionPath> --root <RootPath>
kiwi --create <RootPath> --destdir <DestinationPath>


  • Der ImageDescriptionPath ist ein Verzeichnis, das eine grundlegende Beschreibung der Zutaten des Abbildes enthält. (Wie dieses Verzeichnis verwendet wird und seine Struktur ist, wird klarer, wenn wir das Rezept unten komplettieren.)
  • Der RootPath ist das Bestimmungsverzeichnis für das ungepackte Abbild, z.B. /tmp/myiso.
  • Der DestinationPath ist der Pfad zum endgültigen Abbild, z.B. /tmp/myiso-result

Der KIWI-Werkzeugkasten unterstützt die Kombination der vorhergehenden Kommandozeilenaufrufe in einem. Mit der --build-Option wird KIWI noch zwei deutliche Schritte ausführen. Aber aus der Anwenderperspektive muss nur ein Kommando ausgeführt werden, wie unten gezeigt wird.

kiwi --build <ImageDescriptionPath> --destdir <DestinationPath>


In diesem Fall wird das ungepackte Abbild in einem Unterverzeichnis DestinationPath namens image-root erzeugt. Gemäß unseres Beispiels würde KIWI /tmp/myiso-result/image-root für das ungepackte Abbild erzeugen.

Das Quell-Repository

Wie bereits erwähnt, erzeugt KIWI vorher ein ungepacktes Abbild, um dann das endgültige Abbild durch Installation von Paketen zu erzeugen. Die Pakete werden aus einer Installationsquelle oder einem sogenannten Repository extrahiert. Ein Repository ist eine Sammlung von Paketen, quasi ein Paketdepo.

Die Angabe der Installationsquelle auf der Kommandozeile wird durch die Verwendung der Kommandozeilenoption --set-repo wie folgt durchgeführt:

kiwi --build <ImageDescriptionPath> --destdir <DestinationPath> --set-repo <RepositoryPath>


Repository-Optionen

KIWI unterstützt lokale Repositorys und aus dem Internet.

Mit Hilfe der Option --set-repo können wir einstellen, was wir als Repository verwenden wollen oder den URL des zuerst gelisteten Repositorys der XML-Datei überschreiben. Die Änderung ist temporär und wird nicht in die XML-Datei geschrieben.

Die folgenden Beispiele zeigen, wie diese verschiedenen Repositorys auf der Kommandozeile anzugeben sind.

  • Verwendung eines Internet basierenden Repositorys, wie z. B. das Repository von openSUSE 11.4.
kiwi --build <ImageDescriptionPath> --destdir <DestinationPath> --set-repo http://download.opensuse.org/distribution/11.4/repo/oss/

Die openSUSE Beispiele, die von KIWI geboten werden, verwenden das openSUSE-Online-Repository. Es ist nicht notwendig, die Kommandozeilenoption --set-repo zu verwenden. Wie das eingerichtet wird, wird in späteren Kapiteln erklärt. Siehe dazu unter Ändern/Hinzufügen von Repositorys in unserem Live-System-Rezept nach.

  • Wenn Sie die Installations-DVD von openSUSE 11.3 oder 11.4 haben, können Sie diese als Repository verwenden.

Legen Sie die DVD in Ihren DCD-Player ein und wenn Sie openSUSE 11.3 verwenden wird sie als /media/SU1110.001 gemountet. Wenn das Medium nicht gemountet wird, können Sie das Kommando mount verwenden.

# mount -t iso9660 /dev/cdrom /media

Angenommen die DVD wird automatisch gemountet, zeigt das folgende Kommando, wie wir die gemountete DVD als Installations-Quell-Repository verwenden können.

kiwi --build <ImageDescriptionPath> --destdir <DestinationPath> --set-repo /media/SU1110.001


  • Wenn Sie die das ISO-Abbild der Installations-DVD zur Verfügung haben, könnten Sie es verwenden ohne es als DVD zu brennen.

Um das Abbild zu verwenden, müssen Sie es erst in einer Schleife einhängen (loop mount), damit es als ein Block-Gerät zur Verfügung steht. Dann nutzen Sie den Einhängepunkt als Repository-Pfad.

mount -o loop /path-to-the-iso-file/filename.iso /mnt


kiwi --build <ImageDescriptionPath> --destdir <DestinationPath> --set-repo /mnt


Ein paar Worte zur Geschwindigkeit

Bevor wir zum ersten Beispiel kommen, ein paar Worte zur Geschwindigkeit, mit der das Abbild erzeugt werden kann.

KIWI wird auf das angegebene Repository zugreifen, um die geforderten Pakete für das zu bauende Abbild zu erhalten. Wenn Sie ein Online-Repository verwenden, hängt die Geschwindigkeit von der Bandbreite Ihrer Internetverbindung ab. Verwenden Sie eine eingehängte DVD, dann hängt die Geschwindigkeit vom DVD-Laufwerk ab. Ebenso wird die Übertragungs-Leistung Ihrer Festplatte einen enormen Einfluss auf die Geschwindigkeit zur Erzeugung des Abbildes haben.

Grundsätzlich wird die Abbilderstellung am schnellsten sein, wenn Sie örtliche Repositorys verwenden, d.h. die Installations-DVD, ein ISO-Abbild das in einer Schleife eingehängt ist oder ein örtlicher Spiegel des Online-Repositorys auf Ihrem LAN.


Vorsichtsmaßnahmen

  • Wenn Sie ein 64 bit Abbild bauen, müssen qemu-kvm (vom kvm Packet) statt qemu verwenden.
  • Der Abbildname für z. B. suse-11.3-live-iso.i686-2.5.1.iso enthält die System-Architectr i686. In allen unseren Rezepten müssen Sie die geeignete Bezeichnung einsetzen, wenn Sie eine andere Architektur bauen.
  • Es ist möglich, ein 32 bit Abbild (x86) auf einem 64 bit (x86_64) System durch das Voranstellen des KIWI-Kommandos mit linux32 wie nachfolgend zu bauen:
# linux32 kiwi --build suse-11.3-JeOS --destdir /tmp/myjeos --type iso