在实际应用中,经常会需要对多台机器安装同样配置的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文件是用来告诉安装程序安装盘里面有哪些安装包的。
/usr/lib/anaconda-runtime/genhdlist /home/linux_cdrom/
balini 于 2009-07-21 00:58:02发表:
顶啊......
jiongliang 于 2008-05-23 09:37:33发表:
boss 能不能把程序代码粘贴出啦啊!!!!!!!!!!
雪山铁骑 于 2006-12-05 21:18:25发表:
谢谢分享!学习了!
Ywe 于 2005-10-30 00:17:33发表:
学习了
晴 于 2005-09-22 00:46:07发表:
不错,顶了
linux 于 2005-09-21 18:10:55发表:
实现安装的自动配置
1. 编写ks.cfg文件
我们需要编写ks.cfg文件实现所要求的安装配置。Red Hat 9自带了一个工具,可以自动生成ks.cfg文件,也可以根据具体需求自己编写。关于kickstart的文章很多,这里就不细说。把编写好的 ks.cfg拷贝到/home/linux_cdrom/目录下。
2. 修改syslinux.cfg文件
修改syslinux.cfg文件,使系统以安装盘启动后执行ks.cfg来自动安装。因为这个文件与其它一些文件被合在bootdisk.img里,不能直接看到,只能先mount出来再修改:
mkdir /tmp/bootdisk
mount -o loop /home/linux_cdrom/images/bootdisk.img
/tmp/bootdisk
然后在/tmp/bootdisk目录下修改syslinux.cfg文件。如何修改syslinux.cfg源文件请参照http: //www.linuxjournal.com/modules.php?op=modload&name=NS-lj-issues/issue108& file=6473l2。链接:
修改之后在其它目录下执行umount:
umount -f /tmp/bootdisk
制作并刻录光盘
完成以上工作后,就可以制作并刻录光盘了。在刻录以前,可以执行下列命令以确保刻录机是在SCSI模式下正常运行:
rmmod ide-cd
rmmod cdrom
modprobe ide-scsi
modprobe sg
执行下面的命令来进行光盘刻录:
cd /home
mkisofs -b /home/linux_cdrom/images/bootdisk.img -l -J -R -r -T -V’Custom RH
Install’. | cdrecord -v blank=fast speed=4 dev=0,0,0 -
如果以上工作都顺利的话,那么一张Red Hat 9的自动安装盘就已经做好了。