source: chapter06/chroot.xml@ f27835d

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.0 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk v5_0 v5_1 v5_1_1 xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since f27835d was 21ba4e3, checked in by Greg Schafer <greg@…>, 21 years ago

Internal markup reworking to fix the extraneous whitespace problem in the "tidy generated" web site pages. Essentially replace all ocurrences of <para><screen> with <screen> (and of course the matching closing tags).

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2958 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 2.7 KB
Line 
1<sect1 id="ch06-chroot">
2<title>Entering the chroot environment</title>
3<?dbhtml filename="chroot.html" dir="chapter06"?>
4
5<para>It is time to enter the chroot environment in order to begin installing
6the packages we need. Before you can chroot, however, you need to become
7<emphasis>root</emphasis>, since only <emphasis>root</emphasis>
8can execute the <userinput>chroot</userinput> command.</para>
9
10<para>Just like earlier, ensure the LFS environment variable is set up properly
11by running <userinput>echo $LFS</userinput> and ensuring it shows the path to
12your LFS partition's mount point, which is
13<filename class="directory">/mnt/lfs</filename> if you followed our
14example.</para>
15
16<para>Become <emphasis>root</emphasis> and run the following command
17to enter the chroot environment:</para>
18
19<screen><userinput>chroot $LFS /tools/bin/env -i \
20&nbsp;&nbsp;&nbsp;&nbsp;HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
21&nbsp;&nbsp;&nbsp;&nbsp;PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
22&nbsp;&nbsp;&nbsp;&nbsp;/tools/bin/bash --login</userinput></screen>
23
24<screen><userinput>set +h</userinput></screen>
25
26<para>The <userinput>-i</userinput> option given to the
27<userinput>env</userinput> command will clear all variables of the chroot
28environment. After that, only the HOME, TERM, PS1 and PATH variables are
29set again. The TERM=$TERM construct will set the TERM variable inside chroot
30to the same value as outside chroot; this variable is needed for programs
31like vim and less to operate properly. If you need other variables present,
32such as CFLAGS or CXXFLAGS, this is a good place to set them again.</para>
33
34<para>Also note the use of the set +h directive. This tells bash to not use
35its internal path hashing. Without this directive, bash will remember paths
36to binaries. Since as we go thru chapter 6, we want to use our newly compiled
37binaries as soon as they are installed, we turn off this function.</para>
38
39<para>From this point on there's no need to use the LFS variable anymore,
40because everything you do will be restricted to the LFS file system -- since
41what the shell thinks is <filename class="directory">/</filename> is actually
42the value of <filename class="directory">$LFS</filename>, which was passed to
43the chroot command.</para>
44
45<para>You have to make sure all the commands in the rest of this chapter and
46in the following chapters are run from within the chroot environment.
47If you ever leave this environment for any reason (rebooting for example),
48you must remember to again enter chroot and mount the proc and devpts
49filesystems (discussed later) before continuing with the installations.</para>
50
51<para>Note that the bash prompt will say "I have no name!" This is
52normal, as the <filename>/etc/passwd</filename> file has not been
53created yet.</para>
54
55</sect1>
56
Note: See TracBrowser for help on using the repository browser.