source: chapter07/chroot.xml@ 69c4524

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 arm bdubbs/gcc13 multilib renodr/libudev-from-systemd s6-init trunk 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 69c4524 was d7a9421, checked in by Douglas R. Reno <renodr@…>, 3 years ago

Merge Xi's changes into trunk
Update to meson-0.58.0
Update to systemd-248
Update to gcc-11.1.0
Update to linux-5.12.1
Update to iproute2-5.12.0
Update to Python-3.9.5
Make /bin, /sbin, and /lib symlinks to their counterparts in /usr.
Thanks again for a significant portion of this work goes to Xi, I only
really merged it and made a couple of modifications for my updates. To
LFS 11.x we go!

  • Property mode set to 100644
File size: 3.2 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-tools-chroot">
9 <?dbhtml filename="chroot.html"?>
10
11 <title>Entering the Chroot Environment</title>
12
13 <para>Now that all the packages which are required to build the rest of the
14 needed tools are on the system, it is time to enter the chroot environment to
15 finish installing the remaining temporary tools. This environment will be in
16 use also for installing the final system. As user <systemitem
17 class="username">root</systemitem>, run the following command to enter the
18 environment that is, at the moment, populated with only the temporary
19 tools:</para>
20
21<screen role="nodump"><userinput>chroot "$LFS" /usr/bin/env -i \
22 HOME=/root \
23 TERM="$TERM" \
24 PS1='(lfs chroot) \u:\w\$ ' \
25 PATH=/usr/bin:/usr/sbin \
26 /bin/bash --login +h</userinput></screen>
27
28 <para>The <parameter>-i</parameter> option given to the <command>env</command>
29 command will clear all variables of the chroot environment. After that, only
30 the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and
31 <envar>PATH</envar> variables are set again. The
32 <parameter>TERM=$TERM</parameter> construct will set the <envar>TERM</envar>
33 variable inside chroot to the same value as outside chroot. This variable is
34 needed for programs like <command>vim</command> and <command>less</command>
35 to operate properly. If other variables are desired, such as
36 <envar>CFLAGS</envar> or <envar>CXXFLAGS</envar>, this is a good place to set
37 them again.</para>
38
39 <para>From this point on, there is no need to use the
40 <envar>LFS</envar> variable anymore because all work will be restricted
41 to the LFS file system. This is because the Bash shell is told that
42 <filename class="directory">$LFS</filename> is now the root
43 (<filename class="directory">/</filename>) directory.</para>
44
45 <para>Notice that <filename class="directory">/tools/bin</filename> is not
46 in the <envar>PATH</envar>. This means that the cross toolchain will no longer be
47 used in the chroot environment. This occurs when the shell does not
48 <quote>remember</quote> the locations of executed binaries&mdash;for this
49 reason, hashing is switched off by passing the <parameter>+h</parameter> option
50 to <command>bash</command>.</para>
51
52 <para>Note that the <command>bash</command> prompt will say
53 <computeroutput>I have no name!</computeroutput> This is normal because the
54 <filename>/etc/passwd</filename> file has not been created yet.</para>
55
56 <note>
57 <para>It is important that all the commands throughout the remainder of this
58 chapter and the following chapters are run from within the chroot
59 environment. If you leave this environment for any reason (rebooting for
60 example), ensure that the virtual kernel filesystems are mounted as
61 explained in <xref linkend="ch-tools-bindmount"/> and <xref
62 linkend="ch-tools-kernfsmount"/> and enter chroot again before continuing
63 with the installation.</para>
64 </note>
65
66</sect1>
Note: See TracBrowser for help on using the repository browser.