在实际应用中,经常会需要对多台机器安装同样配置的Linux,假如能制作一张全自动的安装光盘,将会省去很多重复劳动。我成功地对Red Hat 9安装光盘进行了裁减配置,制作成一张全自动的安装光盘。下面就来介绍一下其实现方法。

复制安装盘上的文档

首先建立一个调试目录:

mkdir  /home/linux_cdrom

然后把Red Hat 9第一张光盘放入光驱,执行下面的命令复制光盘内容到/home/linux_cdrom目录下:

mount  /mnt/cdrom

            cd /mnt/cdrom

            tar -cf -.|( cd /home/linux_cdrom ; tar -xvpf - )

            cd /

            umount /mnt/cdrom

重复上面的方法,把Disk2和Disk3的内容都复制到/home/linux_cdrom目录中去。这样我们就能够在该目录下裁减并制作Linux安装盘了。

选择需要的安装包

Red Hat 9有三张安装盘,总共1400多个安装包,我们需要删除一些安装时用不到的,以达到把安装盘压缩到一张光盘容量内的目的。

Red Hat 9的具体安装程式anaconda是利用文档comps.xml来获取各个安装包之间的关系,连同安装包的用途。我们也能够利用这个文档来实现安装包的自动选择,但是需要通过程式实现。我写了两个python程式:getGroupPkgs.py和syncRpms.py,读者能够发E-mail到mmx@ccu.com.cn索要源代码。

getGroupPkgs.py的任务是获取目的安装包及其相关包的信息,要定制不同安装需要的安装包能够修改该程式中代码:

grplist={‘Base’:1,‘Core’:1}

加入需要的软件组的格式为:“组名:1,”(注意要用逗号隔开)。这里的组名能够参考/home/linux_cdrom/Redhat/base/comps.xml文档中的name项来确定。对于comps.xml的介绍详见http://rhlinux.redhat.com/anaconda/comps.html。

syncRpms.py就是根据程式getGroupPkgs.py的输出保留必要的软件包,删除不必要的软件包。

依次运行这两个程式:

./getGroupPkgs.py /home/linux_cdrom/Redhat/base/comps.xml>/home/pkglist

            ./syncRpms.py pkglist /home/linux_cdrom/Redhat/RPMS/>/home/trimlog

以上只是粗略地裁减,我们还要通过rpm来验证裁减是否正确。

cd /home/linux_cdrom/Redhat/RPMS

            mkdir /tmp/testdb

            rpm --initdb --dbpath /tmp/testdb

            rpm --test --dbpath /tmp/testdb -Uvh *.rpm

执行最后一个命令直到没有错误信息出现为止。假如出现错误,就把错误信息中所提示缺少的包拷贝到/home/linux_cdrom/Redhat/RPMS目录下。

通过du -hs /home/linux_cdrom命令来查看裁减后这个目录下的文档大小,是否已在一张盘的容量700MB以下。

完成安装包的裁减之后,就能够生成hdlist文档了。hdlist文档是用来告诉安装程式安装盘里面有哪些安装包的。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!