目前CentOS 5.2的安装CD有1至6张,但是在安装系统过程中,并不是所有的程序都是你想安装的,而且需要准备1-6张CD来安装一个Linux系统,实在是太麻烦了,其实安装一个实用的Linux 系统,不需要那么臃肿的,我们可以度身定制一个合适你自己的CentOS Linux系统.
我的目标是打算将1-6CD中的软件包集合到一张CD中,只需要一张CD就可以自动安装一个实用的Linux.
准备:
1. 在VM上安装一个最少化的Linux系统之后,再根据实际情况安装需要的软件包:
# yum install -y pump-devel gtk2-devel booty bogl-devel bogl-bterm elfutils-devel beecrypt-devel dietlibc anaconda anaconda-runtime busybox-anaconda
2. 下载一个CentOS 5.2的DVD iso.
# mount -o loop /storage/CentOS-5.2-i386-bin-DVD.iso /media
3. 建立相关的目录环境:
# mkdir -p /storage/kickstart_build/isolinux/CentOS
# mkdir -p /storage/kickstart_build/isolinux/ks
# mkdir -p /storage/kickstart_build/isolinux/image
# mkdir -p /storage/kickstart_build/isolinux/repodata
# mkdir /storage/kickstart_build/all_rpms
4. 复制源CD中的文件:
# cp -rp /media/isolinux/* /storage/kickstart_build/isolinux
包括.discinfo
# cp /media/.discinfo /storage/kickstart_build/isolinux
# cp -rp /media/isolinux/ repodata/comps.xml /storage/kickstart_build
# cp -rp /media/CenOS/* /storage/kickstart_build/all_rpms
5.编辑ks.cfg:
#vi /storage/kickstart_build/isolinux/ks/ks.cfg
# Kickstart file automatically generated by anaconda.
install
cdrom
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
network --device eth1 --onboot no --bootproto dhcp
rootpw --iscrypted $1$AEQtgISA$pJKkCI5GeO3MLmLz/Fz.00
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux --drives=sda
#part /boot --fstype ext3 --size=100 --ondisk=sda
#part pv.2 --size=0 --grow --ondisk=sda
#volgroup VolGroup00 --pesize=32768 pv.2
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=256 --grow --maxsize=512
clearpart --all --initlabel
part /boot --fstype ext3 --size=100
part swap --size=1024
part / --fstype ext3 --size=100 --grow
%packages
@editors
@text-internet
@dialup
@core
@ base
device-mapper-multipath
6. 对RPMS进行剪裁,例如你可以将你需要安装的RPM包全部复制到/storage/kickstart_build/isolinux/CentOS目录下,请参考附件list文件,是我需要安装的软件包列表. 你可以编辑 comps.xml 文件中的packages列表来决定你需要安装的软件包.
7.收集依赖性软件包
请使用shell1,使用方法: 下载到/storage/kickstart_build目录下,修改为pare.pl,并赋予可执行权限:
# cd /storage/kickstart_build
# chmod +x pare.pl
# cd /storage/kickstart_build/isolinux/CentOS
# /storage/kickstart_build/pare.pl /storage/kickstart_build/all_rpms i386
8.测试软件包的依赖性
# cd /storage/kickstart_build/isolinux/CentOS
# mkdir /tmp/testdb
# rpm --initdb --dbpath /tmp/testdb
# rpm --test --dbpath /tmp/testdb -Uvh *.rpm
按照提示,缺少哪些依赖性软件包,直接从/storage/kickstart_build/all_rpms 下复制过来就行了.
9.创建repository
# cd /storage/kickstart_build/isolinux
# declare -x discinfo=`head -1 .discinfo`
# createrepo -u "media://$discinfo" -g /storage/kickstart_build/comps.xml .
命令运行完毕之后,会自动建立repodata目录.
10.建立ISO文件
# cd /storage/kickstart_build
# mkisofs -o MYOS.iso -b isolinux.bin -c boot.cat -no-emul-boot \
-boot-load-size 4 -boot-info-table -R -J -v -T isolinux/
生成MD5字符串:
# /usr/lib/anaconda-runtime/implantisomd5 custom.iso
本文出自 “网络记忆棒” 博客,转载请与作者联系!