定制LINUX发行版本

转载 2007年10月14日 10:15:00
 
2007-04-06 16:35:59
以前研究的东西了,最近看到网上有很多人为了制作自己的发行版,苦苦挣扎而不得其道,所以把自己的笔记拿出来与大家一起分享!

注:其中路径/data/disk是我的制作光盘路径,各位可以根据自己的环境进行修改。

=======================================================

基本过程:

定制RPM包
修改 comps.xml
重编comps.rpm
重新生成hdlist
建立pkglist
利用buildinstall处理安装程序
利用mkisofs制作安装映象

------------------------------------------------
母系统是centos4.3,为了软件最新,先升级自己的系统相关软件
rpm --import http://mirror.be10.com/centos/4.3/os/i386/RPM-GPG-KEY-centos4
rpm --import /usr/share/doc/centos-release-4/RPM-GPG-KEY >> /dev/null
yum -y update

以下为制作安装光盘必须的包
yum install pump-devel gtk2-devel booty bogl-devel bogl-bterm elfutils-devel beecrypt-devel dietlibc
yum install anaconda anaconda-runtime busybox-anaconda

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
anaconda                i386       10.1.1.37-1.centos4.2  base              4.3 M
anaconda-runtime        i386       10.1.1.37-1.centos4.2  base              526 k
busybox-anaconda        i386       1.00.rc1-5       base              177 k
Installing for dependencies:
anaconda-help           noarch     10.1.0-1.centos4  base              800 k
bogl                    i386       0.1.18-4         base               93 k
booty                   i386       0.44.3-1         base               85 k
pyparted                i386       1.6.8-2          base               22 k



检查RPM包依赖关系
cd /data/disk/EServer/RPMS
mkdir /tmp/testdb
rpm --initdb --dbpath /tmp/testdb
rpm --test --dbpath /tmp/testdb -Uvh *.rpm

以下是具体步骤:
1.设置python的系统环境变量
export PYTHONPATH=/usr/lib/anaconda
export PATH="$PATH:/usr/lib/anaconda-runtime"

2.更新光盘的文件树
genhdlist --productpath=EServer /data/disk


3.生成下一步需要的pkgfile文件
pkgorder --product EServer /data/disk/ EServer > /data/pkgfile

4.编译生成光盘引导文件和图形安装界面镜像
buildinstall --pkgorder /data/pkgfile /
--version "1.2" /
--product "EServer" /
--release "Beta" /
--prodpath EServer /data/disk

5.制作 ISO

mkisofs -r -T -J -V "EServer 1.2" -b isolinux/isolinux.bin /
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 /
-boot-info-table -x "lost+found" /
-o /data/EServer.iso /data/disk


文件isolinux/boot.cat 会由mkisofs 程序随后产生
----------------------------------------------------

为光盘生成md5验证值
implantisomd5 /data/EServer.iso
Inserting md5sum into iso image...
md5 = b49c693f83c23d7e746dfe0f81a56016
Setting supported flag to 0



如果想将图形界面修改成个性化的界面,需要修改stage2.img(光盘引导镜像,如果硬盘安装,需要修改其他img文件……)

附注:
anaconda资源修改:

mkdir /data/anaconda
mount -o loop /data/disk/EServer/base/stage2.img /data/anaconda
cd /data/anaconda
tar -cvf /data/stage2.tar .
mkdir /data/stage2
cd /data/stage2
tar -xvf /data/stage2.tar
chmod +w -R ../stage2
#-----------修改资源-----------------#
.....
....
#重新打包img镜像
cd /data
mkcramfs stage2/ stage2.img.new
cp /data/stage2.img.new /data/disk/EServer/base/stage2.img




光盘启动画面修改:

yum -y install syslinux

The graphic is in a somewhat odd format, called LSS16. As the name indicates, it is limited to 16 colors. To edit the graphic, first convert it to a PPM:

lss16toppm < splash.lss > splash.ppm

Next, edit the file using The Gimp. Save the resulting file as an indexed gif with no more than 14 colors (plus black and white, for a total of 16). Then, convert the file to a pnm/ppm:

giftopnm < splash.gif | ppmtolss16 > splash.lss
cp splash.lss /data/disk/isolinux/splash.lss


