将出现分区界面
这里可以按照你自己的需要的分区,这里我按照设置一个根分区和一个交换分区为例,交换分区占用512M,其余的全部分给根分区。 磁盘分区 作用 /dev/hda1 swap
/dev/hda2 作为目标系统根目录
- 6 -
保存退出后进行磁盘分区的格式化 代码:
mkswap /dev/hda1 mkfs.xfs /dev/hda2 相关知识点:
磁盘格式化一定要在磁盘分区未进行加载前进行。 mkswap是用于将磁盘分区格式化为交换分区的命令。
这里我将/dev/hda2格式化了为Xfs格式,如果你喜欢其它格式的文件系统,你可以使用相应的命令来格式化。
注意:这里要根据实际情况建立和设置分区,如果你不太清楚这个问题,请先不要开始,否则可能造成难以恢复的损失!(这里只是根据VMWare里面的情况做的例子,在VMWare中相对安全些,建议
- 7 -
初学者在虚拟机中开始。)
如果你的内存不太大,想在编译期间就使用上交换分区的话,可使用下面的命令激活交换分区 swapon /dev/hda1 相关知识点:
swapon用于激活交换分区
swapoff用于将激活的交换分区停用
可以通过free命令来查看当前的内存使用情况
创建LFS的“创作基地” 代码:
export LFS=/mnt/lfs mkdir -pv $LFS 相关知识点:
export LFS=/mnt/lfs这条命令的作用是为了后面引用“创作基地”的绝对路径方便而设置LFS这样的环境变量。
加载/dev/hda2到“创作基地” 代码:
mount /dev/hda2 $LFS
创建必要的目录并设置属性 创建源代码编译用目录 代码:
mkdir -v $LFS/sources chmod -v a+wt $LFS/sources - 8 -
相关知识点:
chmod a+wt是将目录或文件的属性设置为1777,这样任何人都可以对其进行读写。
创建工具链目录 代码:
mkdir -v $LFS/tools ln -sv $LFS/tools / 注意:
ln -sv $LFS/tools执行后应该会输出 `/tools' -> `/mnt/lfs/tools' 表示正确。
相关知识点:
上面这两句就建立了神奇的工具链目录(是工具链目录不是工具链),这样的创建方式是为了在创建工具链和使用工具链创建目标系统的时候对于工具链的位置都是/tools,这样可保证工具链的正常使用
创建lfs用户 代码:
groupadd lfs useradd -s /bin/bash -g lfs -m -k /dev/null lfs 设置lfs密码,设置为空就行了,也就是输入密码的时候直接回车就成。 代码:
passwd lfs 将tools和sources目录的用户改为lfs,以便后面使用lfs来操作这两个目录 代码:
- 9 -
chown -v lfs $LFS/tools chown -v lfs $LFS/sources 登陆到lfs用户 代码:
su - lfs 这时候你会发现命令行提示符已经由#改为了$ 相关知识点:
其实如果不使用lfs用root也是能完成工具链的,不过需要对root的环境变量进行修改,还要防止因为输入错误而导致覆盖主系统下的文件,所以LFS手册中制作工具链部分就是为了解决这种意外的发生而用lfs用户来建立工具链
建立lfs用户的环境 代码:
cat > ~/.bash_profile << \exec env -i HOME=$HOME TERM=$TERM PS1='\%u:\\w\\$ ' /bin/bash EOF cat > ~/.bashrc << \set +h umask 022 LFS=/mnt/lfs LC_ALL=POSIX PATH=/tools/bin:/bin:/usr/bin export LFS LC_ALL PATH EOF source ~/.bash_profile 这里利用了bash的环境变量的设置文件将lfs的环境设置为符合编译工具链要求的最少的环境参数 这里面最重要的就是PATH这个参数,目的是为了能够利用工具链里面的工具制作工具链:首先查找/tools/bin下是否有需要的命令,如果没有再到/bin和/usr/bin下找,然后用/bin或
- 10 -