2022年lfslinux文件系统搭建教程 .pdf

上传人:C****o 文档编号:33387143 上传时间:2022-08-10 格式:PDF 页数:15 大小:219.07KB
返回 下载 相关 举报
2022年lfslinux文件系统搭建教程 .pdf_第1页
第1页 / 共15页
2022年lfslinux文件系统搭建教程 .pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《2022年lfslinux文件系统搭建教程 .pdf》由会员分享,可在线阅读,更多相关《2022年lfslinux文件系统搭建教程 .pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、磁盘分区:输入命令:代码 :cfdisk 将出现分区界面这里可以按照你自己的需要的分区,这里我按照设置一个根分区和一个交换分区为例,交换分区占用 512M ,其余的全部分给根分区。磁盘分区作用/dev/sda1swap /dev/sda2作为目标系统根目录保存退出后进行磁盘分区的格式化代码 :mkswap /dev/sda1 mkfs.xfs /dev/sda2 相关知识点:磁盘格式化一定要在磁盘分区未进行加载前进行。mkswap 是用于将磁盘分区格式化为交换分区的命令。这里我将 /dev/sda2 格式化了为Xfs 格式,如果你喜欢其它格式的文件系统,你可以使用相应的命令来格式化。注意: 这

2、里要根据实际情况建立和设置分区,如果你不太清楚这个问题,请先不要开始,否则可能造成难以恢复的损失!(这里只是根据VMWare 里面的情况做的例子,在VMWare 中相对安全些,建议初学者在虚拟机中开始。)如果你的内存不太大,想在编译期间就使用上交换分区的话,可使用下面的命令激活交换分区swapon /dev/sda1 相关知识点:swapon 用于激活交换分区swapoff 用于将激活的交换分区停用可以通过 free 命令来查看当前的内存使用情况创建 LFS的“创作基地”代码 :export LFS=/mnt/lfs mkdir -pv $LFS相关知识点:export LFS=/mnt/lf

3、s 这条命令的作用是为了后面引用“创作基地”的绝对路径方便而设置 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 /相关知识点:上面这两句就建立了神奇的工具链目录(是工具链目录不是工具链),这

4、样的创建方式名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - 是为了在创建工具链和使用工具链创建目标系统的时候对于工具链的位置都是/tools ,这样可保证工具链的正常使用创建 lfs 用户代码 :groupaddlfs useradd -s /bin/bash -g lfs -m -k /dev/null lfs设置 lfs 密码,设置为空就行了,也就是输入密码的时候直接回车就成。代码 :passwdlfs 将 tools 和

5、 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 /.bash

6、rc这里利用了bash 的环境变量的设置文件将lfs 的环境设置为符合编译工具链要求的最少的环境参数这里面最重要的就是PATH这个参数,目的是为了能够利用工具链里面的工具制作工具链:首先查找 /tools/bin 下是否有需要的命令,如果没有再到/bin 和/usr/bin 下找,然后用 /bin或/usr/bin下面的命令来帮助生成需要的命令并放在/tools/bin下,这样此消彼涨, 最终可完成一个自给自足的工具链。到此为止就可以开始工具链的制作了,不过制作LFS是一个漫长而浩大的工程,所以要一直开机直到完成有时候比较困难,特别是在机器速度比较慢的情况下,能够重新启动到最后工作的状态是很重

7、要的。在不同的阶段重新启动并恢复状态的步骤不完全相同,所以本文会在不同的阶段讨论重新启动恢复到工作状态的方法和步骤。从现在开始一直到第五章结束,也就是完成Stripping 中间的步骤中如果重新启动的恢复步骤:1.重新启动计算机,并从LiveCD启动相关知识点:在VMWare 中因为磁盘已经有了信息了,所以会从磁盘启动,需要在启动虚拟机中的机器时按F2进入虚拟机的虚拟BIOS , 然后在 BOOT中设置第一启动为CD-ROM,保存退出即可2.加载分区export LFS=/mnt/lfs mkdir -pv $LFS mount /dev/sda2 $LFS 3.加载交换分区(如果不想用交换分

8、区或者没有交换分区可跳过此步骤)swapon /dev/sda1 4.建立工具链的链接ln -sv $LFS/tools / 5.创建 lfs 用户groupaddlfs useradd -s /bin/bash -g lfs -m -k /dev/null lfs passwdlfs 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - chown -v lfs $LFS/tools chown -v lfs $LFS/sourc

