Betreten der chroot Umgebung

Es ist nun an der Zeit, die chroot Umgebung zu betreten um mit dem installieren der benötigten Pakete zu beginnen. Bevor sie chroot'en können, müssen sie erst root werden, denn nur root kann das chroot Kommando benutzen.

So wie schon einmal, überprüfen sie das die LFS Umgebungsvariable korrekt ist indem sie echo $LFS ausführen und sicherstellen, das sie den Pfad zum Mount Punkt ihrer LFS Partition zeigt. Das ist /mnt/lfs wenn sie unserem Beispiel gefolgt sind.

Werden sie root und führen sie das folgende Kommando aus um die chroot Umgebung zu betreten:

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

Die -i Option zu env löscht alle Variablen in der chroot Umgebung. Danach werden nur die HOME, TERM, PS1 und PATH Variable wieder gesetzt. TERM=$TERM setzt die TERM Variable in der chroot Umgebung auf den gleichen Wert wie ausserhalb von chroot, diese Variable wird für Programme wie vim und less zur korrekten Funktion benötigt. Wenn sie andere Variablen wie CFLAGS oder CXXFLAGS brauchen ist dies ein guter Platz um sie erneut zu setzen.

Von nun an brauchen wir die LFS Variable nicht mehr weil alles was sie tun ausschliesslich auf das LFS System beschränkt ist -- weil das was die Shell für das / Verzeichnis hält, in Wirklichkeit der Wert der LFS Variable ist, welcher wiederum dem chroot Kommando übergeben wurde.

Beachten sie, das /tools/bin als letztes in der PATH Variable steht. Das bewirkt, das ein temporäres Werkzeug nicht mehr benutzt wird sobald seine endgültige Version installiert ist. Nun, zumindest wenn die Shell sich nicht die Standorte von ausführbaren Dateien merkt -- aus diesem Grund wird die hash Funktion etwas weiter hinten in der Befehlszeile abgeschaltet.

Sie müssen alle Kommandos im Rest des Kapitels in der chroot Umgebung ausführen. Wenn sie die chroot Umgebung aus irgendeinem Grund verlassen (Neustart zum Beispiel), dann denken sie daran die chroot Umgebung wieder zu betreten und das proc und devpts Dateisystem einzuhängen (das wird später behandelt) bevor sie mit der Installation weitermachen.

Die Bash Eingabeaufforderung wird "I have no name!" ausgeben. Das ist normal weil die Datei /etc/passwd noch nicht erstellt wurde.