没有合适的资源?快使用搜索试试~ 我知道了~
lfslinux文件系统搭建教程归类.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 154 浏览量
2021-11-04
15:43:44
上传
评论
收藏 146KB PDF 举报
温馨提示
试读
15页
lfslinux文件系统搭建教程归类.pdf
资源推荐
资源详情
资源评论
磁盘分区:
输入命令:
代码 :cfdisk 将出现分区界面
这里可以按照你自己的需要的分区, 这里我按照设置一个根分区和一个交换分区为例, 交换
分区占用 512M ,其余的全部分给根分区。
磁盘分区 作用
/dev/sda1 swap
/dev/sda2 作为目标系统根目录
保存退出后进行磁盘分区的格式化
代码 :mkswap /dev/sda1
mkfs.xfs /dev/sda2 相关知识点:
磁盘格式化一定要在磁盘分区未进行加载前进行。
mkswap 是用于将磁盘分区格式化为交换分区的命令。
这里我将 /dev/sda2 格式化了为 Xfs 格式,如果你喜欢其它格式的文件系统,你可以使
用相应的命令来格式化。
注意: 这里要根据实际情况建立和设置分区, 如果你不太清楚这个问题,请先不要开始,否
则可能造成难以恢复的损失! (这里只是根据 VMWare 里面的情况做的例子,在 VMWare 中
相对安全些,建议初学者在虚拟机中开始。 )
如果你的内存不太大, 想在编译期间就使用上交换分区的话, 可使用下面的命令激活交换分
区
swapon /dev/sda1
相关知识点:
swapon 用于激活交换分区
swapoff 用于将激活的交换分区停用
可以通过 free 命令来查看当前的内存使用情况
创建 LFS的“创作基地”
代码 :export LFS=/mnt/lfs
mkdir -pv $LFS相关知识点:
export LFS=/mnt/lfs 这条命令的作用是为了后面引用“创作基地”的绝对路径方便而设
置 LFS这样的环境变量。
加载 /dev/sda2 到“创作基地”
代码 :mount /dev/sda2 $LFS
创建必要的目录并设置属性
创建源代码编译用目录
代码 :mkdir -v $LFS/sources
chmod -v a+wt $LFS/sources 相关知识点:
chmoda+wt 是将目录或文件的属性设置为 777,这样任何人都可以对其进行读写。
创建工具链目录
代码 :mkdir -v $LFS/tools
ln -sv $LFS/tools /相关知识点:
上面这两句就建立了神奇的工具链目录(是工具链目录不是工具链) ,这样的创建方式
是为了在创建工具链和使用工具链创建目标系统的时候对于工具链的位置都是 /tools ,这样
可保证工具链的正常使用
创建 lfs 用户
代码 :groupaddlfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs 设置 lfs 密码,设置为空就行了,也就是输入密码
的时候直接回车就成。
代码 :passwdlfs 将 tools 和 sources 目录的用户改为 lfs,以便后面使用 lfs 来操作这两个目录
代码 :chown -v lfs $LFS/tools
chown -v lfs $LFS/sources 登陆到 lfs 用户
代码 :su - lfs 这时候你会发现命令行提示符已经由 #改为了 $
相关知识点:
其实如果不使用 lfs 用 root 也是能完成工具链的, 不过需要对 root 的环境变量进行修改,
还要防止因为输入错误而导致覆盖主系统下的文件, 所以 LFS手册中制作工具链部分就是为
了解决这种意外的发生而用 lfs 用户来建立工具链
建立 lfs 用户的环境
代码 :cat > ~/.bash_profile ~/.bashrc 这里利用了 bash 的环境变量的设置文件将 lfs 的环
境设置为符合编译工具链要求的最少的环境参数
这里面最重要的就是 PATH这个参数,目的是为了能够利用工具链里面的工具制作工具
链:首先查找 /tools/bin 下是否有需要的命令, 如果没有再到 /bin 和/usr/bin 下找,然后用 /bin
或/usr/bin 下面的命令来帮助生成需要的命令并放在 /tools/bin 下,这样此消彼涨, 最终可完
成一个自给自足的工具链。
到此为止就可以开始工具链的制作了, 不过制作 LFS是一个漫长而浩大的工程, 所以要
一直开机直到完成有时候比较困难, 特别是在机器速度比较慢的情况下, 能够重新启动到最
后工作的状态是很重要的。 在不同的阶段重新启动并恢复状态的步骤不完全相同, 所以本文
会在不同的阶段讨论重新启动恢复到工作状态的方法和步骤。
从现在开始一直到第五章结束,也就是完成 Stripping 中间的步骤中如果重新启动的恢
复步骤:
1.重新启动计算机,并从 LiveCD启动
相关知识点:在 VMWare 中因为磁盘已经有了信息了,所以会从磁盘启动,需要在启
动虚拟机中的机器时按 F2进入虚拟机的虚拟 BIOS,然后在 BOOT中设置第一启动为 CD-ROM,
保存退出即可
2.加载分区
export LFS=/mnt/lfs
mkdir -pv $LFS
mount /dev/sda2 $LFS
3.加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)
swapon /dev/sda1
4.建立工具链的链接
ln -sv $LFS/tools /
5.创建 lfs 用户
groupaddlfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwdlfs
chown -v lfs $LFS/tools
chown -v lfs $LFS/sources
su - lfs
6.建立 lfs 用户的环境
cat > ~/.bash_profile ~/.bashrc 进入 LFS包编译目录
代码 :cd $LFS/sourcesBinutils-2.15.Array4.0.2.2 - Pass 1
代码 :tarxvf /lfs-sources/binutils-2.15.Array4.0.2.2.tar.bz2
cd binutils-2.15.Array4.0.2.2 相关知识点:
大家可以注意到后面所有的解包命令均使用 tar xvf 来完成,而不管文件的压缩方式是
bz2 还是 gz,这是因为较新的 tar 程序都具有自动识别后缀名并自动调用相应的解压缩工具
的能力,所以可以不需要指定压缩方式,但对于早期的 tar 命令则可能不具备这个功能因此
需要你根据包的压缩方式来指定,如 bz2 使用 j,gz 使用 z,对应上面的 binutils 则是 tar xvjf
/lfs-sources/binutils-2.15.Array4.0.2.2.tar.bz2
因 LFS的 LiveCD中提供的 tar 版本比较新,后面制作的 tar 版本也比较新,因此支持自
动识别的能力, 同时为了使文章的解压命令看起来比较统一方便维护 (同样对于想制作成脚
本的朋友也会比较方便)因此后面统一使用 tar xvf 来解压。
如果你的主系统是使用 GCC4 的话,这里需要打一个 GCC4 的编译补丁,对于使用
LFS-6.1.1-3的 LiveCD上的 GCC是 3.4.3,所以不打补丁也可以,当然打上也无所谓。
代码 :patch -Np1 -i /lfs-sources/binutils-2.15.Array4.0.2.2-gcc4-1.patch 接着我们需要建立一
个目录,因为 binutils 建议使用一个空目录来编译,所以
代码 :mkdir -v ../binutils-build
cd ../binutils-build
../binutils-2.15.Array4.0.2.2/configure --prefix=/tools --disable-nls
make
make install
make -C ld clean
make -C ld LIB_PATH=/tools/lib
cd ..注意:这里暂时不要删除 binutils-build 目录,因为后面需要这个编译过的 binutils-build
相关知识点:
其 实 我 个 人 觉 得 这 个 binutils 的 版 本 不 太 好 , 建 议 使 用 目 前 的 最 新 稳 定 版 本
binutils-2.16.1 , 不 需 要 打 补 丁 , 而 且 在 各 种 主 系 统 下 进 行 编 译 成 功 率 非 常 高 , 而
binutils-2.15.Array4.0.2.2 经常在一些系统下编译出现错误。
GCC-3.4.3 - Pass 1
代码 :
tarxvf /lfs-sources/gcc-3.4.3.tar.bz2
mkdir -v gcc-build
cdgcc-build
../gcc-3.4.3/configure --prefix=/tools --libexecdir=/tools/lib \
--with-local-prefix=/tools --disable-nls \
--enable-shared --enable-languages=c
make bootstrap
make install
ln -vsgcc /tools/bin/cc
剩余14页未读,继续阅读
资源评论
cwp36199360
- 粉丝: 1
- 资源: 11万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功