现在的位置: 首页 > 综合 > 正文

打造自己的centos安装包

2013年11月07日 ⁄ 综合 ⁄ 共 5905字 ⁄ 字号 评论关闭

一.制作LTOS具体过程
光盘结构介绍
* isolinux 目录存放光盘启动时的安装界面信息
*images    目录包括了必要的启动映像文件
*CentOS   目录存放安装软件包及信息
*.discinfo 文件是安装价质的识别信息
*lemp.tar.gz 文件存放系统初始化及其相关程序安装脚本.
》》环境说明:CentOS
5.3-i386
  Vmware Workstation
上完成制作工作.


1.安装制作发行版所需的基本软件包
# yum -y install anaconda-runtime createrepo yum-utils anacondaanaconda-help busybox-anaconda mkisofs


2.
制作ltos源文件夹
# mkdir /ltos
# mkdir /mnt/cdrom
# mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom/ 
挂载光盘镜像

或者挂载ISO文件到/mnt/cdrom
# mount -t iso9660 -o loop centos.xxx.iso/mnt/cdrom 
CentOSISO文件挂载到/mnt/cdrom目录
# cd /mnt/cdrom
# tar -cf - . | ( cd /ltos ; tar -xvpf - )

//
/mnt/cdrom里的文件利用tar全部拷贝到/ltsos这个目录下
.
#cd /ltos

//
进入此目录删除一些无关的文件,仍后进入后面的工作.

[root@server ltos]# ls -al
total 88
8 16:06 CentOS
8 16:43 .discinfo

4096 Mar 21 23:04 images

4096 Apr 12 00:00 isolinux

1root root 14371 Apr 11 23:16 lemp.tar.gz//
这个软件包是我们后面要建立的,读者可以分析一下后面的ks.cfg脚本就可以明白他的用途.
4096 Apr 11 21:00 repodata

7048 Mar 21 23:05 TRANS.TBL




3.定制package.list软件包清单
如安装一个CentOS5.3的系统,根据自己的需求选择软件包;如果想你的系统很小,建议选择最少的包。安装完成以后,在系统里会产生日志。日文文件存放在/root/install.log
cat install.log | grepInstalling | sed 's/Installing
//g'|sed 's/^[0-9]+://g' > packages.list

#mkdir /ltos/CentOS
建立存放rpm包的目录.

创建自动提取相关rpm脚本:这里可以下载:http://download.csdn.net/detail/kl222/5862285
#vi cprpms.sh
#!/bin/bash
DEBUG=0
LT_CD=/mnt/cdrom
ALL_RPMS_DIR=/mnt/cdrom/CentOS
#
挂载光盘存放的目录
LT_RPMS_DIR=/ltos/CentOS
#
存放RPM包的目录
packages_list=/root/packages.list
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

执行以上脚本将定制ltos必要的rpm复制到/ltos/CentOS目录

返回到/ltos目录下,执行createrepo程序生成repodata下的comps.xml文件 
#cd /ltos
#cd repodata
#rm -fr *
#cp /mnt/cdrom/repodata/0dae8d32824acd9dbdf7ed72f628152dd00b85e4bd802e6b46e4d7b78c1042a3-comps.xml comps.xml
#cd ..

#createrepo -g repodata/comps.xml .
comps.xml在6.3以上的版本为:0dae8d32824acd9dbdf7ed72f628152dd00b85e4bd802e6b46e4d7b78c1042a3-comps.xml,所以需要从光盘上复制过来,并改名为comps.xml

4.
配置kickstart脚本

通过CentOS5.3定制安装系统以后,会在系统里站生一个kickstart安装脚本
(/root/anaconda-ks.cfg)
# cp anaconda-ks.cfg /ltos/isolinux/ks.cfg
# vi/ltos/isolinux/ks.cfg 
并修改脚本如下:
# Kickstart file automatically generated by anaconda.
# Install CentOS instead of Upgrade
install
text
#install from cd-rom
cdrom
lang en_US.UTF-8
keyboard us

# Skip the X Configuration
skipx

network --device eth0 --bootproto dhcp--hostname ltos.linuxtone.org
rootpw --iscrypted$1$jPZf0P0r$JRe7pd.5wq9k.VZEMOgdq/

# Setup the firewall with SSH, HTTP/S, Syslog, Webmin,and Netflow enabled
firewall --enabled --port=22:tcp --port=69:udp--port=80:tcp --port=443:tcp 

authconfig --enableshadow --enablemd5
# Disable SELinux
selinux --disabled

timezone --utc Asia/Shanghai

