深度定制CentOS 6.5安装光碟(替换内核&升级驱动)
深度定制CentOS 6.5安装光碟(替换内核&升级驱动)
第一步:挂在CentOS 6.5的母盘mount -t iso9660 -o ro /dev/cdrom /mnt/centos_dvd
第二步:将CentOS 6.5母盘的内容同步拷贝到 /root/centos_nat/centos_dvd目录下(注:repodata目录不拷贝)
rsync -av --exclude=repodata/ /mnt/centos_dvd /root/centos_nat
注:需要检查.discinfo是否存在cat /root/centos_nat/centos_dvd/.discinfo 1385726732.061157 6.5 x86_64 ALL
第三步:删除TRANS.TBL文件
find /root/centos_nat/centos_dvd -name TRANS.TBL -exec rm -f {} \; -print
第四步:安装所有所需的工具
yum install anaconda anaconda-help anaconda-runtime createrepo /usr/bin/yumdownloader /usr/bin/mkisofs
第五步:定制所需的Package
cd /root/centos_nat/centos_dvd/Package
a:更新initscripts
rm -f initscripts*rpm
yumdownloader initscripts
b:更新kernel文件
[root@bigstat-server-6 Packages]# ls kernel-* kernel-2.6.32-431.el6.x86_64.rpm kernel-firmware-2.6.32-431.el6.noarch.rpm
rm -f kernel-*
cp /home/centos_nat/centos_dvd/Packages/kernel-2.6.35-5.x86_64.rpm .
c:更新iptalbes
[root@bigstat-server-6 Packages]# ls -al iptables* -r--r--r--. 1 root root 258132 11月 25 03:31 iptables-1.4.7-11.el6.x86_64.rpm -r--r--r--. 1 root root 99120 11月 25 03:31 iptables-ipv6-1.4.7-11.el6.x86_64.rpm
更新为自编译的iptables版本
iptables-1.4.7-10.el6.x86_64.rpm
iptables-ipv6-1.4.7-10.el6.x86_64.rpm
d:更新其他软件及其依赖的软件
yumdownloader ethtool
ethtool-3.5-1.2.el6_5.x86_64.rpm
yumdownloader lsof
lsof-4.82-4.el6.x86_64.rpm
yumdownloader dstat
dstat-0.7.0-1.el6.noarch.rpm
yumdownloader telnet
telnet-0.17-47.el6_3.1.x86_64.rpm
yumdownloader tcpdump
tcpdump-4.0.0-3.20090921gitdf3cb4.2.el6.x86_64.rpm
yumdownloader wget
wget-1.12-1.11.el6_5.x86_64.rpm
yumdownloader libpcap.x86_64
libpcap-1.4.0-1.20130826git2dbcaa1.el6.x86_64.rpm
yumdownloader man
man-1.6f-32.el6.x86_64.rpm
e:更新本业务需要的特殊包
yumdownloader conntrack-tools
conntrack-tools-1.4.1-1.el6.x86_64.rpm
yumdownloader libnetfilter_conntrack
libnetfilter_conntrack-0.0.100-2.el6.i686.rpm
libnetfilter_conntrack-1.0.3-1.el6.x86_64.rpm
yumdownloader libnetfilter_cthelperlibnetfilter_cthelper-1.0.0-3.el6.x86_64.rpm
yumdownloader libnetfilter_cttimeout
libnetfilter_cttimeout-1.0.0-1.el6.x86_64.rpm
yumdownloader libnetfilter_queue
libnetfilter_queue-1.0.2-1.el6.x86_64.rpm
yumdownloader libnfnetlink
libnfnetlink-1.0.1-1.el6.x86_64.rpm
libnfnetlink-1.0.0-1.el6.i686.rpm
yumdownloader libmnl
libmnl-1.0.3-4.el6.x86_64.rpm
libmnl-1.0.2-3.el6.i686.rpm
ulogd-1.24-2.el5.re.x86_64.rpm第六步:修改repo基本文件
cd repodata
cp /mnt/centos_dvd/repodata/*-minimal-x86_64.xml a.xml
检查a.xml里面的文件,上一步添加的每一项均需要在a.xml中添加,上一步删除的每一项均需要在a.xml中删除
例如:删除kernel-firmware
第七步:重新生成repo
cd /root/centos_nat/centos_dvd
[root@bigstat-server-6 centos_dvd]# discinfo=`head -1 .discinfo` [root@bigstat-server-6 centos_dvd]# compdata=`find repodata -name a.xml`
createrepo -u "media://$discinfo" -g $compdata .
查看repodata目录已经被更新
[root@bigstat-server-6 repodata]# ls
021cc7844abf858665f17d4eb806b8766799bad8549f06ac1b962196ac396f93-filelists.sqlite.bz2 07821b5545f1731f6b2136d24b8ea409ab8c81f31130d4af83486683fb6478aa-primary.xml.gz 16e2571721cd66f02204a55414f15c24af2c66c502923ce6f17e6d13310d0513-other.sqlite.bz2 53f6028763ddd38d2cf12151907c912938fee5c030b6005db3955db1066ee9ed-a.xml.gz 721cb2db5af579f49bdfc62a4003df30936b815df049619b4a3766fe67777310-primary.sqlite.bz2 899eee50d02ed1469f7ae7fe67ad6f9de42c206be1da725fe34cdf206fd8a356-other.xml.gz da04b2e08de36b98579cb22953b7da8cebfa60106d65796069576c43d5eff579-a.xml eb795a29dc0b43e7d149f28cc3c7bfa1848df07f577a3f33ffa43249c4923ed4-filelists.xml.gz repomd.xml
第八步:生成Kickstart文件。
这个文件从任何一个CentOS 6 安装完的系统里,/root目录下会有一个anaconda-ks.cfg目录,以此目录为基础进行修改。修改后,请放到/root/centos_nat/centos_dvd/isolinux目录下,我命名为myks.cfg,下面是我使用的版本
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install
cdrom
lang zh_CN.UTF-8
keyboard us
#network --onboot no --device eth0 --bootproto dhcp --noipv6
#network --onboot no --device eth1 --bootproto dhcp --noipv6
rootpw --iscrypted $6$myYiR0VMuN4owxiWmWsceIId0OERWHlwkigsd20BKkO0
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# 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 --none
#part /boot --fstype=ext4 --size=200
#part swap --size=8000
#part / --fstype=ext4 --grow --size=200
#repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
%packages
@core
%post --log=/usr/src/install.log
dracut -f -v --hostonly -k '/lib/modules/2.6.35' /boot/initramfs-2.6.35.img 2.6.35
echo "initrd /initramfs-2.6.35.img" >>/boot/grub/grub.conf
mkdir -p /mnt/cdrom
mount -r -t iso9660 /dev/cdrom /mnt/cdrom
unalias cp
cp -r /mnt/cdrom/opt /root
find /lib/modules/2.6.35 -name ixgbe.ko -exec rm -f {} \;
install -D -m 644 /root/opt/ixgbe.ko /lib/modules/2.6.35/kernel/drivers/net/ixgbe/ixgbe.ko
/sbin/depmod -a
%end
%post的部分的脚本,是为了解决kernel2.6.35安装过程中没有生成initramfs文件,以及没有在grub.conf中增加相关项而增加。其原因我尚不明白为何安装过程中会有此缺陷。除此之外,在上述的安装脚本中,还进行升级万兆网卡的驱动
第九步:更新isolinux.cfg文件
isolinux.cfg文件位于/root/centos_nat/centos_dvd/isolinux目录下,配置安装的时候的KickStart文件为上一步生成的myks.cfg
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append ks=cdrom:/isolinux/myks.cfg initrd=initrd.img
第十步:重新生成ISO文件
cd /root/centos_nat/centos_dvd
mkisofs -r -R -J -T -v -no-emul-boot \
-boot-load-size 4 \
-boot-info-table \
-V "centos6.5-nat-1-x86_64.iso" \
-p "TM" \
-A "centos6.5-nat-1-x86_64.iso - 2014/03/28" \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat \
-x "lost+found" \
--joliet-long \
-o ../centos6.5-nat-1.3-x86_64.iso .
第十一步:生成文件的MD5值
/usr/bin/implantisomd5 centos6.5-nat-1.3-x86_64.iso
然后就可以刻录光碟并在机器上进行安装。
评论暂时关闭