9、es 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 程序都具有自动识别后缀名并自动调用相应的解压

10、缩工具的能力,所以可以不需要指定压缩方式,但对于早期的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 的话,这里需要打一个GCC

11、4 的编译补丁,对于使用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

12、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 经常在一些系统下编译出现错误

13、。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、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - cd . rm -rfgcc-build rm -rf gcc-3.4.3 注意:这里不要图省事而不删gcc-3.4.3,因为这样可能会给后面的编译产生一些意外的错误。相关知识点:这里可以使用gcc-3.4.4 或者 gcc-3.4.5 来替换 gcc-3.4.3,不过如果想用GCC4.0.x来编译的话,要注意和gcc-3.4.x 编译后面的一些软件以及调整工具链上有所不同,可参考使用GCC4.0.x的相关 LFS文档。

15、Linux-Libc-Headers-2.6.11.2 代码 : tarxvf /lfs-sources/linux-libc-headers-2.6.11.2.tar.bz2 cd linux-libc-headers-2.6.11.2 cp -Rv include/asm-i386 /tools/include/asm cp -Rv include/linux /tools/include cd . rm -rf linux-libc-headers-2.6.11.2 Glibc-2.3.4 代码 : tarxvf /lfs-sources/glibc-2.3.4.tar.bz2 cd g

16、libc-2.3.4 patch -Np1 -i /lfs-sources/glibc-2.3.4-fix_test-1.patch mkdir -v ./glibc-build cd ./glibc-build ./glibc-2.3.4/configure -prefix=/tools -disable-profile -enable-add-ons -enable-kernel=2.6.0 -with-binutils=/tools/bin -without-gd -with-headers=/tools/include -without-selinux make mkdir -v /t

17、ools/etc touch /tools/etc/ld.so.conf make install makelocaledata/install-locales cd . rm -rfglibc-build rm -rf glibc-2.3.4 提示:glibc-2.3.4 显的有点老了,如果用GCC4来编译需要打补丁,用gcc-3.4.x 来编译没什么问题,不过我建议使用glibc-2.3.6,这样即使是用GCC4来编译也不需要打补丁了。相关知识点:这里的参数 -enable-kernel=2.6.0 ,只是为了说明kernel 的大版本,所以不需要根据实际的 kernel 版本来改,即使是

18、用linux-2.6.15 也一样只写2.6.0 就可以了。make localedata/install-locales 将安装全部的locale,如果你不想装这么多locale 的话就用 localedef 命令来安装,LFS手册上有例子,如果仅想加入中文的locale,就用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 15 页 - - - - - - - - - mkdir -pv /tools/lib/locale localedef -i zh_CN -f G

19、B18030 zh_CN localedef -i zh_CN -f GBK zh_CN localedef -i zh_CN -f UTF-8 zh_CN localedef -i zh_CN -f GB2312 zh_CN localedef -i zh_HK -f UTF-8 zh_CN localedef -i zh_HK -f BIG5-HKSCS zh_CN localedef -i zh_TW -f EUC-TW zh_CN localedef -i zh_TW -f UTF-8 zh_CN localedef -i zh_TW -f BIG5 zh_CN 调整工具链代码 : c

20、dbinutils-build make -C ld install cd . rm -rfbinutils-build rm -rf binutils-2.15.Array4.0.2.2 SPECFILE=$(gcc -print-file specs) & sed s /lib/ld-linux.so.2 /tools/lib/ld-linux.so.2g $SPECFILE tempspecfile&mv -f tempspecfile $SPECFILE & unset SPECFILE rm -vf /tools/lib/gcc/*/*/include/pthread.h,bits/

21、sigthread.h 相关知识点:如果之前不小心把binutils-build 给删掉了,那么也不要紧张,不执行make -C ld install也可以。工具链的调整方法有好几种,而且不同版本GCC的 specs可能会有不同, 但实际上都是把 specs文件中的 /lib/ld-linux.so.2替换成了 /tools/lib/ld-linux.so.2,所以即使有些文章在调整工具链上的命令和LFS手册上的不一样也不用太奇怪,当然手工直接编辑specs文件也可以。但如果是 GCC4.0.x的话可能不会自动产生specs文件,这时候可以先生成specs文件然后在修改,可参考用GCC4.0.

