SDB:KIWI Kochbuch LiveSystem

Wechseln zu: Navigation, Suche


Bauen eines Abbildes, das man von einer CD booten und laufen lassen kann. Machen Sie einen ersten Schritt, um eine Basis-KIWI-Konfiguration zu modifizieren und ändern Sie den Inhalt des Abbildes. Mindestens die Kiwi Version 3.25 ( kiwi --version ) wurde getestet - ältere Versionen unterstützten nicht alle Eigenschaften.
Getestet mit openSUSE Empfohlene Artikel Verwandte Artikel
Icon-checked.png

Icon-manual.png Icon-help.png



Tux Live - unser zweites Rezept


Das Ergebnis dieses Rezepts ist ein funktionierendes openSUSE Live-System. Aber, um das ein wenig zu würzen, werden wir das Basisrezept, das vom KIWI-doc-Paket bereitgestellt wir, modifizieren. Wir werden zusätzliche Pakete zum System, das erstellt wird, hinzufügen und ändern den angezeigten Namen im Bootmenü. Damit diese Änderungen wirksam werden, müssen wir an der KIWI-Abbild-Beschreibung arbeiten.

Ein Live-System-Abbild ist ein startfähiges Betriebssystem auf einem tragbaren Medium (CD, DVD, oder USB zum Beispiel). Das Live-System behandelt die CD / DVD / USB als die Festplatte des Systems. Dies bietet uns die Möglichkeit, unser System mit uns tragen und es auf jedem Computer, den wir in unsere Finger bekommen, verwenden. Die Verwendung von CD-oder DVD-Medien hat den Nachteil, dass diese Medien-Typ nur gelesen werden kann, d.h. das System kann nicht dauerhaft geändert werden, nachdem es fertig auf ein Medium gebracht (gebrannt) wurde. Sämtliche Änderungen des laufenden Systems, die auf einer CD / DVD platziert sind, finden auf dem Arbeitsspeicher statt und sind deshalb verloren, wenn das System angehalten wird. Für dieses Beispiel werden wir nur ein Live-System auf CD / DVD-Medien betrachten.


LiveCD

LiveCD Rezept

Vorbereitungszeit:

  • 20 min

Kochzeit:

  • 20-25 min Je nach Bandbreite (siehe Diskussion oben) und Hardware des Rechners, Zutaten:
  • ein laufendes openSUSE 11.4 System
  • ein openSUSE 11.4 Repository
  • den aktuellsten KIWI-Bausatz installiert
  • installiertes kiwi-doc Paket
  • über 5 GB freien Festplattenspeicher


Original-Rezept

Die Verwendung des Beispiels, das mit dem kiwi-doc-Paket mitgeliefert wird ist unkompliziert wie unten gezeigt wird. (Es sei daran erinnert, dass Sie als Root angemeldet sein müssen.)

Wenn Sie nicht mehr die Verzeichnisse besitzen, die wir vorher erzeugt haben, erzeugen Sie diese nun:

# mkdir /tmp/myiso
# mkdir /tmp/myiso-result

Die Beispieldateien aus dem kiwi-doc Paket liegen im Verzeichnis /usr/share/doc/packages/kiwi/examples. Wir wollen das suse-live-iso als Beispiel für openSUSE 11.4 verwenden. Damit wären unsere Befehle:

# kiwi --prepare /usr/share/doc/packages/kiwi/examples/suse-11.4/suse-live-iso --root /tmp/myiso
# kiwi --create /tmp/myiso --type iso -d /tmp/myiso-result


Wie bei den vorherigen Rezept können wir das iso-Abbild testen, indem wir vollvirtuelles System wie VMware oder QEMU verwenden. Sie haben natürlich auch die Option zu brennen und zu booten.

Wieder einmal wird die QEMU Kommandozeilenoption für den Abbild-Test hier zu Ihrer Information zur Verfügung gestellt.

# qemu -cdrom /tmp/myiso-result/suse-11.4-live-iso.i686-2.5.1.iso -m 512


Die Anmeldedetails für Ihr System sind:

  • Benutzer (User): root
  • Password (pwd) : linux

Einige Vorbehalte

  • Wenn Sie auf einem 64bit-System arbeiten, müssen Sie qemu-kvm (aus dem kvm-Paket) statt qemu verwenden.
  • Die Abbildbezeichnung suse-11.4-live-iso.i686-2.5.1.iso in in der oberen Kommandozeile könnte anders sein, abhängig von Ihrer Bauarchitektur und der Version der Vorlagen, die Sie verwenden.

Anpassen der Rezeptur

Jetzt, wo wir einen Vorgeschmack auf das Grundrezept haben, von einem Meisterkoch zubereitet, lasen Sie uns das Rezept nach unseren eigenen Geschmack anpassen.


Die Abbild-Beschreibung

