2.9 FAI - Fully Automatic Installation

2.9.1 Überblick über die Installation via FAI
2.9.2 Installation und Konfiguration von FAI
2.9.3 Installation eines Clients
2.9.4 FAI BootCD

Mit der Einführung von Installationsprogrammen durch die Hersteller der großen Linux-Distributionen wurde es für den Administrator deutlich einfacher, Systeme mit GNU/Linux zu installieren. Nach dem Booten des Sytems von Diskette oder CD-ROM/DVD wird ein Installationsprogramm gestartet. Es leitet den Administrator durch die Installation und Konfiguration zu einem mehr oder weniger komplett konfigurierten System.

Hierzu ist es aber in jedem Fall notwendig, während der Installation am System zu verbleiben, diverse Einstellungen vorzunehmen und die gewünschten Softwarekomponenten auszuwählen. Bei einem Ausfall des Systems muss das System, wie beschrieben, komplett neu installiert werden. Ein (hoffentlich) vorhandenes Backup kann einige Schritte vereinfachen (wenn dann das Restore auch funktioniert...).

FAI“ (Fully Automatic Installation) bietet die Möglichkeit, einzelne oder mehrere Systeme anhand von Profilen, die auf einem Server hinterlegt sind, vollautomatisch zu installieren.

Abweichend von der klassischen Installation wird hierzu ein (FAI-)Server im Netz benötigt. Auf diesem befinden die Konfigurationsdateien, mit denen die Installation auf den verschiedenen Zielsystemen gesteuert wird. Dieser Server kann weitere Dienste bereitstellen, die während der Installation benötigt werden (wie beispielsweise FTP/HTTP zum Download von Softwarepaketen oder DHCP zur automatischen Vergabe von IP-Nummern). Wenn diese Dienste aber bereits von anderen Servern im Netz bereitgestellt werden, so kann natürlich auf die bestehenden Ressourcen zurückgegriffen werden. Im Folgenden gehen wir davon aus, dass alle Dienste auf einem zentralen FAI-Server installiert und konfiguriert werden.

