分类: LINUX
2009-11-20 15:09:32
独辟蹊径网络安装系列之Redhat衍生版重构初探[09年3月刊] | ||||||||||||||||||||
来源: Linux论坛 日期: 2009.04.02 12:02 (共有0条评论) | ||||||||||||||||||||
ChinaUnix网友:kns1024wh GNU/Linux开源,这个意义实在是非常的广泛,目前在distrowatch上表现活跃的300个发行版代表了GNU/Linux的主流,然而细心的Linux爱好者会发现CentOS-based distribution designed 、based on Slackware Linux、a distribution built from source software packages for Red Hat Enterprise Linux、a user-friendly Ubuntu-based distribution、an Debian-based distribution等关键词汇,目前大多数的发行版基本上都是源于Redhat、Debian/Ubuntu, Suse, Slackware等版本的衍生态,而构建Based Distribution的目的有很多,不乏有技术交流、功能完善、以及管理、更新Bug软件包等需求,同样这些Based Distribution也为Linux爱好者构建自己的Linux发行版本提供了很好的参照。本文作为独辟蹊径的系列文章,将带领大家初探基于Cenotos 5.2的Linux发行版构建方式,为进一步深入研究提供一个基础。要实现基于Centos的Linux发行版本的构建,首先需要了解一下Linux启动过程以及Linux启动文件相关的了解,同时要对Linux发行版本的光盘结构以及软件包的结构进行了解分析。从主机加电到系统服务加载运行,Linux的启动(Linux安装的过程雷同)大致需要经历如下的过程:
构建Base Centos Distribution的Linux发行版可以简单分为两种方式,第一种是通过结合Kickstart安装预配置文件对Centos系统安装的软件包并结合Kickstart的post及pre的脚本对安装的系统进行初始化的配置;第二种方式是通过添加修改stage2.img所生成的Linux文件系统达到定制内核、在安装过程添加定义的向导信息等。第一种方式实现便捷、Kickstart有X界面工具操作也相对简单,如要略去光盘中不安装不需要的软件包,并添加第三方的rpm或者tar.gz源码包,就需要深入研究repodata中的comps.xml的基于yum的软件包依赖关系的定义,并能够有基本的shell脚本的累加能力,将要安装的软件包及设置通过脚本实现。相对第二种方式的不足之处就是还是使用Centos的系统并没有对内核或其他参数做明确的发布调整,故此第二种方式就深入修改stage2.img及anaconda相关的配置实现,以达到发布独立有别于Base Centos Distribution的Linux版本。 基于Cenotos的Linux发行版的目的是为了在系统中能够快速,正确地建立Linux系统环境。实现的方式以分析Centos的安装光盘为起点,在掌握对应的技巧方法,同时建立相应的测试环境。 以centos 5.2的DVD介质为例,光盘中包含的主要与定制相关的目录如下:
images文件夹包含了引导启动的映像文件,主要的为boot.iso文件其中包含信息如下:
图:基于Centos的Linux发行版构建流程 通过上面的内容分析,接下俩具体定制一个基于Centos的Linux发行版本的实践过程,并通过脚本安装openvpn。 一、导入Centos yum源的验证密码信息,并安装必要的软件包
根据目标主机的install.log文件生成package.list软件包清单
建立Kickstart文件并命名为ks1483.cfg
将ks1483.cfg添加进入到isolinux.cfg,已实现定制的Kickstart脚本能够被正确的执行。
扩展方式: 1、关于修改anaconda中的资源如定义安装界面的方式 安装yum install squashfs-tools
图:简单定制的安装过程背景图 2、定制开机启动界面方式 启动画面用的是一种比较奇怪的格式lss16,它限制图片使用16种颜色,除去前景和背景色只能有14种颜色。我们需要ppmtolss16 giftopnm等程序,系统一般默认都安装了。 一般用gimp生成一个index模式的gif图形,颜色限制为14, 然后通过如下的办法进行转: 安装yum -y install syslinux giftopnm < splash.gif | ppmtolss16 > splash.lss 如果要编辑一个lss文件先用lsstoppm转成ppm格式,然后用gimp进行编辑. 另外你还需要修改isolinux/boot.msg文件如下
图:简单修改的开机启动画面 六、测试制作的安装光盘,通VMware、XEN、VirtualBox虚拟机测试如果没有出现问题,在PC上就可以顺利的安装。 图:安装后的目录信息 后记:本文讨论的是一个实现Base Centos Linux发行版的实现方法,同时再次提醒奔放是基于Centos 5.2的实现方式。也欢迎爱好Linux发行版实现探究的朋友一起来交流。 作者简介:CU网友kns1024wh,目前从事Linux群集方面的具体工作,之前做过多年的IT技术支持、MCT讲师、及REDFLAG的技术合作,技术专长群集、unix主机、AD部署等,您可以通过电子邮件lvsheat@qq.com或者Chinaunix社区与他取得联系。 |