KIWI verwendet eine so genannte Abbild-Beschreibung als Grundlage für das Abbild, das erzeugt werden soll.

Die Abbild-Beschreibung ist ein Verzeichnis, das mindestens die Datei config.xml enthält.

Zusätzlich zu derconfig.xml Datei könnte die Abbild-Beschreibung Shellscripte enthalten, die bei der Abbild-Beschreibung ausgeführt werden. Ebenso könnten irgend eine Art Datei oder Verzeichnisstruktur enthalten sein, die in das Abbild aufgenommen werden sollen.

Details über das Verzeichnis der Abbild-Beschreibung entnehmen Sie bitte dem KIWI Abbild System Kochbuch in /usr/share/doc/packages/kiwi/kiwi.pdf, das mit dem kiwi-doc-Paket installiert wird. Die Online-Version können Sie hier finden.

Die folgenden Schritte zeigen, wie man eine vorhandene Abbild-Beschreibung ändert. Die Reichhaltigkeit der Abbild-Beschreibung bietet eine Fülle von Anpassungsoptionen. Wir werden unsere Anstrengungen hier auf die Änderung der config.xml Datei konzentrieren

Der Ausgangspunkt für unsere Modifikationen ist die Beschreibung des LiveCD-Abbildes, das wir oben erzeugten. Wir werden das kde4-amor-Paket hinzufügen und den Systemnamen ändern. Als gute Praxis empfiehlt es sich, auf einer Kopie zu arbeiten und bewahren die Unverfälschtheit des Originalbeispiels, das mit dem kiwi-doc-Paket geliefert wird.

Kopieren Sie das Beispiel der Abbild-Beschreibung

# cp -a /usr/share/doc/packages/kiwi/examples/suse-11.1/suse-live-iso/* /tmp/tux-suse-live-iso
# cd /tmp/tux-suse-live-iso
# ls -l
 total 52
 drwxr-xr-x  3 root root  4096 Mar 18 17:48 ./
 drwxrwxrwt 22 root root 36864 Mar 19 14:52 ../
 -rwxr-xr-x  1 root root  1204 Oct  2 16:19 config.sh*
 -rw-r--r--  1 root root  1101 Jan  7 10:49 config.xml
 drwxr-xr-x  3 root root  4096 Feb 10 17:34 root/

Notiz: Größe und Daten können sich je nach Version des installierten kiwi-doc-Paketes variieren.

Hinweis: Wenn Sie mit der KIWI-Version 3.54 beginnen, können Sie auch den kiwi --clone-Modus verwenden, um die Beispiele zu klonen bzw. zu kopieren.
Syntax:
kiwi --clone image-path -d destination-path


Beispiel:
kiwi --clone /usr/share/doc/packages/kiwi/examples/suse-11.1/suse-live-iso -d /tmp/tux-suse-live-iso


