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

来源:岁月联盟 编辑:exp 时间:2011-10-28

 

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/

 

至此全文完!