感谢支持
我们一直在努力

基于Ubuntu 10.10 构建LFS 6.7[图文]

LFS,即Linux From Scratch,LFS不像Ubuntu,Fedora,SUSE等Linux发行版以最终产品的形式发布,而是以文档的形式发布一套构建流程,指导使用者,从源代码自行构建一个LFS系统,也就是说你拿到的LFS实际上只是一个指导手册,其中指明了以下几点::


1. 什么是LFS


2. 如何准备构建LFS


3. 如何获取构建LFS所需的源码包


4. 如何编译LFS


5. 如何配置LFS


从LFS的构建过程中,能够学习到一个常规Linux系统的结构,以及如何去配置Linux系统,毕竟Linus给你的只是Linux内核,而一个真正可用的Linux系统是由很多部件一起工作的。


当然不能期望通过一个LFS就让你知晓Linux的一切,毕竟这不太现实,而且LFS的目标很明确,就是指导用户构建一个可用的Linux系统,所以LFS不会对其中的操作用动辄几百字去解释透彻,但是对于一个具备Linux基本使用能力的人来说,LFS的解释已经很详细了,能够让使用者知其然,还能知其所以然。


这里我想把自己的LFS构建经验总结一下,主要是过程中遇到的问题,列出来,欢迎大家围观,呵呵


LFS的主要构建流程:


1. 准备。包括为LFS分配空间,设置分区,在宿主系统安装相关组件等


2. 编译一个临时的纯净系统。考虑到现行的发行版中都会或多或少做一些优化调整,这会导致直接编译出来的系统不具备通用性,所以需要基于宿主系统构建一个临时的纯净系统,新的LFS系统所需的相关组件都会在这个纯净的环境中编译


3. 在上面的纯净系统中编译LFS系统


4. 配置LFS系统,以使系统能够正常工作


上面的流程在LFS Book中都以指令的形式列了出来,我们要做的就是按照LFS Book中的说明,一点一点敲字母就可以了,这需要具备一些Linux的基本使用知识来理解操作的含义。


具体细节这里就不多说了,大家看LFS Book就可以了,这里顺便共享几个文件,方便大家使用。


最新的LFS Book 6.7【LFS-BOOK-6.7.pdf】 与 LFS 6.6的中文版,翻译的很不错【LFS-BOOK-6.6_CN.chm】下载在Linux公社(LinuxIDC.com)的1号服务器。


FTP地址:ftp://www.linuxidc.com


用户名:www.linuxidc.com


密码:www.muu.cc


在2011年LinuxIDC.com\2月\基于Ubuntu 10.10 构建LFS 6.7[图文]\


具体下载方法见http://www.linuxidc.net/thread-1186-1-1.html 与 http://www.linuxidc.net/thread-1189-1-1.html


 我这里主要想把自己编译LFS时遇到的问题总结一下,共享出来:


我这次编译的LFS是最新(2011.2.12)的6.7版本,用的宿主系统是Ubuntu 10.10,基于VMware WOrkstation 7.1虚拟机。虚拟机使用的是双硬盘,其中一个/dev/sda安装了Ubuntu 10.10,LFS则编译在了另一个硬盘/dev/sdb,这也是为了在制作完LFS后,能够方便的在独立的虚拟机中运行。

Ubuntu的安装就不说了,下面直接说说编译LFS时出现的问题:


1. 编译Binutls出错


一开始的时候就出错了,比较打击人。。。


这里需要安装build-essential和texinfo两个包,因为Ubuntu中没有


2. 编译gcc出错


原因很简单,查找问题很恼火。。。


因为在输出指令的时候,输入languages时少输了末尾的s


3. 编译glibc出错


因为Ubuntu中安装的是mawk,不是gawk


这里需要安装gawk


4. 编译过程中要注意指令的大小写,否则很容易出现问题


这是个细节问题,因为Linux中是区分大小写的,所以要格外注意。因为我是一边在VMWare中操作,一边看LFS Book,LFS Book不是最大化的显示,所以输入指令的时候不容易区分大小写,像C和c,S和s,容易出错,结果编译不过去,仔细一些就可以了


5. 安装完成LFS后,启动出现问题


重新启动以引导LFS的时候卡在了这里:kernel_thread_helper 0x6/0x10,原因是根文件系统无法加载,这个问题被称作kernel panic,似乎遇到的朋友还比较多。


我之前没有编译过Linux内核,并不懂内核配置,但是LFS Book对这里没有任何说明,所以在这里郁闷了很久。最后,找到原因是Linux内核的默认编译选项对sata硬件的支持不完整,有些sata硬件的驱动没有编译进去,比如我使用的VMware 7.1中的sata驱动:


LSI Logic / Symbios Logic 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI


这里需要修改编译选项,以支持该sata驱动。我想其他的驱动支持,道理也差不多,注意添加对应的驱动支持就可以了。可以通过lspci命令了解到系统中的pci设备都有哪些,便于在编译内核时选择正确的驱动。这里的lspci是pciutils包中的工具,没有的话需要安装。

我这里说说我选择的编译选项,这里参考了网上的一些资料,对于同样使用VMWare体验LFS的朋友或许会有帮助:


    Linux Kernel Configuration
        -> Device Drivers
            -> SCSI device support
                – > SCSI disk support   选中


    Linux Kernel Configuration
       -> Device Drivers
           -> Fusion MPT device support   选中
                -> 选中子项(不确定的话就全部选中好了)


    Linux Kernel Configuration
        -> Device Drivers
            -> SCSI device support
                – > SCSI low-level drivers  选中
                    -> 选中和Fusion-MPT相关的底层驱动以及VMWare PVSCSI driver support


6. 调整/etc/ftab和/boot/grub/grub.cfg以正确引导独立的LFS并加载分区


因为我的目的是在独立的硬盘中编译LFS,这样将LFS的虚拟硬盘文件拷贝到新的虚拟机中就可以加载运行了,所以目标系统中是只有一个硬盘的,需要调整上面的两个文件,将原来的sdb对应的改成sda即可,因为LFS所在硬盘是以第二硬盘的形式挂到虚拟机中的。


grub.cfg是在加载Linux时使用的,这里需要调整;fstab是在Linux启动时,加载分区中的文件系统的,这里也需要修改。


好了一切正常,截几张图过来看看,呵呵:


基于Ubuntu 10.10 构建LFS 6.7[图文]
基于Ubuntu 10.10 构建LFS 6.7[图文]

用PuTTY Telnet过去的效果,算是临时解决了中文无法显示的问题


基于Ubuntu 10.10 构建LFS 6.7[图文]

赞(0) 打赏
转载请注明出处:服务器评测 » 基于Ubuntu 10.10 构建LFS 6.7[图文]
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