Ergebnis :
/tmp/tux-suse-live-iso
ähnlich wie der cp -a <Pfad>/* oben.

Ändern von config.xml

Die verpflichtende config.xml-Datei im Verzeichnis der Abbild-Beschreibung enthält die Abbilddefinitionsdaten, die in XML beschrieben werden. Die Struktur der XML-Daten ist hier beschrieben: XSD und sind in KIWI validiert. Die Datensektionen beschreiben verschiedene Aspekte des Abbildes, wie der Abbildname, den Abbildtyp und die Pakete, die in das Abbild installiert werden. Zusaätzlich zu den Paketbeschreibungen unterstützt KIWI die Verwendung von Mustern, wie GNOME oder KDE, um Paketgruppen zu identifizieren.

Ändern der allgemeinen Abbilddaten
  • Mit einem Texteditor öffnen Sie die Datei config.xml in Ihrem Verzeichnis (/tmp/tux-suse-live-iso/config.xml, das dem obigen Kopier-Kommando oben folgt). Der Anfang der Datei wird ähnlich dem Ergebnis aussehen, der unten gezeigt wird.
 <?xml version="1.0"?>
 <image schemaversion="3.5" name="suse-11.4-live-iso">
   <description type="system">
     <author>Marcus Schäfer</author>
     <contact>ms@novell.com</contact>
     <specification>openSUSE 11.4 Live system</specification>
   </description>
    ...
 </image>
  • Die Abbild (image) Markierung wird verwendet, um die wichtigsten Abbild-Eigenschaften zu beschreiben.
    Das schließt das Namensattribut (name) ein, das in diesem Fall auf suse-11.4-live-iso eingestellt ist. Der Wert des Namensattributes wird als Dateiname für das Abbild, das wir erzeugen, verwendet. Ändern Sie "suse-11.4-live-iso" in "mytux-live-iso".
    Wir würden gern das optionale Anzeigename (displayname)-Attribut hinzufügen. Der Name des Anzeigename-Attributes wird als Boot-Menü-Titel in Grub (den Abbild-Boot-Loader) verwendet. Die Verwendung der Namens- und Anzeigename-Attribute unterstützt die Trennung des Abbild-Namen, wie "suse-11.4-live-iso", von dem Namen, der im Boot-Menü, "mytux" in diesem Fall, angezeigt wird.
  • Das verpflichtende "Beschreibungs (discription)"-Element enthält Informationen über den Schöpfer der Abbild-Beschreibung. Das "Typ (type)"-Attribut zeigt an, ob das ein System-Abbild oder eine Boot-Abbild-Beschreibung ist, bestimmt durch den Wert "system" oder "boot".
  • Die Autor (author)-Markierung identifiziert den Autor der Abbild-Beschreibung. Ändern Sie diesen Wert in Ihren Namen.
  • Die Kontact (contact) Markierung identifiziert ein Mittel zur Kontaktierung des Autors. Ändern Sie diesen Wert, indem Sie Ihre eMail-Adresse angeben.
  • Die Spezifikations (specifikation)-Markierung bietet einen Raum zur kurzen Beschreibung des Zwecks dieses Abbildes.
  • Nach Anwendung der oben genannten Änderungen sollte der Anfang Ihrer Datei ähnlich dem Folgenden aussehen (Könnte es sein, dass Ihr Name Foo Bar ist?):
 <?xml version="1.0"?>
 <image schemeversion="2.4" name="mytux-live-iso" displayname="mytux" >
   <description type="system">
     <author>Foo Bar</author>
     <contact>foobar@suse.com</contact>
     <specification>My tux Live System basierend auf openSUSE 11.4</specification>
   </description>
    ...
 </image>
Hinzufügen eines Pakets
  • Die Pakete, die in das Abbild eingebaut werden, sind im Pakete (packages) Element beschrieben. Scrollen Sie zur Paketliste in der config.xml-Datei, um die momentane Paketliste, die für Ihr Abbild ausgewählt wurden, zu sehen.
<packages type="image">
  <package name="kernel-default"/>
  <package name="bootsplash"/>
  <package name="bootsplash-branding-openSUSE"/>
  <package name="ifplugd"/>
  <package name="vim"/>
  <namedCollection name="default"/>
  <namedCollection name="kde4"/>
</packages>
Aus dem Elementnamen in der Liste können wir schlussfolgern, dass KIWI 5 Pakete (package name) und 2 Muster (pattern) ausführt, wenn das Abbild erzeugt wird.
  • Wie bereits erwähnt, wollen wir das nicht sehr nützliche aber lustige Paket kde4-amor zu unserem Abbild hinzufügen. Das wird erreicht, durch das Hinzufügen eines neuen Paketes (package)-Elements zur Liste der Pakete. Das Ergebnis wird unten gezeigt (mit fetter und kursiver Hervorhebung der Änderung).
<packages type="image">
  <package name="kernel-default"/>
  <package name="bootsplash"/>
  <package name="bootsplash-branding-openSUSE"/>
  <package name="ifplugd"/>
  <package name="vim"/>
  <package name="kde4-amor"/>
  <namedCollection name="default"/>
  <namedCollection name="kde4"/>
</packages>
Dies ist die einzige geforderte Änderung.

Mit der Änderung der Paket-Liste ist nun das "kde4-amor"-Paket Teil der Abbilddefinition und KIWI wird das Paket in das ungepackte Abbild im Vorbereitungsschritt installieren. Sie können gern weitere Pakete oder Muster (patterns) nach Ihrem Ermessen hinzufügen.

Änderung/Hinzufügen von Paketquellen (Repositorys)

Auf der Wiki-Seite Mit dem Kochen beginnen Abschnitt Repository-Optionen werden die Kommandozeilenargumente zur Spezifizierung einer Paketquelle dargestellt. Nun werden wir untersuchen, wie man eine Installationsquelle in der Datei config.xml beschreibt, um uns zu erlauben, KIWI auszuführen, ohne die Kommandozeilenoption --set-repro zu verwenden.

Der KIWI-Werkzeugsatz unterstützt zwei Paketmanagement-Systeme The kiwi tool chain supports two package management systems, Zypper den SUSE-Standard-Paket-Manager und Smart, einen Paketmanager, der auf ein universelles Paketformat abzielt. Der Paket-Manager für das Abbild wird mit der Markierung "packagemanager" ausgewählt, der Teil des Elements "Vorlieben (preference)" ist. Abhängig vom gewählten Paket-Manager können verschiedene Repository-Formate mit dem Attribut "type" spezifiziert werden im Element "repository". Weitere Informationen zu den unterstützten Formaten finden Sie im Portal:KIWI Abschnitt FAQ.

  • Die Standardeinstellungen für openSUSE 11.4 die Verwendung von Zypper als Paket-Manager und ein "yast2" Repository. Wenn Sie zum Element "repository" in Ihrer Datei config.xml scrollen, die Sie mit Ihrem bevorzugten Editor öffnen, werden Sie eine Definition, ähnlich wie unten gezeigt, sehen.
<repository type="yast2">
  <!--<source path="/image/CDs/full-11.4-i386"/>-->
  <source path="opensuse://11.1/repo/oss/"/>
</repository>
  • Der erste Eintrag ist ein Kommentar, der den Verzeichnispfad, der die Dateien mit dem Repository enthält, anzeigt.
  • Der zweite Eintrag liefert den Wert für den Ort eines Repositorys, "opensuse://11.4/repo/oss/" in diesem Fall.
Dieser Wert enthält "opensuse" als ein Schlüsselwort. Dieses Schüsselwort "opensuse" wird von KIWI als das openSUSE-Online-Repository verstanden. Das "opensuse"-Schlüsselwort kann zu http://download.opensuse.org/distribution erweitert werden, so dass der vollständige Pfad zum Repository lautet: http://download.opensuse.org/distribution11.4/repo/oss/.
<repository type="yast2">
  <source path="/media/SU1110.001"/> 
</repository>
  • Wir können auch das ISO-Image als Repository verwenden, nachdem er als ein Loopback-Gerät eingebunden ist.
mount -o loop /path-to-the-iso-file/filename.iso /mnt


  • Unter Verwendung dieses Einhängepunktes kann das Repository wie folgt spezifiziert werden:
 <repository type="yast2">
    <source path="/mnt"/>
 </repository>
  • Die Syntax, die von der Datei config.xml unterstützt wird, erlaubt es uns, ein ISO-Abbild zu verwenden, ohne das Abbild als ein Loopback-Gerät zu verwenden. Unter der Annahme, dass sich das ISO-Abbild in /tmp befindet und wir das openSUSE 11.4 x86 Abbild verwenden, wird die folgende Spezifikation den Trick ausführen:
 <repository type="yast2">
    <source path="iso:/tmp/openSUSE-11.4-DVD-i586.iso"/>
 </repository>

Innerhalb jedes "repository"-Elements kann nur ein "source"-Element spezifiziert werden. Um mehrere Paketquellen zu nutzen, können Sie so viele "repository"-Elemente wie nötig spezifizieren. Wenn das gleiche Paket in mehreren spezifizierten Paketquellen vorhanden ist, wird die Auflösung der Dublizität vom Paket-Manager bestimmt. Grundsätzlich wählt der Paket-Manager die neuesten verfügbaren Pakete aus.

  • Das Beispiel unten zeigt die Verwendung eines in einer Schleife eingehängten (loop mounted] ISO-Abbildes und eines örtlichen Verzeichnisses, das RPM-Dateien enthält.
 <repository type="yast2">
    <source path="/mnt"/>
 </repository>
 <repository type="rpm-dir">
    <source path="/home/my_rpms"/>
 </repository>

Zusätzliche Details über die Verwendung des "repository"-Elements finden Sie in KIWI Image System Cookbook in /usr/share/doc/packages/kiwi/kiwi.pdf, das mit dem kiwi-doc Paket installiert wird. Die Online-Version finden Sie hier.

Sie können ebenso das Schema für die config.xml-Datei konsultieren, indem Sie mit Ihrem Browser zu /usr/share/doc/packages/kiwi/schema/kiwi.xsd.html navigieren. Diese Datei wird mit dem kiwi-doc-Paket installiert. Aber wenn Sie nicht gut mit XSD vertraut sind, ist das nicht die beste Informationsquelle.

Aufbau der LiveCD

Mit den angewendeten Änderungen der vorhergehenden Abschnitte können wir nun unsere LiveCD bauen, indem wir die folgenden Kommandos benutzen:

  • Entferne das Zielverzeichnis (KIWI wird nicht das ungepackte Abbild überschreiben sondern wird einen Fehler ausgeben)
# rm -rf /tmp/myiso
  • Erstellen Sie ein neues Zielverzeichnis
# mkdir /tmp/myiso
  • Präparieren Sie das Abbild
# kiwi --prepare /tmp/tux-suse-live-iso --root /tmp/myiso
  • Erstellen Sie das Abbild
# kiwi --create /tmp/myiso --type iso -d /tmp/myiso-result


Wenn der Erzeugungsschritt abgeschlossen ohne Beschwerden ist, kann das ISO-Abbild mit Qemu getestet werden.

# qemu -cdrom /tmp/myiso-result/mytux-live-iso.i686-2.5.1.iso -m 512


Vorsichtsmaßnahmen im Hinblick auf die Abbildbezeichnung und den Bau im 64 bit Modus wenden Sie, wie unter Mit dem Kochen beginnen, Abschnitt Vorsichtsmaßnahmen notiert, an.