Von Grund auf
Linux aus den Quellen selber bauen mit LFS 6.3
LFS-Basissystems installieren
Nun endlich installieren Sie das eigentliche LFS-System, wie es später als Produktivsystem laufen soll. Kapitel 6 des LFS-Buches erklärt, wie das funktioniert. Zunächst erstellen Sie mit mkdir -pv $LFS/{dev,proc,sys} die Verzeichnisse, in die Sie die notwendigen virtuellen Kernel-Dateisysteme mounten. Außerdem benötigt Udev die Gerätedateien /dev/console und /dev/null, die Sie durch die folgenden Befehle anlegen:
# mknod -m 600 $LFS/dev/console c 5 1 # mknod -m 666 $LFS/dev/null c 1 3
Zum Erstellen der Gerätedateien in /dev bedienen Sie sich der Option --bind des Mount-Befehls, um das vorhandene Verzeichnis /dev des Host-Systems über den Befehl mount -v --bind /dev $LFS/dev nochmals einzubinden. Details hierzu finden sich im Kapitel 6.2.2. Darüber hinaus hängen Sie noch die virtuellen Kernel-Dateisysteme über die folgenden Befehle ein:
# mount -vt devpts devpts $LFS/dev/pts # mount -vt tmpfs shm $LFS/dev/shm # mount -vt proc proc $LFS/proc # mount -vt sysfs sysfs $LFS/sys
Nun steht alles bereit, um die neue Arbeitsumgebung zu nutzen. Mit Chroot legen Sie temporär ein beliebiges Verzeichnis im Dateisystem als virtuelles Wurzelverzeichnis fest. Haben Sie alle Schritte dem Beispiel entsprechend vorgenommen, wählen Sie /mnt/lfs als Chroot-Environment. Den exakten Befehl finden Sie in Listing 2.
chroot "$LFS" /tools/bin/env -i HOME=/root TERM="$TERM" PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash --login +h
Damit haben Sie gleich die richtigen Parameter für Ihre neue Umgebung definiert. Im Anschluss erstellen Sie gemäß den Angaben im Kapitels 6.5 die (FHS-konforme) Ordnerstruktur des neuen LFS-Systems.
Nun erzeugen Sie einige notwendige Dateien (siehe Kapitel 6.6) wie zum Beispiel /etc/mtab, /etc/passwd, /etc/group sowie einige symbolische Links auf verschiedene Programme, die anderen Tools an bestimmten Stellen im Dateisystem erwarten. Anschließend geht es an die Installation der einzelnen Pakete, die wiederum in der gewohnten Art vor sich geht.
Haben Sie alle Pakete installiert, nutzen Sie als nächstes die Gelegenheit, um überflüssige Debugging-Symbole aus alle Binaries zu entfernen (Kapitel 6.59). So sparen Sie rund 90 MByte Platz. Anschließend heißt es Abschied nehmen von der temporären Arbeitsumgebung (der Toolchain), die sich im Verzeichnis /tools befindet. Dies geschieht durch einen geänderten Chroot-Befehl, den Sie ab sofort eingeben, um in die neue Chroot-Umgebung zu wechseln (Listing 3). Anschließend dürfen Sie das Verzeichnis /tools löschen.
chroot "$LFS" /usr/bin/env -i HOME=/root TERM="$TERM" PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login
Bootskripte einrichten
Das Paket lfs-bootscripts-6.3 enthält diverse Skripte zum Starten und Stoppen des Systems beim Booten und Herunterfahren. Einige Dinge erfordern vermutlich Anpassungen an das individuelle System, das meiste ist direkt lauffähig. Die Lektüre des Kapitels 7 insgesamt lohnt sich in jedem Fall, wenn Sie sich für die Zusammenhänge zentraler Kernkomponenten Ihres Linux-Systems interessieren. Scheuen Sie nicht der Mühe, die fehlenden notwendigen Konfigurationsdateien (etwa für das Netzwerk) zu erstellen. Der Lerneffekt ist immens.



