Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Linux发行版制作指南

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

1.项目整体分析

  制作Linux发布的目的是为了在系统中能够快速,正确地建立Linux系统环境。制作Linux发布的主要工作是决定各种软件的去留,因为有了RPM(RedHat Package Manager)包对其提供优良的管理能力,所以以目前比较成熟的RedHat 7.1(Linux Kernel Version 2.4.2-12)Linux发布程序作为蓝本,以RPM包作为基本的制定单元,以需求为原则对其进行取舍,得到适合实际需要的Linux系统。

  由此,项目自然而然的以分析RedHat Linux的光盘安装系统为起点,在掌握了其结构和行为的基础上,在包一级(结构部分)和代码一级(行为部分)进行修改,同时建立相应的测试环境,以便对修改进行及时的规范。

2.项目分步骤实施细节

  2.1对Linux光盘安装系统的分析

  ●结构部分

  在安装光盘中,主要的目录结构和文件大致如下:

  images/ 此目录下包含了制作启动盘的映像文件(文件后缀img),

  其中boot.img是当安装介质为CD-ROM时负责引导系统的映像文件

  bootnet.img是当安装介质为FTP,NFS等时负责引导系统的映像文件

  driver.img是由一些特殊设备驱动程序模块组成的映像文件,在当前内核不支持这些设备的情况下,提供了对它们进行访问的一种方法

  其中,boot.img映像文件中主要包含以下文件:


  boot.img	
  |----vmlinuz		Linux内核
  |----ldlinux.sys	引导Linux的系统文件
  |----syslinux.cfg	Linux内核引导参数配置文件
  |----initrd.img	内存虚拟文件系统映像文件
  |----*.msg文件	引导时的各种提示信息文件

  其中,initrd.img为Linux ext2文件系统,构成如下:


  initrd.img
  |----/bin
  |----/dev
  |----/etc
  |----/module
  |----/sbin ------ loader		
	安装程序装载器
  |----/tmp
  |----/var

  可执行文件/sbin/loader的任务是判断安装介质的有效性,并从中执行安装程序。

  其实正是boot.img,在系统启动时被执行,经解析之后在内存建立起了Linux内核,并根据配置文件syslinux.cfg装载虚拟文件系统,形成了完整的Linux System,为后续的工作提供了必要的操作系统环境。Boot.img映像的文件系统类型为msdos,而其中的initrd.img映像的文件系统类型必为Linux系统自己的ext2,所以对于它们的解析操作是不同的,具体请参考附录A 。

  RedHat/ 此目录是RedHat Linux发布的核心目录,主要的目录结构都在这里,其中

  RPMS/ 包含了RedHat Linux发布的主要部分,即以RPM包的形式将Linux系统中的二进制可执行文件,配置文件,文档等等组织在一起,形成能完成一定功能的比较独立的软件包(文件后缀rpm)。这个目录就是把这些软件包都集合在一起,形成了RedHat Linux发布。

  base/ 包含了在安装过程中要用到的描述组织结构和安装行为的所有文件,其中comps,hdlist和hdlist2是描述RPM包组织结构的文件。

  comps 此文件把各个RPM包按一定的原则组织成若干组,即components,这样在安装过程中就不必对每一个包做出取舍,而以组为单位。comps文件为简单文本格式,它的结构如下所示:


  4	    表示RPM包的版本号,当前为4
  1 base { }    base是此component名,{…}中是此component中所包含的RPM包     的名称列表,1表示在安装中默认为选中,即默认安装。 0 –hide IDS sensor{         snort    libpcap }     表示IDS sensor组中包含有snort和lipcap这两个RPM包。0表示     这个组在安装中默认为不选中即默认不安装,并且由—hide指出     不在用户界面上显示此组。

  hdlist和hdlist2 这两个文件维护从RPM包名到真实包文件名的映射过程,例如从snort这个RPM包名到真实包文件名snort-1.8.1-1.1.2.i386.rpm的映射。这两个文件是用特殊的程序生成的,无法用简单的方法察看其中的内容和结构。具体的生成方法请参考附录D。

  stage2.img , hdstg1.img , hdstg2.img , netstg1.img 和netstg2.img 是描述安装行为的映像文件,其中

  stage2.img 是当安装介质为CD-ROM时的安装程序映像文件

  hdstg1.img 是当安装介质为HardDisk时的安装程序映像文件

  hdstg2.img 是当安装介质为HardDisk时的安装程序映像文件

  netstg1.img 是当安装介质为FTP,NFS时的安装程序映像文件

  netstg2.img 是当安装介质为FTP,NFS时的安装程序映像文件

这里主要讨论stage2.img的内容


  stage2.img	
  |----/etc
	|----/modules
	|----/proc
	|----/usr----/bin----anaconda	
		安装程序主执行文件
	|
	|------/lib-----/anaconda		
		安装程序脚本文件目录
     |	  |----/installclasses	
	|	  |----/iw
	|	  |----/texttw		
         |	  |----*.py
	|
	|------/share---/anaconda		
		安装程序资源文件目录
         |	 |----/help
	|      	     |----/pixmaps

  如上所示,stage2.img映像文件中的主要部分是安装程序anaconda,它的主执行体是/usr/bin下的anaconda,由其调用的大量例程分布在/usr/lib/anaconda下,而安装过程中要用到的资源文件分布在/usr/share/anaconda下。stage2.img 的解析方法请参考附录B。

  ●行为部分

  RedHat 7.1的安装程序被命名为anaconda。如前所述,当boot.img所代表的启动介质被系统引导之后,在内存中就建立了一个完整的Linux系统(包括Linux内核和一个内存虚拟文件系统),之后便执行文件系统中存在的loader命令,从适当的介质中执行安装程序(例:安装介质是CD-ROM,就解析CD-ROM上的stage2.img,并从中执行安装程序),即执行anaconda,完成Linux系统的安装任务。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:nt与linux共存完全解决方案   下一篇:Linux对I/O端口资源的管理

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号