1、用LiveCD制作Linux系统包括所有代码LFS-6.3采用了GCC4.1.2,如果使用128M编译GCC4.x.x话就需要使用swap了,但如果配置了256M就可以在没有swap的情况下完成编译,所以条件允许的情况下使用256M。这里选择的磁盘类型对于最后编译内核使用选项是有影响的,你可以选择IDE也可以选择SCSI,但这里的选择直接影响到最后编译内核时的选项。如果选择了IDE,则内核的默认设置就可以支持,但如果选择了SCSI,就必须在内核中加入对SCSI Adpters的支持,因为前面选择了LSI Logic,所以内核中就必须加入对LSI Logic的支持,否则将无法启动,相关部分在最后
2、的内核编译部分有说明。建议选择使用IDE,一方面方便驱动,另外似乎LFS-6.3-r2145尚不能支持LSI Logic的SCSI磁盘,用该LiveCD启动后可能无法识别出硬盘来。对于磁盘大小,使用4G足够编译LFS了,但如果你打算编译更多的BLFS,这里可以考虑适当的增加一些大小,如果磁盘空间比较富裕就用默认的8G好了。启动LiveCD (LFS-6.3-r2145)完成向导后在虚拟机的界面里选择Edit virtual machine settings,将CD-ROM改为Use ISO image,然后选择LiveCD的ISO文件,如果你已经刻录好了光盘,将光盘放入光驱就行了。 Start
3、 this virtual machine 由于虚拟盘上没有任何信息,因此将自动从LiveCD中启动,在启动过程中会出现选择时区等信息,你可以按照实际情况选择,也可以按照默认选择,简单点就是等待一会系统会自动进行选择。这里我选择时区为Asia/Shanghai,选择本地语言为Chinese (Simplified, UTF-8),其它的都按默认选择了。启动完成LiveCD后就开始建造自己的LFS的历程了。LiveCD下的两个重要目录/usr/share/LFS-BOOK-6.3-HTML目录存放的就是LFS手册了/lfs-sources里面存放的就是建造LFS所需要的源码包,不需要到处下软件了
4、。磁盘分区:输入命令:代码:cfdisk /dev/hda/dev/hda1 作为目标系统根目录保存退出后进行磁盘分区的格式化代码:mkswap /dev/hda1mkfs.xfs /dev/hda2磁盘格式化一定要在磁盘分区未进行加载前进行。mkswap是用于将磁盘分区格式化为交换分区的命令。这里我将/dev/hda2格式化了为Xfs格式,如果你喜欢其它格式的文件系统,你可以使用相应的命令来格式化。设置SSHip addr add 192.168.0.80/24 brd 192.168.0.255 dev eth0ip link set eth0 up/etc/rc.d/init.d/ssh
5、d startpasswd root使用ssh登陆liveCDMkfs.ext2 /dev/hda1创建LFS的“创作基地”代码:export LFS=/mnt/lfsmkdir -pv $LFS加载/dev/hda2到“创作基地”代码:mount /dev/hda1 $LFS创建必要的目录并设置属性创建源代码编译用目录代码:mkdir -v $LFS/sourceschmod -v a+wt $LFS/sourceschmod a+wt是将目录或文件的属性设置为1777,这样任何人都可以对其进行读写。创建工具链目录代码:mkdir -v $LFS/toolsln -sv $LFS/tools
6、 /上面这两句就建立了神奇的工具链目录(是工具链目录不是工具链),这样的创建方式是为了在创建工具链和使用工具链创建目标系统的时候对于工具链的位置都是/tools,这样可保证工具链的正常使用。注意:ln -sv $LFS/tools执行后应该会输出/tools - /mnt/lfs/tools 创建lfs用户代码:groupadd lfsuseradd -s /bin/bash -g lfs -m -k /dev/null lfspasswd lfschown -v lfs $LFS/toolschown -v lfs $LFS/sources设置lfs密码,设置为空就行了,也就是输入密码的时候
7、直接回车就成。将tools和sources目录的用户改为lfs,以便后面使用lfs来操作这两个目录登陆到lfs用户代码:su - lfs这时候你会发现命令行提示符已经由#改为了$其实如果不使用lfs用root也是能完成工具链的,不过需要对root的环境变量进行修改,还要防止因为输入错误而导致覆盖主系统下的文件,所以LFS手册中制作工具链部分就是为了解决这种意外的发生而用lfs用户来建立工具链建立lfs用户的环境代码:cat /.bash_profile /.bashrc /.bash_profile /.bashrc EOFset +humask 022LFS=/mnt/lfsLC_ALL=P
8、OSIXPATH=/tools/bin:/bin:/usr/binexport LFS LC_ALL PATHEOFsource /.bash_profile8.检查一下export命令查看输出,应该是declare -x HOME=/home/lfsdeclare -x LC_ALL=POSIXdeclare -x LFS=/mnt/lfsdeclare -x OLDPWDdeclare -x PATH=/tools/bin:/bin:/usr/bindeclare -x PS1=u:w$declare -x PWD=/home/lfsdeclare -x SHLVL=1declare -x
9、 TERM=linux9.进入编译目录cd $LFS/sources基本上就恢复工作状态了。开始工具链的制作(进入LFS包编译目录)代码:cd $LFS/sourcesBinutils-2.17 - Pass 1代码:tar xvf /lfs-sources/binutils-2.17.tar.bz2cd binutils-2.17mkdir -v ./binutils-buildcd ./binutils-buildCC=gcc -B/usr/bin/ ./binutils-2.17/configure -prefix=/tools -disable-nls -disable-werrorm
10、akemake installmake -C ld cleanmake -C ld LIB_PATH=/tools/libcp -v ld/ld-new /tools/bincd .rm -rf binutils-buildrm -rf binutils-2.17大家可以注意到后面所有的解包命令均使用tar xvf来完成,而不管文件的压缩方式是bz2还是gz,这是因为较新的tar程序都具有自动识别后缀名并自动调用相应的解压缩工具的能力,所以可以不需要指定压缩方式,但对于早期的tar命令则可能不具备这个功能因此需要你根据包的压缩方式来指定,如bz2使用j,gz使用z,对应上面的binutils则
11、是tar xvjf /lfs-sources/binutils-2.17.tar.bz2。因LFS的LiveCD中提供的tar版本比较新,后面制作的tar版本也比较新,因此支持自动识别的能力,同时为了使文章的解压命令看起来比较统一方便维护(同样对于想制作成脚本的朋友也会比较方便)因此后面统一使用tar xvf来解压。编译binutils建议使用一个空目录GCC-4.1.2 - Pass 1代码:tar xvf /lfs-sources/gcc-4.1.2.tar.bz2mkdir -v gcc-buildcd gcc-buildCC=gcc -B/usr/bin/ ./gcc-4.1.2/configure -prefix=/tools -with-local-prefix=/tools -disable-nls -enable-shared -enable-languages=cmake bootstrapma
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1