




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件透视从源代码编译精简Linux系统 熊 鹰摘 要:文章以LFS文档为基础, 从源代码开始编译可用的精简的Linux系统, 实现Ubuntu, windows, LFS多 重启动。 在物理机上以 Ubuntu作为宿主, 调整硬盘空间, 编译工具链、 基础工具软件和内核, 配置系统环境变量 、 可引导GRUB。 编译出来的系统可作为Linux基 础系统, 可根据具体服务器需要配置成web服务器或者数据库服务器机群等, 且具备精简、 安全、 完全可控等特性, 特别适合对于云计 算中虚拟化平台的基础系统。关键词:linux; 操作系统; LFS; 源代码; 编译; 云计算; 虚拟化LFS (Lin
2、ux From Scratch 的简称 是从源代码开始 编译的一个真实可用、 精简的Linux, 对于运行单一服务程序 的服务器, 在普通的P4台式机上安装完所有的驱动及必要的 安全软件之后, 内存消耗仅为32M, 非常节省资源, 而且稳定、 简洁, 特别适合运行在云计算中的虚拟服务器的基础软件平 台 。笔者在机器上安装windows, ubuntu和LFS。 Ubuntu是一 个Linux的发行版本, 最大特点是方便, 对主流硬件的支持非 常好, “163” 和 “sohu” 都有ubuntu的镜像, 下载和更新速度 都非常快。编译 “LFS” 需要一个宿主。 笔者把ubuntu作为宿主,
3、而 没有选择LFS的live-cd。 那是因为LFS编译时间和机器速度 有关, 一台老P4最少需要23天, 下班之后可以直接让机器 休眠, 第二天继续。1 安装宿主系统“LFS” 和高度定制的Linux系统一样需要一个宿主, 比 如 “Gentoo, slckware” 等。 从2003年主流主板就开始支持 从U盘启动, 如果需要安装系统, 将 “启动U盘” 插入, 从U盘 引导。 LFS文档中有一节是说明对宿主系统的要求。 笔者用 Ubuntu作为宿主来编译LFS, ubuntu-10. 04-desktop-i386可 在http:/mirrors.sohu. com下载。作者简介:熊鹰,
4、 江苏省科学技术情报研究所。机器上原来已有一个Windows, 并且分区已满。 在网上找 到了 一个可动态调整硬盘分区的软件 “pqmagic9. 0” , 可添加 删除分区, 支持windows7和Vista。 调整分区有风险, 建议在 调整分区之前先备份所有重要文件。硬盘只能支持4个主分区。 把windows放在第一个分区, 在linux下看是 “ /dev/sda1” ; 将ubuntu放在第二个主分区 “ / dev/sda2” , 将交换分区放在 “ /dev/sda3” 。 完成安装Ubuntu 后再通过 “fdisk” 来分余下的空间。一般对于多系统, 都是先安装windows再
5、安装Ubuntu, 用Ubuntu提供的引导程序 “GRUB” 来引导所有的系统, 包括 LFS。 而笔者不打算安装LFS的引导系统 “LFS文档” 中第 8章:用 “GRUB” 引导系统可以省略。 如果windows需要重新 安装, 它会再次覆盖掉 “GRUB” 写入的MBR。 所以对于多系统 环境下 , 重新安装windows需要备份 “mbr” , windows安装完 成后, 用Ubuntu的引导盘进入 “live CD” 模式, 再恢复一下 “mbr” (参见鸟哥的私房菜中关于dd命令一节 。如果没有备份MBR, 可通过Live-CD用Grub重新写一次MBR (具体操作可参考LFS
6、中关于安装配置Grub一节 。Ubuntu的安装非常简单, 插入Ubuntu的启动盘, 选择U 盘启动, 再做几道选择题。 其中需要注意的是必须选择 “手 动指定分区 (高级 ” 选项 (第四步 ; 第五步, 选中 “空闲” -“添加” , 选择主分区, 分配60G给Ubutnu使用, 挂载点选 “/” ,用于 “ext4 日志文件系统” 。 因为默认已经有一个 windows分区, 确定之后会出现 “ /dev/sda2” 这个设备, 再选 择 “空闲” , 选择 “主分区” 。 大小选择内存的2倍, 起始位, 用 于 “交换分区” , 确定。 其他的分区等ubuntu安装完成之后用 “fd
7、isk” 再分 。 其他的都默认选择完成安装。2 更新系统用于满足LFS对宿主的要求2.1 选择一个最快的服务器 26软件透视 “系统” -“系统管理” -“软件源” -“选择最佳服务 器” 。 国内的163服务器比较快, 选择之。 如果是text模式, 可 参看apt-get help。2.2 安装宿主必须的软件包。先打开一个终端, “应用程序” -“附件” -“终端” 。 从 “文档” 前言中的 “vii. Host System Requirements” 中将 “version-check.sh” 这一段脚本复制出来, 终端的粘帖快 捷键是 “Ctrl+Shift+v” 。 执行一 下
8、 , 发现缺少 了 几个包, 切换 到root用户 , 安装vim m4 bison patch texinfo软件包, 用 以下命令 。sudo suapt-get install vim m4 bison patch texinfo3 准备一个新分区建议在第一次只分配一个根分区, 交换分区 (swap 于 ubuntu的共享, 先取得root用户权限 “sudo su” , 接着查看 硬盘的分区情况 “fdisk -l” , 找到硬盘的设备号 (笔者的是 “ /dev/sda” , 然后执行 “fdisk /dev/sda” 。fdisk分区操作比较简单, “m” 帮助里列出 了所有命令:
9、“p” 查看分区情况; n添加分区 (主分区, 或者扩展分区 ; t改变分区的类型; w保存 (确认无误之后一定要保存 ; q退 出; d删除 (特别注意删除要从后往前, 否则会出问题, 可能是 因为windows 下的分区软件和Linux不一样 。笔者先建立了 一个扩展分区, 然后再在上面分出3G的空 间, 就是 “ /dev/sda5” , 用于安装LFS。4 准备工作4.1 在这个分区上创建文件系统 (对应LFS文档2.3 将文件系统格式化成ext4。 使用以下命令:mke2fs -t ext4 /dev/sda54.2 Mounting the New Partition和LFS文档略
10、有不同, 文件系统选择的是ext4.4.3 获取源代码wget是一个命令行的下载工具。 对于Linux用户来说, 几乎每天都在使用它。 wget -r -np -nd http:/example. com/packages/这条命令可以下载网站 上 packages目录中的所有文件。 其中, -np的作用是不遍历 父目录, -nd表示不在本机重新创建目录结构。 wget -r -np -nd -accept=iso 上一条命令相似, 但多加了 一个-accept=iso选项, 这指示 wget仅下载i386目录中所有扩展名为iso的文件。 也可以指定 多个扩展名, 只需用逗号分隔。 wget-
11、i filename. txt命令常 用于批量下载, 把所有需要下载文件的地址放到 filename. txt 中, 然后wget就会自动下载所有文件。 wget-c http:/ example. com/really-big-file.iso 这里所指定的-c选项的 作用为断点续传。 wget -m -k (-H http:/www.example. com/命令可用来镜像一个网站, wget将对链接转换。 如果网 站中的图像放在另外的站点, 那么可以使用-H选项。 sohu上 有6. 7的源码包, 可直接下载。 这里多下载了 一个wget, 打算 把这个包也安装进去。cd $LFS解压:
12、tar -xf lfs-packages-6.7. tar删除打包文件。 如果还想留用就 “mv lfs-packages-6. 7. tar /” 到别的地方 。 直接下载的源码包, 只需要修改权 限, 添加lfs用户 。 通过以下命令列表完成准备前工作。 #- 添加用户chmod -v a+wt $LFS/sourcesmkdir -v $LFS/toolsln -sv $LFS/tools /groupadd lfsuseradd -s /bin/bash -g lfs -m -k /dev/null lfs passwd lfs#- 改变用户权限chown -v lfs $LFS/to
13、olschown -v lfs $LFS/sourcessu - lfs#- 设置lfs用户权限。cat /. bash_profile /. bashrc /etc/sysconfig/network 6.6 定制 /etc/hosts 文件定义 一个ip给eth*使用。 根据网络情况配。6.7 配置网络脚本根据实际的网络配置, ip, 网关等。 配置主机名、 域名服 务地址。6.8 创建 /etc/fstab 文件这个文件是默认加载的文件系统。 如果还需要挂别的分 区, 也可以在这里写。 在现有情况下修改如下 。cat /etc/fstab Local version加入喜欢的名字。 在驱
14、动程序列中找到对应的网卡。配置完成直接退出, 提示要保存 “yes” 之后make。 按照 步骤来。6.10 使用 GRUB 配置启动过程这部分省略。 因为有多系统存在, 可以直接用ubuntu自 带的GRUB启动。 清除掉加载点。7 配置ubuntu以及Grub打开一个终端,sudo sugrub-mkconfig -o /boot/grub/grub.cfg完成之后, cat /boot/grub/grub.cfg文件就会多一个 启动选项。如果顺利, 新的LFS将会启动。 如果没有启动, 再进入 ubuntu重新chroot。 命令如下:sudo suexport LFS=/mnt/lfs
15、mount -t ext4 /dev/sda5 $LFSmount -v -bind /dev $LFS/devmount -vt devpts devpts $LFS/dev/ptsmount -vt tmpfs shm $LFS/dev/shmmount -vt proc proc $LFS/procmount -vt sysfs sysfs $LFS/syschroot $LFS /usr/bin/env -i HOME=/root TERM=$TERM PS1=u:w$ PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash -login之后可以先查看
16、 /var/log/kern.log文件, 或者查看 sys. log。如果在完成基础系统的编译时没有出错, 系统不能启动 的原因基本就是编译内核不能用, 可以选择再次编译内核。 特别需要提醒的是, 对于大多数服务器, Raid卡驱动需要编 译进内核。参考文献1毛德操, 胡希明.Linux内核源代码情景分析M.浙江大学出版社, 2001.2赵炯.Linux内核完全剖析M.机械工业出版社, 2010.3鸟哥. 鸟哥的私房菜M.人民邮电出版社, 2007.4张小进.Linux系统应用基础教程M.机械工业出版社, 2008.简 讯阿里巴巴与浙江邮政合作共建物流体系阿里巴巴 (1688.HK与浙江省邮政物流速递有限公司在阿里巴巴滨江园区签署了 合作协议。 双方将构建全球领先的电子商 务物流服务, 为阿里巴巴的中小企业客户在浙江
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全隐患排查总结模版
- 医疗信息化中的数据加密技术与应用
- 医疗行业的数据治理与合规性管理
- 供水泥合同范例
- 区块链技术助力音乐人维护原创权益
- DeFi与NFT科技赋能重塑支付生态
- 低成本装修卖房合同范例
- 医疗信息化建设的未来趋势与挑战分析
- 医保业务与数字技术的深度融合实践案例分享
- 从用户需求出发-医学生类应用的优化与迭代趋势探讨
- 起重吊装作业安全管理培训
- 人工智能在药物研发中的辅助作用与潜力
- 2025届河北省石家庄第一中学高三下学期二模地理试题及答案
- 2025年山东省应急管理普法知识竞赛参考试题库大全-下(多选、判断题)
- 2024年山东开放大学招聘考试真题
- PSP问题解决流程分析
- 6.5 国家司法机关 课件-2024-2025学年统编版道德与法治八年级下册
- 语文-华大新高考联盟2025届高三3月教学质量测评试题+答案
- 低空经济行业分析报告
- 2025年安徽省C20教育联盟中考三模语文试题(含答案)
- 药品注册与生产作业指导书
评论
0/150
提交评论