# Clear the Bootloader and load it to the Master BootRecord
bootloader --location=mbr 
zerombr yes

# Set the Mouse
mouse generic3ps/2

# The following is the partition information yourequested
# Note that any partitions you deleted are notexpressed
# here so unless you clear all partitions first, thisis
# not guaranteed to work
clearpart --all --initlabel
part /boot --fstype ext3 --size=100 --asprimary
part / --fstype ext3 --size=25000
part swap --size=4096
part /data --fstype ext3 --size=1 --grow


#--- Reboot the host after installation is done
reboot

%packages
@development-libs
@editors
@system-tools
@text-internet
@legacy-network-server
@dialup
@core
@base
@mail-server
@development-tools
audit
net-snmp-utils
sysstat
iptraf
dstat
tftp
lynx
device-mapper-multipath
imake
-zsh
-vnc
-zisofs-tools
-xdelta
-openldap-clients
-samba-client
-fetchmail
-dovecot
-spamassassin

#
#

------- BeginLEMP Install ---------

#

%post --nochroot

# Mount CDROM
mkdir -p /mnt/cdrom
mount -r -t iso9660 /tmp/cdrom /mnt/cdrom

# Copy our tar file and extract it
cp /mnt/cdrom/lemp.tar.gz /mnt/sysimage/tmp/lemp.tar.gz> /dev/null 
cd /mnt/sysimage/tmp/
tar -zxvf lemp.tar.gz > /dev/null


# Move the contents of the tar into their new locations

cp -R /mnt/sysimage/tmp/boot/* /mnt/sysimage/boot/ >/dev/null 2>/dev/null
cp -R /mnt/sysimage/tmp/etc/* /mnt/sysimage/etc/ >/dev/null 2>/dev/null

# Unmount CDROM
umount /mnt/cdrom


%post

#vim syntax on
sed -i "8 s/^/alias vi='vim'/" /root/.bashrc2>/dev/null
echo 'syntax on' > /root/.vimrc 2>/dev/null

# Disable IPv6 until Cacti at least supports it
echo "alias net-pf-10 off" >>/etc/modprobe.conf
echo "alias ipv6 off" >> /etc/modprobe.conf
/sbin/chkconfig --level 35 ip6tables off 

#init_ssh
ssh_cf="/etc/ssh/sshd_config" 
sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' $ssh_cf
sed -i "s/#UseDNS yes/UseDNS no/" $ssh_cf
#client
sed -i -e '44 s/^/#/' -i -e '48 s/^/#/' $ssh_cf

# Remove the ISO File translation files
find / -name TRANS.TBL -exec rm {} ; /dev/null2>/dev/null


# Remove some unneeded services
#--------------------------------------------------------------------------------
cat << EOF
+--------------------------------------------------------------+
|

===Welcome to Tunoff services ===

|

+--------------------------------------------------------------+
EOF
#---------------------------------------------------------------------------------
for i in `ls /etc/rc3.d/S*`
do

CURSRV=`echo $i|cut -c 15-`


echo $CURSRV
case $CURSRV in

crond |irqbalance | microcode_ctl | network | random | sendmail | sshd | syslog |local | mysqld
)


echo"Base services, Skip!"


;;


*)



echo "change $CURSRV to off"


chkconfig --level 235 $CURSRV off


service$CURSRV stop


;;

esac
done

#
file descriptors
ulimit -HSn 65535


echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf




.个性化定制你的系统(问答形式)

1.如何定制安装开机画面:
启动画面用的是一种比较奇怪的格式lss16,它限制图片使用16种颜色,除去前景和背景色只能有14种颜色。我们需要ppmtolss16giftopnm等程序,系统一般默认都安装了。
一般用gimp生成一个index模式的gif图形,颜色限制为14, 然后通过如下的办法进行转
:

安装
yum
-y install syslinux

giftopnm< splash.gif | ppmtolss16 > splash.lss

另外你还需要修改isolinux/boot.msg文件,做一些个性化的提示
.

如何生成高质量的图。
先用photoshop打开任何一张图片,然后在文件的下拉菜单里,
保存的时候选择“保存为WEB和设备使用格式“,再然后选择gif再选择16保存就OK.
仍后利用giftopnm
< splash.gif | ppmtolss16 >splash.lss 
转换即可
.

2.
如何生成GRUPxpm文件?
(1) 将备一张640
x 480 16
色图片,档案类型为JPG的格式
(2)convert grub.gif-colors 14 -geometry 640x480! splash.xpm && gzip -9 splash.xpm
(3) 
直接替换/boot/grup/splash.xpm.gz 

抱歉!评论已关闭.