22、1编译 LFS 测试工具链的调整echo main() dummy.ccc dummy.c readelf -l a.out | grep : /tools如果输出大致如下Requesting program interpreter: /tools/lib/ld-linux.so.2 则表示调整成功,因为所有的库已经连接到了/tools/lib下。rm -rfa.outdummy.c 测试工具安装说明:这部分将安装3 个用于第六章各种源码包编译后的测试的工具,所以如果你不打算做make check 之类的事情,那么这3 个包可以不装。Tcl-8.4.Array Expect-5.43.0 De

23、jaGNU-1.4.4 代码 : tarxvf /lfs-sources/tcl8.4.Array-src.tar.bz2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - cd tcl8.4.Array/unix ./configure -prefix=/tools make make install cd . export TCLPATH=$(pwd) ln -sv tclsh8.4 /tools/bin/tclsh cd

24、. tarxvf /lfs-sources/expect-5.43.0.tar.bz2 cd expect-5.43 patch -Np1 -i /lfs-sources/expect-5.43.0-spawn-1.patch ./configure -prefix=/tools -with-tcl=/tools/lib -with-tclinclude=$TCLPATH -with-x=no make make SCRIPTS= install unset TCLPATH cd . tarxvf /lfs-sources/dejagnu-1.4.4.tar.bz2 cd dejagnu-1.

25、4.4 ./configure -prefix=/tools make install cd . rm -rf tcl8.4.Array rm -rf expect-5.43 rm -rf dejagnu-1.4.4 GCC-3.4.3 - Pass 2 代码 : tarxvf /lfs-sources/gcc-3.4.3.tar.bz2 cd gcc-3.4.3 patch -Np1 -i /lfs-sources/gcc-3.4.3-no_fixincludes-1.patch patch -Np1 -i /lfs-sources/gcc-3.4.3-specs-2.patch mkdir

26、 -v ./gcc-build cd ./gcc-build ./gcc-3.4.3/configure -prefix=/tools -libexecdir=/tools/lib -with-local-prefix=/tools -enable-clocale=gnu -enable-shared -enable-threads=posix -enable-_cxa_atexit -enable-languages=c,c+ -disable-libstdcxx-pch make make install cd . rm -rfgcc-build rm -rf gcc-3.4.3 Binu

27、tils-2.15.Array4.0.2.2 - Pass 2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - 代码 : tarxvf /lfs-sources/binutils-2.15.Array4.0.2.2.tar.bz2 mkdir -v binutils-build cdbinutils-build ./binutils-2.15.Array4.0.2.2/configure -prefix=/tools -dis

28、able-nls-enable-shared -with-lib-path=/tools/lib make make install make -C ld clean make -C ld LIB_PATH=/usr/lib:/lib cd . 注意:这里不要删除binutils-build ,因为到制作目标系统的时候需要用到它。Gawk-3.1.4 代码 : tarxvf /lfs-sources/gawk-3.1.4.tar.bz2 cd gawk-3.1.4 ./configure -prefix=/tools make make install cd . rm -rf gawk-3.1

29、.4 Coreutils-5.2.1 代码 : tarxvf /lfs-sources/coreutils-5.2.1.tar.bz2 cd coreutils-5.2.1 DEFAULT_POSIX2_VERSION=1ArrayArray20Array ./configure -prefix=/tools make make install cd . rm -rf coreutils-5.2.1 Bzip2-1.0.3 代码 : tarxvf /lfs-sources/bzip2-1.0.3.tar.bz2 cd bzip2-1.0.3 make make PREFIX=/tools in

30、stall cd . rm -rf bzip2-1.0.3 Gzip-1.3.5 代码 : tarxvf /lfs-sources/gzip-1.3.5.tar.bz2 cd gzip-1.3.5 ./configure -prefix=/tools make 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - make install cd . rm -rf gzip-1.3.5 Diffutils-2.8.1 代码 : tar

31、xvf /lfs-sources/diffutils-2.8.1.tar.bz2 cd diffutils-2.8.1 ./configure -prefix=/tools make make install cd . rm -rf diffutils-2.8.1 Findutils-4.2.23 代码 : tarxvf /lfs-sources/findutils-4.2.23.tar.bz2 cd findutils-4.2.23 ./configure -prefix=/tools make make install cd . rm -rf findutils-4.2.23 Make-3