FAI (http://www.informatik.uni-koeln.de/fai/) wurde von Thomas Lange an der Universität Köln entwickelt, um dort Cluster-Installationen vorzunehmen. FAI benutzt die Debian-Distribution als Basis und verwendet verschiedene Shell- und Perl-Skripts während des Installationsprozesses. Änderungen an den Konfigurationsdateien, um das System optimal an den zukünftigen Einsatz anzupassen, können auch über cfengine-Skripts vorgenommen werden.

Für Sun Solaris wird auf den FAI-Webseiten ebenfalls eine Version angeboten.

2.9.1 Überblick über die Installation via FAI

Zunächst ist es sinnvoll, sich einen Überblick über die Vorgänge bei der Installation mittels FAI zu verschaffen. Die Installation gliedert sich im Wesentlichen in die folgenden Aufgaben:

  • Konfiguration des Clients auf dem FAI-Server: MAC-Adresse in der Konfigurationsdatei des DHCP-Servers aufnehmen und die gewünschten Konfigurationen (Klassen) für den Client erstellen.

    Die Konfiguration der Klassen bildet dabei den zentralen Teil der gesamten Konfiguration und Installation. Hier wird zunächst definiert, wie die Festplatte(n) eingeteilt werden soll, welche Dateisysteme benutzt und welche Softwarepakete auf dem System installiert werden.

    Am Ende der Installation sorgen Klassen für Anpassungen wie die Änderung von Passwörtern oder die Integration des Clients in das Netzwerk (NIS, NFS usw.) oder auch die Einrichtung eines Drucksystems und die Anpassung der GNOME- oder KDE-Menüs.

  • Booten des Client mittels Bootdiskette oder Netzwerkboot (PXE). Der Client erhält eine IP-Nummer via DHCP, BOOTP oder auch statisch über die Bootdiskette und lädt über das Netzwerk den Linux-Kernel vom FAI-Server. Der Linux-Kernel wird auf dem Client gebootet.

  • Das Root-Filesystem wird via NFS vom FAI-Server auf dem Client gemountet, und das System wird gestartet. Hierbei werden angepasste Init-Skripts verwendt, die im Wesentlichen ein Minimalsystem aktivieren und die FAI-Umgebung initialisieren. Das zentrale Skript ist dabei rcS_fai.

  • Anhand der Konfiguration für den Client werden die notwendigen Aufgaben ermittelt und Klassen definiert. Diese Aufgaben gliedern sich in notwendige (Partitionieren der Festplatte, Grundsystem installieren usw.) und optionale Aufgaben (wie beispielsweise das Hinzufügen von Software oder das Anlegen von Benutzeraccounts).

  • Im nächsten Schritt werden die Festplatten partitioniert, formatiert und auf dem Client eingebunden.

  • Nun wird ein Grundsystem auf dem Client entpackt. Dieses wurde auf dem Server aus dem NFS-Root-Verzeichnis generiert.

  • Sollten weitere Klassen mit Softwarepaketen, die auf dem Client installiert werden sollen, definiert sein, so werden diese nun hinzugefügt.

  • Im nächsten Schritt wird das System über verschiedene Skripts angepasst und konfiguriert. An dieser Stelle können beispielsweise Anpassungen an der Mailkonfiguration vorgenommen oder Benutzerkonten eingerichtet werden.

  • Abschließend wird das Client-System neu gebootet und steht komplett konfiguriert und mit allen notwendigen Softwarepaketen ausgestattet, bereit.

Automatische Windows-Installationen

Bei der Verwaltung von größeren Netzwerken kommt der Administrator nicht immer um die Verwaltung von Windows-Systemen herum. Natürlich sollte generell immer die Migration zu Linux im Vordergrund stehen, aber die Realität sieht leider anders aus. Es gibt verschiedene Softwareprojekte, die eine automatische Installation von Windows-Systemen erlauben. Auf Sourceforge finden Sie die Projekte http://unattended.sourceforge.net/ und http://ani.sourceforge.net/, die sich mit der Installation von Windows-Systemen beschäftigen.

2.9.2 Installation und Konfiguration von FAI

FAI wird durch entsprechende Pakete innerhalb der Debian-Distribution (ab Version 3.1 sarge“) bereitgestellt. Die Installation kann somit via apt-get erfolgen. Neben dem Paket fai, das die notwendigen Programme, Skripts und Konfigurationsdateien enthält, sollte auch das Paket fai-kernels mit speziell an FAI angepassten Kerneln installiert werden.


apt-get install fai fai-kernels
Reading Package Lists... 100%
Building Dependency Tree... Done
The following extra packages will be installed:
  debootstrap nfs-user-server
Suggested packages:
  debmirror
Recommended packages:
  netboot bootp tftpd
The following NEW packages will be installed:
  debootstrap fai fai-kernels nfs-user-server
0 packages upgraded, 4 newly installed, 0 to remove and 528 not upgraded.
Need to get 7575kB of archives.
After unpacking 9611kB of additional disk space will be used.
Do you want to continue? [Y/n] 

  

Wie hier gezeigt, wird auf dem FAI-Server zwingend ein NFS-Server benötigt. Über diesen wird das Root-Dateisystem für den Client während der Installation bereitgestellt. Andere Dienste wie beispielsweise DHCP und DNS oder FTP können auch auf anderen Systemen installiert werden. FAI stellt für den Client während der Installation ein NFS-Root-Verzeichnis zur Verfügung, aus dem alle weiteren Skripts aufgerufen werden. Dieses NFS-Root-Verzeichnis wird später mit debootstrap über das Kommando fai-setup erzeugt.

2.9.2.1 Konfiguration

Alle für FAI relevanten Parameter werden in der Datei /etc/fai/fai.conf eingestellt.

In der FAI-Konfigurationsdatei können Sie eine ganze Reihe Anpassungen vornehmen. Viele Variablen sind aber bereits mit sinnvollen Werten vorbelegt. Die Datei ist auch sehr gut kommentiert, so dass hier nur auf einige wichtige Einstellungen eingegangen werden soll.

Wichtige Einträge in der FAI-Konfiguration

installserver

Der Name des FAI-Installationsservers, dieser muss per DNS von den Clients aufgelöst werden können. Andernfalls kann hier auch die IP-Nummer des Systems angegeben werden.

httpserver oder ftpserver

Der Name eines Debian FTP- oder HTTP-Servers, der die benötigten Pakete bereitstellt.

debdist

Die zu installierende Debian-Distribution, also beispielsweise Woody“, sarge“ oder sid“.

FAI_DEBOOTSTRAP

Die Quelle, aus der die von debootstrap benötigten Pakete bezogen werden können. Dies kann ein lokales Verzeichnis oder ein FTP- / HTTP-Server sein.

FAI_DEBOOTSTRAP_OPTS

Zusätzliche Optionen für debootstrap. Hier können alle von debootstrap verwendeten Optionen angegeben werden, beispielsweise die zu verwendende Architektur oder auch zusätzlich zu installierende bzw. zu löschende Pakete.

FAI_SOURCES_LIST

Diese Variable, die über mehrere Zeilen gehen kann, beschreibt die auf den Clients und im NFS-Root zu verwendende Datei /etc/apt/sources.list. Diese kann die für APT üblichen Einträge enthalten.

NFSROOT_PACKAGES

Zusätzliche Pakete, die in das NFS-Root-Verzeichnis aufgenommen werden sollen. Dies kann beispielsweise für Serversysteme sinnvoll sein, dort können Tools wie lvm, raidtools oder xfstools aufgenommen werden. Hierbei ist zu beachten, dass solche Erweiterungen unter Umständen einen angepassten Kernel benötigen.

FAI_ROOTPW

Das verschlüsselte Passwort für den Systemadministrator. Vorgegeben ist das Passwort „fai“; ein verschlüsseltes Password kann aus der Datei /etc/shadow kopiert werden oder mit dem Programm makepasswd erzeugt werden.

KERNELPACKAGE

Ein Debian Kernel-Paket, das auf dem Client installiert wird. Dieses wird erst nach der Installation und einem ersten Reboot aktiviert. Während der Installation arbeitet der Client mit dem Kernel, der im NFS-Root installiert ist.

2.9.2.2 Setup

Das Kommando fai-setup sollte nach jeder Änderung der Datei /etc/fai/fai.conf aufgerufen werden. Im Wesentlichen wird hiermit das Kommando make-fai-nfsroot aufgerufen. Damit wird ein bestehendes NFS-Root-Verzeichnis gelöscht und neu angelegt.

Soll lediglich das NFS-Root-Verzeichnis neu generiert werden, so kann auch das Kommando make-fai-nfsroot eingesetzt werden.

Dabei ist insbesondere zu beachten, dass bei Verwendung der testing“-Distribution (momentan sarge“) Probleme auftauchen können. Dies liegt meistens daran, dass durch die rasante Entwicklung der Debian-Distribution die von debootstrap benötigten Pakete nicht mehr oder in neuen Konstellationen verfügbar sind. Hier hilft in den meisten Fällen ein Update von debootstrap auf dem FAI-Server, um die (internen) Listen mit dem Spiegel (Mirror) abzugleichen.

2.9.2.3 Erstellen und Anpassen der Klassen

Jeder zu installierende Client wird von FAI über den Hostnamen identifiziert. Für jede durchzuführende Aktion gibt es eine „DEFAULT“-Klasse, die aufgerufen wird, falls keine spezielle Klasse für diesen Client vorhanden ist.

Im Verzeichnis /usr/share/doc/fai/examples/simple/ finden Sie einfache Beispiele für die wichtigsten Klassen, die als Basis für Anpassungen dienen können.

Es ist jedoch zu empfehlen, einige wenige Klassen in jedem Fall anzupassen. Ein guter Einstieg ist dabei die Klasse zur Konfiguration der Festplatte.

2.9.2.3.1 Konfiguration der Festplatte

Der erste Arbeitsschritt bei der Installation eines Clients durch FAI ist in jedem Fall das Partitionieren der Festplatten und das Einrichten von Dateisystemen. Beide Schritte werden über Einträge in einer Klasse, beispielsweise /usr/share/doc/fai/examples/simple/disk_config/SMALL_IDE, definiert.


# generic disk configuration for one ide disk (size should not matter)
# disk size from 530Mb up to what you can buy today
#
# <type> <mountpoint> <size in mb> [mount options]     [;extra options]

disk_config hda
primary  /             30-100      rw,errors=remount-ro ;-c -j ext3
primary  /fai-boot     7           rw			; -j ext3
logical  swap          50-500      rw                   
logical  /var          50-1000     rw                   ; -m 5  -j ext3
logical  /tmp          50-1000     rw                   ;-m 0 -j ext3
logical  /usr          300-4000    rw                   ; -j ext3
logical  /home         50-4000     rw,nosuid            ;-m 1 -j ext3
logical  /scratch      0-          rw,nosuid            ;-m 0 -i 50000 -j ext3

	  

Diese Datei kann Konfigurationen für mehrere Festplatten enthalten. Für jede ist ein entsprechender Abschnitt (in diesem Beispiel zunächst disk_config hda, für die zweite Festplatte disk_config hdb usw.) mit der gewünschten Partitionierung notwendig. In der ersten Spalte wird zunächst angegeben, ob eine primäre oder eine logische Partition angelegt werden soll. Dabei werden die Partitionsnummern aufsteigend anhand der Reihenfolge vergeben.

Die zweite Spalte beschreibt das Verzeichnis im Dateisystem, an dem diese Partition später in das Dateisystem eingehängt werden soll.

Die nächste Spalte beschreibt die Größe der Partition in Megabyte. Dabei können feste Werte ebenso wie Bereiche angegeben werden. Die Aufteilung wird dann anhand des tatsächlichen Festplattenplatzes prozentual vorgenommen. Wird keine maximale Größe angegeben, so wird die Partition mit der maximal möglichen Größe angelegt. Sollen einzelne Partitionen auf der Festplatte erhalten bleiben (beispielsweise weil auf diesen bereits ein anderes Betriebsystem oder Daten liegen), so können diese Partitionen geschützt werden. Hierzu ist die Option preserve mit der entsprechenden Partitionsnummer (also beispielsweise preserve3 anzugeben. Erweiterte Partitionen können auf diesem Wege nicht geschützt werden, wohl aber die in den Partitionen liegenden Bereiche. Ein „bootable flag“ wird ebenfalls nicht gerettet. Partitionen, die mit preserve gekennzeichnet werden, werden während der Installation read-only gemountet.

Die vierte Spalte beeinhaltet die Optionen für den mount-Befehl. Abschließend können in der letzten Spalte hinter dem Semikolon zusätzliche Optionen angeben werden, die bei der Erstellung des Dateisystems benutzt werden sollen. Hier kann beispielsweise der Typ des Dateisystems (ext2, ext3 oder auch XFS) ausgewählt werden. Hier sind folgende Werte erlaubt:

  • boot: Markiert diese Partition als Boot-Partition.

  • -i: Angabe der Bytes pro Inode (nur für ext2- und ext3-Dateisysteme)

  • -m <blöcke>: Anzahl der für den Administrator reservierten Blöcke (nur für ext2- und ext3-Dateisysteme)

  • -j: Erzeugt ein ext3-Journal

  • -c: Überprüft die Festplatte beim Formatieren auf defekte Blöcke

  • ext2: Statt auto wird der Eintrag ext2 in der Datei /etc/fstab verwendet

  • ext3: Statt auto wird der Eintrag ext3 in der Datei /etc/fstab verwendet

  • swap: Bezeichnet eine Swap-Partition

  • dosfat16: Erzeugt ein DOS 16-Bit-Dateisystem

  • winfat32: Erzeugt ein Windows 95-FAT32-Dateisystem

  • reiser: Erzeugt ein Reiser-Dateisystem

  • xfs: Richtet ein XFS-Dateisystem ein

  • format: Formatiert die Partition in jedem Fall. Auch wenn preserve angegeben ist.

  • writeable: Bindet eine als preserve markierte Partition zum Lesen und Schreiben in das System ein

  • lazyformat: Formatiert die Partition nur, wenn sie verschoben wurde

Bei der Verwendung eines XFS-Dateisystems ist zu beachten, dass im NFS-Root-Verzeichnis das Paket xfs-utils installiert sein muss. Soll das XFS-Dateisystem auch für sehr kleine Partitionen, wie beispielsweise /boot, eingesetzt werden, dann denken Sie daran, dass die Mindestgröße 70 Mbyte betragen muss.

2.9.2.4 Paketquellen

FAI benötigt während der Installation eine oder mehrere Quellen, aus denen Debian-Pakete bezogen werden können. Wenn ein direkter Zugang zum Internet besteht, so können natürlich die öffentlichen Debian-Server verwendet werden. Ein Debian-Spiegel im lokalen Netz, beispielsweise auf dem FAI-Server, kann jedoch die Installationzeiten deutlich verringern, wenn mit einer hohen Bandbreite auf diesen Server zugegriffen werden kann.

Die Installation und Konfiguration eines FTP-Servers wird am Beispiel von ProFTP ebenfalls an anderer Stelle in diesem Buch beschrieben. Diese Informationen können ebenso für den Einsatz zusammen mit FAI genutzt werden.

2.9.3 Installation eines Clients

Das Booten eines Clients kann auf unterschiedliche Arten erfolgen. Für die ersten Versuche ist sicherlich die Bootdiskette ein sehr einfacher, aber auch langsamer Weg. Eleganter geht es mit einer bootfähigen Netzwerkkarte. Diese erfordert aber zusätzliche Konfigurationsarbeit am Server. Dort muss der DHCP-Server entsprechend angepasst werden.

2.9.3.1 Bootfloppy

Nach dem Erstellen des NFS-Root-Verzeichnisses auf dem Server kann eine für alle Clients passende oder aber auch für jeden Client individuelle Bootdiskette erzeugt werden. Leider sind die Ladezeiten des Linux-Kernels von diesem Medium etwas lang, dafür sind aber keine weiteren Konfigurationsschritte notwendig. Für die ersten Experimente sollten Sie auf dieses Medium zurückgreifen.

Die Bootdiskette muss auf dem FAI-Server erzeugt werden. Wenn eine Disketten im Laufwerk /dev/fd0 liegt, kann dies mit dem Kommando make-fai-bootfloppy erfolgen. Es können verschiedene Optionen angegeben werden. Neben der Auswahl der Bootloaders (normalerweise GRUB) oder des Angabe eines festen Servers sind insbesondere die für die Steuerung von FAI relevanten Optionen interessant.

Nach dem Kommando make-fai-bootfloppy können, in Anführungszeichen stehend, beliebige FAI-Variablen gesetzt werden. Diese werden beim Start von FAI ausgewertet, und die entsprechenden Umgebungsvariablen werden gesetzt.

Eine Übersicht aller Optionen erhält man mit make-fai-bootfloppy -h:

	  
	  
make-fai-bootfloppy, create a boot floppy for FAI. version 2.3, 9-oct-2003

   Copyright (C) 2000-2003 by Thomas Lange

   Usage: make-fai-bootfloppy [parameter]

   -d LABEL   use LABEL when selection the default boot kernel (and parameters).
              a for any boot protocol (kernel tries all compiled in)
	      b for BOOTP
	      d for DHCP
	      f use fixed IP, needs companion option -s
              r for RARP
	      Without this option rarp and bootp are used.
   -h         print this message.
   -f FILE    make a 1440k floppy image in FILE
   -g         use GRUB loader on bootfloppy (default)
   -l         use LILO loader on bootfloppy
   -m DIR     use DIR as mountpoint [/floppy]
   -s HOST    use this static ip for FAI client; try to get all info from DNS
   -v         print verbose output

DESCRIPTION
   Creates a boot floppy for booting a FAI install client.
   No arguments are needed but you must be root.
   You may need to use "nfsroot=serverip:path" if you use RARP or if your
   BOOTP or DHCP server does not pass that info to the clients.
   All parameters are passed to the kernel via append in lilo.conf,
   or kernel commandline in grub.conf .

EXAMPLE
    Create a generic boot floppy for James ;-)
    # make-fai-bootfloppy "FAI_FLAGS=verbose,createvt,sshd BOND=007"

    To make a boot floppy for my old SMC EtherCard Plus Elite 16T, I use
    # make-fai-bootfloppy "reserve=0x300,32 ether=10,0x300,eth0"

    To make a boot floppy using the DHCP protocol
    # make-fai-bootfloppy -d d

	  

Wie die Beispiele am Ende schon zeigen, lassen sich die vielfältigsten Variationen von Bootdisketten für alle möglichen Einsatzzwecke erzeugen.

2.9.4 FAI BootCD

FAI BootCD (http://members.iinet.net.au/~niall/fai/) dient zum Erstellen von bootfähigen CD-ROMs, die eine komplette FAI-Umgebung inklusive aller benötigten Softwarepakete beinhalten. Somit kann von einer CD eine komplette Installation auch ohne eine Verbindung zu einem Netzwerk durchgeführt werden.

FAI BootCD greift auf viele Werkzeuge aus dem FAI-Paket zurück, es ist also zwingend erforderlich, dass FAI bereits auf dem System installiert und konfiguriert ist, auf dem FAI BootCD eingesetzt werden soll. Bevor also die ersten Schritte mit FAI BootCD unternommen werden, muss es möglich sein, aus dem FAI-System heraus eine komplette Installation durchzuführen.

Ist dies der Fall, so muss zunächst die FAI-Konfigurationsdatei für FAI BootCD bereitgestellt werden.

cp -f /etc/fai/fai.conf /etc/fai-bootcd/fai.conf

In dieser Datei können nun Anpassungen vorgenommen werden. Beispielsweise kann es sinnvoll sein, zwei Verzeichnisse für die NFS-Root-Umgebungen für FAI und FAI BootCD vorzuhalten.

2.9.4.1 Systemkernel

Der Kernel auf dem System, auf dem das CD-Image erzeugt wird, muss die Unterstützung für das Loopback-Device als Modul enthalten. Zukünftige Versionen von mkinitrd-cd werden hoffentlich auch die Verwendung dieser Funktion als festen Bestandteil des Kernels erlauben.

Weiterhin muss die Unterstützung für das RAM-Dateisystem im Kernel enthalten sein.

Die notwendigen Optionen in der Kernel-Konfiguration (die Datei .config im Kernel-Source-Verzeichnis) lauten:

CONFIG_BLK_DEV_LOOP=m
CONFIG_CRAMFS=y

2.9.4.2 FAI BootCD-Kernel

Die bisher im Paket fai-kernel enthaltenen Kernel verfügen nicht über alle von FAI BootCD benötigten Funktionen. Es ist also ein Kernel zu erstellen, der die folgenden Funktionen enthält:


CONFIG_BLK_DEV_INITRD=y
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_ISO9660_FS=y
CONFIG_EXT2_FS=y
CONFIG_ZISOFS_FS=y

Mit dieser Konfiguration wird nun ein Debian-Kernel-Paket (mittels make-kpkg) erzeugt und über die Variable KERNELPACKAGE in der Datei /etc/fai-bootcd/fai.conf eingebunden.

Dieser Kernel wird ausschließlich auf der FAI-Boot-CD verwendet und lediglich zur Installation verwendet. Soll dieser Kernel auch während der Installation auf dem Zielsystem installiert werden, so müssen Sie dafür sorgen, dass alle benötigten Treiber (insbesondere für IDE/SCSI-Festplatten, aber natürlich möglichst auch für alle anderen Hardwarekomponenten) in diesem Kernel enthalten sind. Natürlich kann aber auf den Zielsystemen auch jeder andere Kernel installiert werden.

2.9.4.3 Anpassungen an der Konfiguration

Im Verzeichniss /etc/fai-bootcd/ können nun Anpassungen vorgenommen werden. In der Datei id.txt kann ein Text definiert werden, um die CD auf Systemen mit mehreren CD-ROM-Laufwerken eindeutig zu erkennen.

Die Datei bootmsg.txt enthält einen Text, der bei Verwendung von ISOLINUX bzw. SYSLINUX als Bootloader angezeigt wird. Normalerweise wird aber GRUB als Bootloader eingesetzt, so dass diese Datei ignoriert wird.

In der Datei updatebase.DEFAULT sind Angaben für FAI hinterlegt, um das Verzeichniss /fai/ auf der CD-ROM während der Installation in die chroot-Umgebung einzubinden. Wird eine weitere Datei updatebase.DEFAULT im Verzeichniss FAI_CONFIGDIR/hooks/ verwendet, so können diese beiden kombiniert werden.

Die Datei menu.lst ist die Konfigurationsdatei für den GRUB-Bootloader. Die Voreinstellung ist so gewählt, dass der Linux-Kernel ( /vmlinuz) von der zweiten Partition der ersten Festplatte (hd0,1) geladen wird. Dies bewirkt, dass bei eingelegter FAI-Boot-CD, zunächst geprüft wird, ob auf der lokalen Festplatte bereits ein System installiert ist. Ist dies der Fall, so wird dieses gestartet. Ist kein System (Kernel-Image) vorhanden, so wird eine Neuinstallation durchgeführt.

Soll also ein System neu installiert werden, müssen Sie einfach das Kernel-Image auf der Platte entfernen, und schon kann von der FAI-Boot-CD direkt gebootet werden.

In der Datei fai-variables.conf sind FAI-Variablen enthalten, die normalerweise von der NFS-Root-Umgebung oder der FAI-Bootdiskette bereitgestellt werden. Hier können Variablen angepasst werden, die die bisherigen Werte überschreiben.

2.9.4.4 Erzeugen der ISO-Datei

Nun sind alle Vorbereitungen getroffen, um eine FAI-Boot-CD zu erzeugen: Das Kommando make-fai-bootcd -r -n erzeugt zunächst ein neues NFS-Root-Verzeichnis auf Basis der Klassen, die über FAI_CONFIGDIR definiert sind. Weiterhin wird ein Paket-Repository angelegt (mit make-fai-repository), das alle notwendigen Softwarepakete enthält.

Dieser Vorgang wird eine Datei fai-bootcd.iso im aktuellen Verzeichnis erzeugen. Diese Datei kann direkt auf eine CD-ROM gebrannt werden. Alternativ kann auch das Kommando

make-fai-bootcd -r -n -b
		

verwendet werden, dieses ruft abschließend cdrecord auf und schreibt das Image direkt auf eine CD.

Für die ersten Versuche ist es ratsam, das Image nicht sofort zu brennen, sondern die erzeugte Datei zunächst via Loopback-Device zu mounten und einen Blick auf den Inhalt zu werfen. Das Kommando hierfür lautet:

mount -o loop ./fai-bootcd.iso /mnt
		

2.9.4.5 Starten von der FAI-Boot-CD

Die von FAI BootCD verwendete GRUB-Konfiguration prüft beim Systemstart zunächst, ob bereits ein Kernel auf der Festplatte vorhanden ist. Ist dies nicht der Fall, so wird eine Installation durchgeführt. Andernfalls wird das vorhandene System gestartet, falls nicht aus dem Menü der Eintrag cdrom gewählt wird.

Nach Abschluss der Installation wird das neue System automatisch neu gestartet. Es ist ratsam, die CD-ROM zu entfernen, insbesondere wenn der Kernel nicht wie beschrieben auf der zweiten Partition der ersten Platte installiert wurde.