Przejście do środowiska chroot

Nadszedł czas na przejście do środowiska chroot żeby rozpocząć instalowanie potrzebnych pakietów. Zanim jednak wykonasz chroot, musisz uzyskac uprawnienia root'a, bo tylko root może wykonac komendę chroot.

Tak jak poprzednio, upewnij się że zmienna środowiskowa LFS ma właściwą wartość wykonując echo $LFS i sprawdzając, że wskazuje na punkt montowania partycji LFS -- w naszym przykładzie /mnt/lfs.

Uzyskaj uprawnienia root'a i wykonaj co następuje, żeby przejść do środowiska chroot:

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

Opcja -i w komendzie env wyczyści wszystkie zmienne w środowisku chroot. Później tylko zmienne HOME, TERM, PS1 i PATH zostaną określone na nowo. Konstrukcja TERM=$TERM ustali wartość zmiennej TERM wewnątrz chroot na taką samą, jaka była na zewnątrz chroot; jest ona potrzebna programom takim jak vim albo less, do prawidłowego działania. Jeśli potrzebujesz jeszcze innych zmiennych, takich jak CFLAGS lub CXXFLAGS, to jest dobre miejsce na ich ponowne ustawienie.

Od teraz nie ma już potrzeby używania zmiennej LFS, ponieważ wszystko, co zrobisz będzie ograniczone do systemu plików LFS -- bo główny katalog wg. powłoki to właśnie wartość $LFS, jaka została przekazana do komendy chroot.

Zauważ, że /tools/bin jest na końcu zmiennej PATH. To znaczy, że tymczasowe narzędzie nie będzie już używane, gdy zainstaluje się jego końcowa wersja. Well, at least when the shell doesn't remember the locations of executed binaries -- for this reason hashing is switched off a bit further on.

Musisz upewnić się, że komendy z reszty tego rozdziału i dalszych będą wykonywane w środowisku chroot. Jeśli z niego wyjdziesz z jakiegoś powodu (na przykłąd rebootowanie komputera), to musisz pamiętać, żeby chroot'ować się ponownie i zamontowac systemy plików proc i devpts (omówione później) zanim weźmiesz się do kontynuacji instalacji.

Zauważ, że znak zachęty powłoki bash powie "I have no name!" -- "nie mam nazwy". To noramlne, ponieważ plik /etc/passwd nie został jeszcze utworzony.