32、.80 代码 : tarxvf /lfs-sources/make-3.80.tar.bz2 cd make-3.80 ./configure -prefix=/tools make make install cd . rm -rf make-3.80 Grep-2.5.1a 代码 : tarxvf /lfs-sources/grep-2.5.1a.tar.bz2 cd grep-2.5.1a ./configure -prefix=/tools -disable-perl-regexp make make install cd . rm -rf grep-2.5.1a Sed-4.1.4 代

33、码 : tarxvf /lfs-sources/sed-4.1.4.tar.bz2 cd sed-4.1.4 ./configure -prefix=/tools 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 15 页 - - - - - - - - - make make install cd . rm -rf sed-4.1.4 Gettext-0.14.3 代码 : tarxvf /lfs-sources/gettext-0.14.3.tar.bz2 cd get

34、text-0.14.3 ./configure -prefix=/tools -disable-libasprintf -without-csharp make make install cd . rm -rf gettext-0.14.3 Ncurses-5.4 代码 : tarxvf /lfs-sources/ncurses-5.4.tar.bz2 cd ncurses-5.4 ./configure -prefix=/tools -with-shared -without-debug -without-ada -enable-overwrite make make install cd

35、. rm -rf ncurses-5.4 Patch-2.5.4 代码 : tarxvf /lfs-sources/patch-2.5.4.tar.bz2 cd patch-2.5.4 CPPFLAGS=-D_GNU_SOURCE ./configure -prefix=/tools make make install cd . rm -rf patch-2.5.4 Tar-1.15.1 代码 : tarxvf /lfs-sources/tar-1.15.1.tar.bz2 cd tar-1.15.1 ./configure -prefix=/tools make make install c

36、d . rm -rf tar-1.15.1 Texinfo-4.8 代码 : tarxvf /lfs-sources/texinfo-4.8.tar.bz2 cd texinfo-4.8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 15 页 - - - - - - - - - ./configure -prefix=/tools make make install cd . rm -rf texinfo-4.8 Bash-3.0 代码 : tarxvf /lfs-so

37、urces/bash-3.0.tar.bz2 cd bash-3.0 patch -Np1 -i /lfs-sources/bash-3.0-avoid_WCONTINUED-1.patch ./configure -prefix=/tools -without-bash-malloc make make install ln -vs bash /tools/bin/sh cd . rm -rf bash-3.0 M4-1.4.3 代码 : tarxvf /lfs-sources/m4-1.4.3.tar.bz2 cd m4-1.4.3 ./configure -prefix=/tools m

38、ake make install cd . rm -rf m4-1.4.3 Bison-2.0 代码 : tarxvf /lfs-sources/bison-2.0.tar.bz2 cd bison-2.0 ./configure -prefix=/tools make make install cd . rm -rf bison-2.0 Flex-2.5.31 代码 : tarxvf /lfs-sources/flex-2.5.31.tar.bz2 cd flex-2.5.31 patch -Np1 -i /lfs-sources/flex-2.5.31-debian_fixes-3.pat

39、ch touch doc/flex.1 ./configure -prefix=/tools make make install cd . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 15 页 - - - - - - - - - rm -rf flex-2.5.31 Util-linux-2.12q 代码 : tarxvf /lfs-sources/util-linux-2.12q.tar.bz2 cd util-linux-2.12q sed -i s/usr/i

40、nclude/tools/includeg configure./configure make -C lib make -C mount mountumount make -C text-utils more cp mount/,umount text-utils/more /tools/bin cd . rm -rf util-linux-2.12q知识点: util-linux-2.12q 这个版本如果在GCC4下编译需要打补丁,否则虽然能编译通过,但其中的cfdisk 程序会有问题,目前已经有util-linux-2.12r这个版本已经修正了这个问题,建议使用。Perl-5.8.7 代码

