|
要想创建Linux From Scratch,你需要在你的系统中准备一个独立的分区,像大多数其他操作系统一样,LFS通常安装在一个新的专用分区上。
建立分区
建立一个最小的系统需要 1.3GB 左右的分区,这样才能有足够的空间存储并编译所有的源码包。当然,如果您打算把 LFS 作为您的主 Linux 系统,您可能会在上面安装其它软件,那么您就需要更大的空间(2~3GB)。LFS 系统本身并不占用这么多空间,所需的空间大部分用来为软件编译提供足够的临时空间,编译软件包的时候需要使用大量的临时空间,软件包装好之后这些临时空间可以回收。
因为编译过程中内存(RAM)并不总是够用的,所以最好使用一个小的硬盘分区作为交换空间。内核使用交换空间来存放不常用到的数据,以便为正在运行的进程腾出内存空间。LFS 系统使用的交换分区与宿主系统使用的交换分区可以是同一个,因此当宿主系统已经有交换分区的时候就不必为 LFS 系统再创建一个了。
启动一个磁盘分区程序,例如 cfdisk 或者 fdisk ,用即将在上面创建新分区的硬盘名字作为命令行选项,比如主IDE硬盘名字就是 /dev/hda 。创建一个Linux本地分区,需要的话,您还要创建一个交换分区。如果您还不知道如何使用这两个工具的话,请参考 cfdisk(8) 或者 fdisk(8) 手册页。
请记住新分区的名称(比如 hda5),本书称其为 LFS 分区,交换分区的名称也要记住,这些分区的名称以后将在 /etc/fstab 文件中用到。
建立文件系统
空白分区建立之后,现在可以在上面创建文件系统了。在 Linux 世界使用最广泛的是 ext2 文件系统,但是随着新的大容量硬盘的出现,日志文件系统开始逐渐流行。这里我们创建的是 ext2 文件系统,请运行下面的命令:
mke2fs -v /dev/[xxx]用您创建的 LFS 分区的名称替换 [xxx] (我们上面的例子里是 hda5)。
注意 有些宿主系统在文件系统创建工具(e2fsprogs)中使用了自定义的增强特性。这可能会导致你在 第9部分 重启进入新的 LFS 系统时出现问题。因为这些特性并不被 LFS 安装的 e2fsprogs 支持,你将会得到一个类似于"unsupported filesystem features, upgrade your e2fsprogs"的错误。你可以使用下面的命令来检查你的宿主系统是否使用了自定义的增强特性:
debugfs -R feature /dev/[xxx]如果输出的特性不同于:dir_index; filetype; large_file; resize_inode; sparse_super 那么就说明你的宿主系统使用了自定义的增强特性。在这种情况下,为了避免后面的问题,请重新编译 e2fsprogs 包,然后用这个重新编译过的工具来创建你将要用来安装 LFS 系统的文件系统:
cd /tmp tar -xjvf /path/to/sources/e2fsprogs-1.37.tar.bz2 cd e2fsprogs-1.37 mkdir -v build cd build ../configure make #note that we intentionally don't 'make install' here! ./misc/mke2fs -v /dev/[xxx] cd /tmp rm -rfv e2fsprogs-1.37 如果创建了交换分区,那么还需要用下面的命令进行格式化,如果您使用已有的交换分区,那么就不需要格式化了。
mkswap -v /dev/[yyy]用您创建的交换分区的名称替换 [yyy]
挂载文件系统
创建文件系统之后,要让分区可以存取,需要把分区挂载到一个选定的挂载点上。我们假定文件系统挂载到 /mnt/lfs ,但是您也可以选择别的目录。
选定一个挂载点,并指定给 LFS 环境变量,请运行命令:
export LFS=/mnt/lfs下一步,创建这个挂载点,并挂载 LFS 文件系统,请运行命令:
mkdir -pv $LFS mount -v /dev/[xxx] $LFS用您创建的 LFS 分区名称替换 [xxx] 。
如果 LFS 装在多个分区上(比如一个分区用于 / 目录,另一个分区用于 /usr 目录),用下面的命令挂载它们:
mkdir -pv $LFS mount -v /dev/[xxx] $LFS mkdir -v $LFS/usr mount -v /dev/[yyy] $LFS/usr用相应的分区名称替换 [xxx] 和 [yyy] 。
请确认挂载新分区的时候没有使用太多的限制选项(如 nosuid, nodev, noatime 选项)。运行不带参数的 mount 命令看看挂载的 LFS 分区设置了什么选项,如果出现了 nosuid, nodev, noatime 选项之一,您就需要重新挂载这个分区。
现在工作的空间已经建立好了,接下来要下载所需的软件包。
|