定制自已的CentOS5基于kickstart全自动安装CD

2010年9月11日 | 标签: ,

1.首先需要从官网www.centos.org下载完整的DVD光盘
2.首先自定义安装一次,自已要装那些软件包定义好,然后从这个安好的系统中/root/install.log 中先生成你需要安装的软件列表,使用如下指令
cat /root/install.log | grep Installing | sed ‘s/Installing //g’|sed ‘s/^[0-9]+://g’ >/tmp/rpm.log
创建存放rpm包的目录 mkdir -p /data/cdrom/CentOS
将CenOS55的ISO挂到/mnt下 mount -o loop CentOS-5.5-i386-bin-DVD.iso /mnt
把rpm.log中的软件放到一个目录 使用rpm.sh这个文件
#!/bin/bash
DEBUG=0
LT_CD=/mnt
ALL_RPMS_DIR=/mnt/CentOS
LT_RPMS_DIR=/data/cdrom/CentOS
packages_list=/tmp/rpm.log
number_of_packages=`cat $packages_list | wc -l`
i=1
while [ $i -le $number_of_packages ] ; do
line=`head -n $i $packages_list | tail -n -1`
name=`echo $line | awk ‘{print $1}’`
version=`echo $line | awk ‘{print $3}’ | cut -f 2 -d :`
if [ $DEBUG -eq "1" ] ; then
echo $i: $line
echo $name
echo $version
fi
if [ $DEBUG -eq "1" ] ; then
ls $ALL_RPMS_DIR/$name-$version*
if [ $? -ne 0 ] ; then
echo “cp $ALL_RPMS_DIR/$name-$version* ”
fi
else
echo “cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/”
cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/
# in case the copy failed
if [ $? -ne 0 ] ; then
echo “cp $ALL_RPMS_DIR/$name-$version* ”
cp $ALL_RPMS_DIR/$name* $LT_RPMS_DIR/
fi
fi
i=`expr $i + 1`

done

执行sh rpm.sh
就可以将所需要的包copy到/data/cdrom/CentOS下面了
复制光盘其它到/data/cdrom/CenOS
执行rsync -avpz -exclude=”CenOS” /mnt/* /data/cdrom/
强调不用要cp命令 因为cp命令默认没有复制”.”开头隐藏文件 ISO中没有.discinfo .treeinfo这二个文件,光盘是无法使用的,切记!我花了一上午的时间才发现这个问题

3.更新光盘软件包结构
cd /data/cdrom/CentOS
createrepo -g ../repodata/comps.xml .

4.设定为自动安装模式
修改/data/cdrom/CentOS/isolinux/isolinux.cfg文件 改为如下
cat /data/cdrom/CentOS/isolinux/isolinux.cfg
default linux
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img ramdisk_size=8192 ks=cdrom:/ks.cfg
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -

5.生成ks.cfg文件
cat /data/cdrom/CentOS/ks.cfg
install
#text
cdrom
lang zh_CN.UTF-8
keyboard us
network -device eth0 -bootproto static -ip 192.168.10.25 -netmask 255.255.255.0 -gateway 192.168.10.1 -nameserver 8.8.8.8 -hostname annv
rootpw annv.taobao.com ###root密码为www.taobao.com
firewall -disabled ###停用防火墙
authconfig -enableshadow -enablemd5
selinux -disabled ###停用selinux

firstboot -disable ##停用firstboot
timezone Asia/Shanghai ###时区

###清空硬盘 设定boot为100M /分区为10GB 交换分区为2G 其它分给/opt
bootloader -location=mbr
clearpart -all
part /boot -fstype ext3 -size=100
part / -fstype ext3 -size=10240
part swap -size=2048
part /opt -fstype ext3 -size=100 -grow

skipx

%packages
@admin-tools
@base
@chinese-support
@core
@dialup
@editors
@system-tools
@text-internet
keyutils
kexec-tools
trousers
fipscheck
device-mapper-multipath
audit
#%post
%post -nochroot
reboot ###装完后自动重启

6.生成ISO 把这个ISO放在/data下面
mkisofs -r -T -J -V “CentOS” -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /data/CentOS5.5-i386.iso /data/cdrom/

至此全文完!

目前还没有任何评论.