41、 : tarxvf /lfs-sources/perl-5.8.7.tar.bz2 cd perl-5.8.7 patch -Np1 -i /lfs-sources/perl-5.8.7-libc-1.patch ./configure.gnu -prefix=/tools -Dstatic_ext= IO Fcntl POSIXmakeperl utilities cp -v perl pod/pod2man /tools/bin mkdir -pv /tools/lib/perl5/5.8.7 cp -Rv lib/* /tools/lib/perl5/5.8.7 cd . rm -rf

42、perl-5.8.7 Stripping 这步是可有可无的,如果你打算今后还要用/tools 里面的东西, 那么可以 strip 一下来减少占用的磁盘空间,但如果做完目标系统后就删除了,Strip 就可有可无了,反正最后也是要删掉的。代码 : strip -strip-debug /tools/lib/* strip -strip-unneeded /tools/,sbin/* info 和 man 里面的内容在制作过程中没什么用处,所以删掉也没啥关系。rm -rf /tools/info,man 退出 lfs 用户(这步不要少了)代码 :exit 到目前为止, 工具链已经制作完成了,接着就要

43、开始制作真正的目标系统了,如果你到目前为止没出什么问题,那么恭喜你成功的通过了一关,不过接着还有相当长的路。现在你应该是处于root 用户状态的,看看你的命令行提示符是不是回到了#。创建两个重要目录名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 15 页 - - - - - - - - - 代码 :mkdir -pv $LFS/proc,sys 这个时候也许你想睡觉关机了,那么重新开机后回到工作状态的步骤是:1.重新启动计算机,并从LiveCD启动2.加载分区expor

44、t LFS=/mnt/lfs mkdir -pv $LFS mount /dev/sda2 $LFS 3.加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)swapon /dev/sda1 相关知识点:这时候已经制作好了工具链,因此可以不需要建立根目录下的tools 链接了。利用主系统加载几个重要的文件系统代码 : mount -vtprocproc $LFS/proc mount -vtsysfssysfs $LFS/sysLFS 手册里下面这三条命令不执行也行,因为目录并没有准备好。代码 : mount -vfttmpfstmpfs $LFS/dev mount -vfttmp

45、fstmpfs $LFS/dev/shm mount -vftdevpts -o gid=4,mode=620 devpts $LFS/dev/pts相关知识点:mount 命令加载的分区在重新启动后就失效了,所以在这其中重新启动则需要重新加载。这里为了方便使用源码包,我将光盘加载到目标系统里mkdir $LFS/cdrom mount /dev/cdrom $LFS/cdrom 这个步骤不是必须的,如果你想使用, 那么在重新启动后进入工作状态的步骤中在相应的位置上加入。这里有一个更简单的办法,将lfs-sources 里面所有源码包复制到$LFS/sources目录中。代码 : cp -a

46、/lfs-sources/* $LFS/sources Chroot 到目标系统的目录下,以便不受主系统的影响来制作目标系统代码 : 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 这个时候如果你关机或重新启动,那么重新开机后回到工作状态的步骤是:1.重新启动计算机,并从LiveCD启动2.加载分区export LFS=/mnt/lfs mkdir -pv $LFS mount

47、 /dev/sda2 $LFS 3.加载交换分区(如果不想用交换分区或者没有交换分区可跳过此步骤)swapon /dev/sda1 4.加载必要的文件系统mount -vtprocproc $LFS/proc 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 15 页 - - - - - - - - - mount -vtsysfssysfs $LFS/sys 5.Chroot 到目标系统下chroot $LFS /tools/bin/env -i HOME=/root

48、TERM=$TERM PS1= u:w$ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash -login +h 因为之前都是用lfs 用户制作的工具链,所以现在要将工具链下的所有文件转换成root用户的文件,但因为现在目标系统下还没有任何用户,因此用0 来表示 root 用户。代码 :chown -R 0:0 /tools 建立目标系统的目录结构代码 : install -dv /bin,boot,dev,etc/opt,home,lib,mnt install -dv /sbin,srv,usr/local,var,o

49、pt install -dv /root -m 0750 install -dv /tmp /var/tmp -m 1777 install -dv /media/floppy,cdrom install -dv /usr/bin,include,lib,sbin,share,src ln -sv share/man,doc,info /usr install -dv /usr/share/doc,info,locale,man install -dv /usr/share/misc,terminfo,zoneinfo install -dv /usr/share/man/man1,2,3,4

50、,5,6,7,8 install -dv /usr/local/bin,etc,include,lib,sbin,share,src ln -sv share/man,doc,info /usr/local install -dv /usr/local/share/doc,info,locale,man install -dv /usr/local/share/misc,terminfo,zoneinfo install -dv /usr/local/share/man/man1,2,3,4,5,6,7,8 install -dv /var/lock,log,mail,run,spool in

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