精简系统服务:关闭多余系统服务

优化vim编辑器:增加关键字高亮显示功能

加入一些别名规则:grep --color=auto 和 netstat -tunlp

优化软硬节点限制

改进系统密码由用户输入

============================================================

实验环境:VMware + CentOS5.6(64bit)

根据自己的习惯,将CentOS重新打包成一个新ISO,可以自动分区、选择原件包,快速安装系统。

先用虚拟机按照正常的流程安装一个CentOS系统,接下来在这系统上去建立我们的定制系统:

1、挂载光驱

mount /dev/cdrom /mnt

2、创建临时目录

mkdir -p /root/iso/CentOS

3、提取需要的RPM包,正常安装好操作系统在/root目录下会有install.log文件,这个就是操作系统安装RPM包的记录,我们从这些记录中,将所需的RPM包从/mnt/CentOS中复制到/root/iso/CentOS里面去

#!/bin/bash
cd /root
awk '/Installing/{print $2}' install.log | sed 's/^[0-9]*://g' >package.txt
DVD='/mnt/CentOS'
PACKDIR='/root/package.txt'
NEW_DVD='/root/iso/CentOS/'
while read LINE
do
cp ${DVD}/${LINE}*.rpm /${NEW_DVD} || echo "$LINE don't cp......."
done < package.txt
rm -f package.txt
 

4、把原镜像除了CentOS目录外的文件全部复制至/root/iso目录下

cd /mnt
ls | grep -v CentOS | xargs -i cp -Rp {} /home/test/

5、把/root目录下的anaconda-ks.cfg复制至/root/iso目录下,并根据自己实际需要修改安装要求

# Kickstart file automatically generated by anaconda.

install
cdrom
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
firewall --disabled --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
part /boot --fstype ext3 --size=100
part swap --size=8192
part / --fstype ext3 --size=100 --grow

%packages
@base
@core
@development-tools
@dialup
@editors
@text-internet
keyutils
openCryptoki
libhbaapi
brltty
dmraid-events-logwatch
libhbalinux
aide
kexec-tools
nfs4-acl-tools
tpm-tools
iscsi-initiator-utils
trousers
bridge-utils
authd
fipscheck
squashfs-tools
star
sssd
hardlink
freeipmi
x86info
device-mapper-multipath
hfsutils
fcoe-utils
edac-utils
hesinfo
fuse-libs
convmv
fuse
cpufreq-utils
openswan
freeipmi
gcc44-c++
gcc44-gfortran
pexpect
dejagnu
imake
java-1.6.0-openjdk-devel
gcc-objc
ElectricFence
memtest86+
gcc-gnat
libgfortran44
gcc44
expect
java-1.6.0-openjdk
unifdef
nasm

%post
for i in `ls /etc/rc3.d/S*`
do
 CURSRV=`echo $i|cut -c 15-`
 echo $CURSRV
 case $CURSRV in
           crond | irqbalance | microcode_ctl | lvm2-monitor | network | random | sshd | syslog  )
       echo "Base services, Skip!"
       ;;
       *)
           echo "change $CURSRV to off"
           chkconfig --level 235 $CURSRV off
           service $CURSRV stop
       ;;
 esac
done

sed -i "8i alias vi='vim'" /root/.bashrc
sed -i "8i alias grep='grep --color=auto'" /root/.bashrc
sed -i "9i alias n='netstat -tunlp'" /root/.bashrc
echo 'syntax on' > /root/.vimrc
sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i 's/^#UseDNS yes$/UseDNS no/' /etc/ssh/sshd_config
echo "* hard    nofile  65535" >> /etc/security/limits.conf
echo "* soft    nofile  65535" >> /etc/security/limits.conf

/usr/sbin/eject
reboot

6、让ISO按照anaconda-ks.cfg文件来执行安装

vi /root/iso/isolinux/isolinux.cfg

Default linux 修改成default linux ks=cdrom:/anaconda-ks.cfg

7、生成comps.xml文件

yum -y install createrepo mkisofs
cd /root/iso
createrepo -g repodata/*comps.xml /root/iso/

8、制作ISO

mkisofs -o MyCentOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /root/iso/

这样一个定制版的Centos就出来了!~~~