定制自已的CentOS5基于kickstart全自动安装CD
原文来自http://blog.opvps.com/centos5-kickstart-auto-install/2010年09月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密码为[url]www.taobao.com[/url]
- 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/
至此全文完 |