| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [  <!ENTITY % general-entities SYSTEM "../general.ent">  %general-entities;]><sect1 id="ch-system-chroot"><title>Entering the chroot environment</title><?dbhtml filename="chroot.html"?><para>It is time to enter the chroot environment in order to begin buildingand installing your final LFS system. Still as <emphasis>root</emphasis> runthe following command to enter the small world that is, at the moment,populated with only the temporary tools:</para><screen><userinput>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</userinput></screen><para>The <parameter>-i</parameter> option given to the<command>env</command> command will clear all variables of the chrootenvironment. After that, only the HOME, TERM, PS1 and PATH variables areset again. The <parameter>TERM=$TERM</parameter> construct will set the TERM variable inside chrootto the same value as outside chroot; this variable is needed for programslike <command>vim</command> and <command>less</command> to operateproperly. If you need other variables present, such as CFLAGS or CXXFLAGS,this is a good place to set them again.</para><para>From this point on there's no need to use the LFS variable anymore,because everything you do will be restricted to the LFS file system -- sincewhat the shell thinks is <filename class="directory">/</filename> is actuallythe value of <filename class="directory">$LFS</filename>, which was passed tothe chroot command.</para><para>Notice that <filename class="directory">/tools/bin</filename> comeslast in the PATH. This means that a temporary tool will not be used any moreas soon as its final version is installed. Well, at least when the shelldoesn't remember the locations of executed binaries -- for this reason hashingis switched off by passing the <parameter>+h</parameter> option to<command>bash</command>.</para><para>You have to make sure all the commands in the rest of this chapter andin the following chapters are run from within the chroot environment.If you ever leave this environment for any reason (rebooting for example),you must remember to first mount the <systemitem class="filesystem">proc</systemitem>and <systemitem class="filesystem">devpts</systemitem> file systems (discussedin the previous section) <emphasis>and</emphasis> enter chroot again beforecontinuing with the installations.</para><para>Note that the <command>bash</command> prompt will say <computeroutput>I have no name!</computeroutput> This isnormal, as the <filename>/etc/passwd</filename> file has not been created yet.</para></sect1>
 |