📄 chroot.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=gb2312" />
<title>
6.3. Entering the Chroot Environment
</title>
<link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1" />
<link rel="stylesheet" href="../stylesheets/lfs-print.css" type="text/css" media="print" />
</head>
<body id="lfs" class="6.1">
<div class="navheader">
<div class="headertitles">
<h4>
Linux From Scratch - Version 6.1
</h4>
<h3>
Chapter 6. 安装系统基础软件
</h3>
</div>
<ul class="headerlinks">
<li class="prev">
<a accesskey="p" href="kernfs.html" title="Mounting Virtual Kernel File Systems">后退</a>
<p>
Mounting Virtual Kernel File Systems
</p>
</li>
<li class="next">
<a accesskey="n" href="changingowner.html" title="Changing Ownership">前进</a>
<p>
Changing Ownership
</p>
</li>
<li class="up">
<a accesskey="u" href="chapter06.html" title="Chapter 6. 安装系统基础软件">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>
</li>
</ul>
</div>
<div class="sect1" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h1 class="sect1">
6.3. 进入 Chroot 环境
</h1>
</div>
<p>现在是进入 chroot 环境开始构建安装最终的LFS系统的时候了,注意:在这里我们只使用临时构建的工具。以 <span class="emphasis"><em>root</em></span> 身份运行以下命令进入构建环境:
</p>
<pre class="userinput"><kbd class="command">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</kbd></pre>
<p>
<span><strong class="command">env</strong></span> 命令的参数 <em class="parameter"><tt>-i</tt></em> 的作用是清除所有 chroot 环境变量。后面是重新设定 <tt class="envar">HOME</tt>, <tt class="envar">TERM</tt>, <tt class="envar">PS1</tt>, <tt class="envar">PATH</tt> 等变量的值。 <em class="parameter"><tt>TERM=$TERM</tt></em> 设定虚拟根环境中的 <tt class="envar">TERM</tt> 的值与 chroot 外面的一样。这个值是让像 <span><strong class="command">vim</strong></span> 和 <span><strong class="command">less</strong></span> 之类的程序可以正确操作。如果还需要重新设置其它的值,如 <tt class="envar">CFLAGS</tt> 或 <tt class="envar">CXXFLAGS</tt>,这里是个不错的位置。
</p>
<p>从这里开始,不再需要使用 <tt class="envar">LFS</tt> 环境变量,因为所有的工作都被限制在 LFS 文件系统里面。这是由于已经告诉了 Bash shell <tt class="filename">$LFS</tt> 是现在的根目录(<tt class="filename">/</tt>) 。
</p>
<p>注意在这里 <tt class="filename">/tools/bin</tt> 变成位于 <tt class="envar">PATH</tt> 路径的最后面。也就是说当软件包的最终版本安装之后就不再使用临时工具了。为了使 shell 无法“记住”可执行二进制代码的位置,需要通过使用<em class="parameter"><tt>+h</tt></em> 参数关闭 <span><strong class="command">bash</strong></span> 的哈希选项。
</p>
<p>在这里需要重点提醒的是:本章的剩余部分以及后面的章节里的所有命令都是运行在虚根(chroot)环境里面的。如果你由于某些原因离开这个虚根环境(比如重启),要记得首先挂载 <tt class="systemitem">proc</tt> 和 <tt class="systemitem">devpts</tt> 文件系统(详见前面部分的描述),然后再进入虚根环境继续安装。 </p>
<p>注意此时 <span><strong class="command">bash</strong></span> 提示符会显示:<tt class="computeroutput">I have no name!</tt> 这是正常的,因为 <tt class="filename">/etc/passwd</tt> 还没有创建。
</p>
</div>
<div class="navfooter">
<ul>
<li class="prev">
<a accesskey="p" href="kernfs.html" title="Mounting Virtual Kernel File Systems">后退</a>
<p>
Mounting Virtual Kernel File Systems
</p>
</li>
<li class="next">
<a accesskey="n" href="changingowner.html" title="Changing Ownership">前进</a>
<p>
Changing Ownership
</p>
</li>
<li class="up">
<a accesskey="u" href="chapter06.html" title="Chapter 6. 安装系统基础软件">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>.
</li>
</ul>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -