Changes in chapter07/chroot.xml [7152faa:e49e2ea]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter07/chroot.xml
r7152faa re49e2ea 1 <?xml version="1.0" encoding=" UTF-8"?>1 <?xml version="1.0" encoding="ISO-8859-1"?> 2 2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ … … 7 7 8 8 <sect1 id="ch-tools-chroot"> 9 <?dbhtml filename=" chroot.html"?>9 <?dbhtml filename="env.html"?> 10 10 11 <title> Entering the ChrootEnvironment</title>11 <title>Setting up the Environment</title> 12 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 and 15 finish installing the temporary tools. This environment will also be 16 used to install 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 nothing but temporary 19 tools:</para> 13 <para>The current shell is also the <command>init</command> process, 14 so exiting from it will cause kernel panic. Prevent exiting from the 15 shell accidentally:</para> 20 16 21 <screen role="nodump"><userinput>chroot "$LFS" /usr/bin/env -i \ 17 <screen role="nodump"><userinput>enable -n exit 18 readonly IGNOREEOF=1000</userinput></screen> 19 20 <para>The standard I/O streams of the initial shell process is connected 21 with <filename>/dev/console</filename>. However, the testsuite of some 22 packages may expect the standard I/O streams to be connected with a 23 <quote>real</quote> TTY device node. Spawn a new shell process on the 24 TTY device with <command>agetty</command>:</para> 25 26 <screen role="nodump"><userinput>agetty -n -l /bin/bash <replaceable>tty0</replaceable></userinput></screen> 27 28 <para>If you are working via a serial console, replace 29 <replaceable>tty0</replaceable> with the name of the serial console 30 device node, for example <literal>ttyS0</literal>.</para> 31 32 <para>The command above spawns a new shell process on the TTY device 33 specified in the command, and the initial shell process will run in 34 background as an init process with very limited functions. The new shell 35 process will output:</para> 36 37 <screen role="nodump"><computeroutput>bash: cannot set terminal process group (-1): Inappropriate ioctl for device 38 bash: no job control in this shell</computeroutput></screen> 39 40 <para>This is normal because the shell is not assigned with a 41 controlling terminal yet. Now set up the controlling terminal and 42 some environment variables:</para> 43 44 <screen><userinput>exec setsid -c /usr/bin/env -i \ 22 45 HOME=/root \ 23 46 TERM="$TERM" \ 24 PS1='(lfs chroot) \u:\w\$ '\47 PS1='(lfs) \u:\w\$ ' \ 25 48 PATH=/usr/bin:/usr/sbin \ 26 49 MAKEFLAGS="-j<replaceable>$(nproc)</replaceable>" \ 27 50 TESTSUITEFLAGS="-j<replaceable>$(nproc)</replaceable>" \ 28 51 /bin/bash --login</userinput></screen> 52 53 <para>The command replaces the current shell process with a new shell 54 process, with controlling terminal set up.</para> 29 55 30 56 <para> … … 39 65 40 66 <para>The <parameter>-i</parameter> option given to the <command>env</command> 41 command will clear all the variables in the chrootenvironment. After that, only67 command will clear all the variables in the environment. After that, only 42 68 the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and 43 69 <envar>PATH</envar> variables are set again. The 44 <parameter>TERM=$TERM</parameter> construct setsthe <envar>TERM</envar>45 variable inside chroot to the same value as outside chroot. This variable is70 <parameter>TERM=$TERM</parameter> construct will set the <envar>TERM</envar> 71 variable to the default value specified by <command>agetty</command>. This variable is 46 72 needed so programs like <command>vim</command> and <command>less</command> 47 73 can operate properly. If other variables are desired, such as 48 74 <envar>CFLAGS</envar> or <envar>CXXFLAGS</envar>, this is a good place to set 49 75 them.</para> 50 51 <para>From this point on, there is no need to use the52 <envar>LFS</envar> variable any more because all work will be restricted53 to the LFS file system; the <command>chroot</command> command runs the54 Bash shell with the root55 (<filename class="directory">/</filename>) directory set to56 <filename class='directory'>$LFS</filename>.</para>57 76 58 77 <para>Notice that <filename class="directory">/tools/bin</filename> is not … … 64 83 <filename>/etc/passwd</filename> file has not been created yet.</para> 65 84 85 <para>Now set up a temporary hostname, which is required by test suite of 86 some packages:</para> 87 88 <screen><userinput>hostname lfs</userinput></screen> 89 66 90 <note> 67 91 <para>It is important that all the commands throughout the remainder of this 68 chapter and the following chapters are run from within the chroot69 environment. If you leave this environment for any reason (rebooting for92 chapter and the following chapters are run from within the environment 93 we've set. If you leave this environment for any reason (rebooting for 70 94 example), ensure that the virtual kernel filesystems are mounted as 71 explained in <xref linkend="ch-tools- bindmount"/> and <xref72 linkend="ch-tools-kernfsmount"/> and enter chroot again before continuing73 with the installation.</para>95 explained in <xref linkend="ch-tools-kernfsmount"/> and 96 <xref linkend="ch-tools-devadjust"/> and set up the environment again before 97 continuing with the installation.</para> 74 98 </note> 75 99
Note:
See TracChangeset
for help on using the changeset viewer.