yum install gcc xorg-x11-devel
编译gif2lss-0.4.tar.gz


保证光盘里面rpm目录下有以下包,这些包是图形化界面制作所必须的,没有他们,buildinstall将会报错。

anaconda
anaconda-runtime
anaconda-help
anaconda-product
busybox
busybox-anaconda
memtest86+
fonts-xorg-base
xorg-x11
joe
kernel*

附注:
rpm -qpi #显示rpm包的信息
rpm -Uvh #安装rpm包
rpm -qpl #列rpm包内的文件


上面这些步骤,是经过实践之后的笔记,所以一般都能够成功,还有一些细节部分,如comps.xml的修改,语法,就不多介绍了。

如果发现有什么问题,欢迎跟帖。
  

手把手带你自制Linux系统之六 编译内核及busybox完成系统定制

手把手带你自制Linux系统之六 编译内核及busybox完成系统定制 重新看了一下前面的几章,发现其实前面的5章一直围绕一个话题讲解 — 如何利用CentOS现有资源组装一个Linux。这种...
  • Toormi
  • Toormi
  • 2016-01-08 10:23:59
  • 5740

Linux系统的定制

磁盘管理- 硬盘的物理结构 - 磁盘容量 = 柱面数 * 磁头数 * 每磁道扇区数 * 给扇区字节数 - 磁盘分区 - 在基于x86体系结构的计算机系统中客场采用主引导记录MBR(Master B...
  • sinat_32651641
  • sinat_32651641
  • 2016-12-08 20:28:26
  • 286

定制化属于你的Linux镜像

一、 需求: 定制化centos系统:汉语,自动化安装,附加FTP服务器,root密码为password二、 所用工具: vmware、xmanager、CentOS系统镜像三、实现:1、根据...
  • u014505701
  • u014505701
  • 2016-09-22 20:28:43
  • 1230

Linux镜像快速定制方法

介绍制作openstack linux镜像,可以实现自动获得ssh-key和硬盘自动扩容(需要重启)...
  • lizhihua0925
  • lizhihua0925
  • 2017-01-11 20:08:53
  • 777

定制你自己的Linux系统 ( by quqi99 )

定制你自己的Linux ( by quqi99 ) 作者:张华  发表于:2013-09-21 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http...
  • quqi99
  • quqi99
  • 2013-09-21 09:26:43
  • 9313

定制自己的linux

基于开放源代码的linux给用户提供了这样一个平台:可以根据自己的软、硬件环境,定制自己的Linux应用环境。因此,根据每个用户不同的应用范围定制应用环境,可以将Linux系统的性能提升到新的高度。定...
  • Suprman
  • Suprman
  • 2006-12-25 12:27:00
  • 2163

定制一个Linux发行版ROM

http://www.swiftboard.org/wiki/index.php?title=Linux_ROM#.E6.89.93.E5.8C.85ROM 本文主要介绍如何为swi...
  • yangguangmeng
  • yangguangmeng
  • 2014-02-19 16:33:52
  • 2385

定制自己Linux发行版(ISO):向安装程序添加自定义软件包

定制Linux发行版有两个重要步骤,一是要把已经开发好的程序打包成RPM包,另一个是向安装程序添加自定义的软件包,这里简要记录一下过程。本文的实验环境基于CentOS 6.3 64bit。 首先...
  • Lusoel
  • Lusoel
  • 2016-12-29 15:52:39
  • 3347

构建属于自己的 Linux 发行版

导读 你想要构建自己的 Linux 发行版吗?不喜欢市面上现有的Linux发行版?你认为自己可以构建一款更好的发行版?你很幸运。我要在 20 分钟里面介绍如何构建一款发行版。 是的,你没有听错,就是...
  • Jack__CJ
  • Jack__CJ
  • 2016-10-15 21:14:29
  • 885

linux系统定制(一)

概述          LFS ( Linux From Scratch  http://www.linuxfromscratch.org )此篇博客是一个LFS的制作手册, 内容涵盖使用宿主系...
  • wj_j2ee
  • wj_j2ee
  • 2012-11-12 13:33:24
  • 1805
收藏助手
不良信息举报
您举报文章:定制LINUX发行版本
举报原因:
原因补充:

(最多只允许输入30个字)