Changes in chapter07/chroot.xml [490dc153:a08f031]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter07/chroot.xml
r490dc153 ra08f031 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 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> 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 controlling terminal and 42 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 /bin/bash --login</userinput></screen> 27 50 51 <para>The command replace the current shell process with a new shell 52 process, with controlling terminal set up.</para> 53 28 54 <para>The <parameter>-i</parameter> option given to the <command>env</command> 29 command will clear all variables of the chrootenvironment. After that, only55 command will clear all variables of the environment. After that, only 30 56 the <envar>HOME</envar>, <envar>TERM</envar>, <envar>PS1</envar>, and 31 57 <envar>PATH</envar> variables are set again. The 32 58 <parameter>TERM=$TERM</parameter> construct will set the <envar>TERM</envar> 33 variable inside chroot to the same value as outside chroot. This variable is59 variable to the default value specified by <command>agetty</command>. This variable is 34 60 needed for programs like <command>vim</command> and <command>less</command> 35 61 to operate properly. If other variables are desired, such as … … 37 63 them again.</para> 38 64 39 <para>From this point on, there is no need to use the40 <envar>LFS</envar> variable anymore because all work will be restricted41 to the LFS file system. This is because the Bash shell is told that42 <filename class="directory">$LFS</filename> is now the root43 (<filename class="directory">/</filename>) directory.</para>44 45 65 <para>Notice that <filename class="directory">/tools/bin</filename> is not 46 66 in the <envar>PATH</envar>. This means that the cross toolchain will no longer be 47 used in the chroot environment.</para>67 used on the target machine.</para> 48 68 49 69 <para>Note that the <command>bash</command> prompt will say … … 51 71 <filename>/etc/passwd</filename> file has not been created yet.</para> 52 72 73 <para>Now set up a temporary hostname, which is required by test suite of 74 some packages:</para> 75 76 <screen><userinput>hostname lfs</userinput></screen> 77 53 78 <note> 54 79 <para>It is important that all the commands throughout the remainder of this 55 chapter and the following chapters are run from within the chroot56 environment. If you leave this environment for any reason (rebooting for80 chapter and the following chapters are run from within the environment 81 we've set. If you leave this environment for any reason (rebooting for 57 82 example), ensure that the virtual kernel filesystems are mounted as 58 explained in <xref linkend="ch-tools- bindmount"/> and <xref59 linkend="ch-tools-kernfsmount"/> and enter chroot again before continuing60 with the installation.</para>83 explained in <xref linkend="ch-tools-kernfsmount"/> and 84 <xref linkend="ch-tools-devadjust"/> and set up the environment again before 85 continuing with the installation.</para> 61 86 </note> 62 87
Note:
See TracChangeset
for help on using the changeset viewer.