1.1. 如何构建一个 LFS 系统?

我们将用一个已安装好的 Linux 发行版(例如 Debian、Mandrake、Red Hat、SuSE)来构建 LFS 系统。这个已存在的 Linux 系统(宿主系统)将作为建立新系统的起点,提供包括编译器、连接器和 Shell 等创建新系统的必要工具。您安装这个发行版的时候,需要选择"development(开发/编程)"选项,以便可以使用这些工具。

另一个选择是使用 Linux From Scratch 的 LiveCD 。这个CD是一个非常好的宿主系统,它包含了构建一个完整 LFS 系统所需要的一切工具,另外还包含了所有的软件包源代码、补丁和一个本书的拷贝。使用这个CD ,你可以不需要任何网络连接或者下载任何额外的东西。要了解更多关于 LFS LiveCD 的信息或者想下载它,请查看:http://www.linuxfromscratch.org/livecd/

第二章描述了怎样创建一个新的 Linux 本地分区和文件系统,新的 LFS 系统将在该分区上编译和安装。第三章解释了构建一个 LFS 系统需要那些软件包和补丁,以及怎样把它们存放到新文件系统上。第四章讨论了建立一个适当的工作环境。请仔细阅读第四章,因为它讨论了在开始第五章及其后面的步骤之前,开发者需要知道的几个重要问题。

第五章解释了形成一个基本开发套件(或称为工具链)所需的许多软件的安装,这个工具链将被用来构建第六章中的实际系统。其中一些软件包需要解决循环依赖关系:例如,要编译一个编译器,您首先就需要一个编译器。

第五章告诉用户如何第一遍编译工具链,包括 Binutils 和 GCC(第一遍主要的意思就是指这两个核心软件包后面还将第二次安装)。这些软件包里的程序将静态连接以便在使用时独立于宿主系统。接下来的步骤是编译 Glibc ,也就是 C 运行时库。Glibc 将由第一遍建立的工具链程序编译。然后将第二遍编译的工具链动态连接到刚刚编译好的 Glibc 库上。第五章余下的软件包将使用第二遍建立的工具链来编译。完成这些步骤之后,LFS 的安装过程除了正在运行的内核外,将不再依赖于宿主系统。

为了不依赖宿主系统,初看起来我们需要做很多工作。节 5.2,"工具链技术说明"提供了一个完整的技术说明,包括静态连接的程序和动态连接的程序之间的差异。

第六章将构建完整的 LFS 系统。chroot(改变root)程序用来进入一个虚拟的环境并开始一个新的 shell,其根目录是 LFS 分区。这非常类似于重启并让内核将 LFS 分区挂载为根分区。系统实际上并没有重启,而是由 chroot 代替了,因为建立一个可启动的系统需要做一些现在还不需要做的额外工作。主要的好处在于"虚根环境(chrooting)"允许您在构建 LFS 的同时可以继续使用宿主系统。在等待软件包编译完成的时候,用户可以切换到不同的虚拟控制台(VC)或者 X 桌面,就像平常一样继续使用计算机。

为了完成安装,第七章设置启动脚本,第八章安装内核和启动引导程序。第九章包含在本书之外获得进一步 LFS 体验的信息。在本书中所有步骤都完成之后,计算机就已经准备好重启进入新的 LFS 系统了。

以上就是概略的过程,在接下来的章节和软件包描述中会讨论每一步的细节。看似复杂的项目将详细阐明,随着读者(就是你啦)踏上 LFS 冒险之路,每一件事情都将依序出现。

1.2. 如何提高 LFS 制作的成功率?

新手第一次做 LFS 的时候通常会遇见各种各样的问题,有许多人就此止步了,这不能不说是一个遗憾。热心的 youbest 兄有一篇大作专门针对新手经常遇见的问题,给出了如何提高 LFS 的成功率以及部分问题的解决方法,建议大家在制作过程中参考。

1.3. 在制作中途关闭计算机以后怎么办?

LFS 的制作过程是相当漫长的,特别是对机器不太好的朋友,有时候不得不中途关机,但对一些不太清楚 LFS 的工作原理的朋友,可能重新开机以后无法正确的恢复到先前的工作状态,因此为了能成功的完成 LFS 全过程,不得不持续开机几十个小时。幸好 youbest 兄有一篇大作解决了这个头疼的问题,给出了制作 LFS 过程中各个阶段恢复工作状态的详细方法(适合LFS6.3),虽然是基于 LFS 6.1 版本的,但仍然具有很实用的参考价值。

results matching ""

    No results matching ""