`

CentOS6.5X86_64系统定制文档详细版

 
阅读更多
CentOS6.2X86_64系统定制文档详细版
版本:V1.0
版权:GPL
时间:2015-12-17
作者:无影
说明:本文档所用方法来自网络,经过本人亲自成功实践总结,如有谬误,欢迎各位指正,定制系统过程,得到zero,逸马驰骋等众多兄弟的帮助,在此表示感谢!
一,基础环境的搭建
操作环境:
VM7.1(版本不限)+centos6.2X86_64
VM需设置2个光驱,分别挂载DVD1和DVD2
安装centos6.2X 86_64系统,所需组件自行定义,安装后得到install.log和anaconda-ks.cfg文件(在此基础上修改比较方便)
mkdir /mnt/cd{1,2}                 建立光盘的挂载目录
mkdir /home/centos/Packages -p    建立定制光盘文件目录
mkdir /home/source                建立放置软件资源目录
mount /dev/cdrom /mnt/cd1         挂载DVD1
mount /dev/cdrom1 /mnt/cd2         挂载DVD2
二,ks文件的准备
    ks文件由系统安装所得anaconda-ks.cfg进行修改,当然也可以用system-config-kickstart工具制作而得,此处省略ks制作方法。
# Kickstart file automatically generated by anaconda.
#Itnihao OS
#date 2012-04-24
#version=V1.0
install              
text     
cdrom
lang en_US.UTF-8
keyboard us
skipx
network --onboot yes --device eth0 --bootproto static --ip 192.168.16.154 --netmask 255.255.255.0 --gateway 192.168.16.1 --noipv6 --nameserver 114.114.114.114
rootpw itnihao
firewall --service=ssh --port=80:tcp
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Chongqing
bootloader --location=mbr --driveorder=sda --append=" rhgb crashkernel=auto 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
clearpart --all --initlabel
part /boot --fstype=ext4 --size=2000
part /var --fstype=ext4 --size=80000
part swap --size=5000
part / --fstype=ext4 --grow --size=200
 
reboot
#repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
 
%packages --nobase
@base
@chinese-support
@client-mgmt-tools
@core
@development
@legacy-unix
@network-file-system-client
@network-tools
@php
@performance
@perl-runtime
@system-management-snmp
@server-policy
@system-admin-tools
@web-server
sgpio
imake
tcp_wrappers
iptraf
php-mysql
perl-DBD-SQLite
rrdtool
crypto-utils
perl-Cache-Memcached
perl-CGI-Session
perl-CGI
lrzsz
bind
bind-chroot
bind-devel
mysql
perl-DBD-MySQL
mysql-server
mysql-devel
createrepo
python-devel
-vconfig
-rng-tools
-readahead
-prelink
-rfkill
-pinfo
-rdate
-words
-pm-utils
-pcmciautils
-usbutils
-samba-client
-nfs4-acl-tools
-nfs-utils
-cifs-utils
-webalizer
-httpd-manual
zlib-devel
openssl-devel
openssl-perl
openssl098e  
%post --nochroot        此处是定义从光盘拷贝文件到安装后的系统
cp /mnt/source/Packages/conf/settings.sh /mnt/sysimage/tmp/
mv /mnt/sysimage/etc/httpd/conf/httpd.conf /mnt/sysimage/etc/httpd/conf/httpd.conf.back
mv /mnt/sysimage/etc/snmp/snmpd.conf /mnt/sysimage/etc/snmp/snmpd.conf.back
cp /mnt/source/Packages/conf/httpd.conf /mnt/sysimage/etc/httpd/conf/httpd.conf
cp /mnt/source/Packages/conf/snmpd.conf /mnt/sysimage/etc/snmp/snmpd.conf
cp /mnt/source/Packages/cacti.tar.gz /mnt/sysimage/tmp
%post                  从光盘切换到新安装的系统里面,相当于chroot的功能
/tmp/settings.sh       运行自定义脚本,对新安装的系统进行设置,系统优化参数都可以写在此脚本,各位童鞋只有发挥
cd /tmp
tar zxvf cacti.tar.gz -C /var/www/html  此处是安装cacti,下面都是对cacti的安装
service mysqld restart              
mysqladmin -uroot password itnihao
mysql -uroot -pitnihao -e "create database cacti;"
mysql -uroot -pitnihao -D cacti -e "source /var/www/html/cacti/cacti.sql"
mysql -uroot -pitnihao -e "grant all privileges on cacti.* to cacti@localhost identified by 'cacti';"
mysql -uroot -pitnihao -e "flush privileges;"
#mysql -ucacti -pcacti -D cacti</var/www/html/cacti/cacti.sql
sed -i "s/cactiuser/cacti/g" /var/www/html/cacti/include/config.php
sed -i "s/;date.timezone/wqdate.timezone =\/Asia\/Chongqing/g" /etc/php.ini
chmod 777 -R /var/www/html/cacti/rra    /var/www/html/cacti/log
echo "* * */2 * * /usr/sbin/ntpdate time-a.nist.gov && hwclock -w" >/tmp/crontab.tmp
crontab -uroot /tmp/crontab.tmp
 
/usr/sbin/eject   弹出光盘
rm /tmp/*         删除/tmp/*下文件
%end             结束
三,定制系统文件的准备
新定制系统由以上系统组件包说决定,文件由安装日志得来
awk -F "Installing" '{print $2}' ~/install.log |sed -e '/^$/d' -e 's/^ //g' >/home/source/packges.list
for packges in `cat /home/source/packges.list`
do
cp /mnt/cd1/Packages/$packges* /home/centos/Packages
[ $? != 0 ] && echo "copy $packges is faied!"&& cp /mnt/cd2/Packages/$packges* /home/centos/Packages
done
rsync -a --exclude=Packages /mnt/cd1 /home/centos  注意rsync拷贝了影藏文件
ls -a /home/centos/.discinfo  查看discinfo文件是否已经拷贝过来,没有的从原光盘中拷入。
四,生成新的配置文件
rm -rf /home/centos/repodata 
cd /home/centos 
createrepo /home/centos/ #重新生成repodata文件
createrepo -g repodata/repomd.xml /home/centos #创建组文件,此处似乎有bug,需经过以下处
vim repodata/repomd.xml 将goup文件重新改写
=================================================
<data type="group_gz">
    <location xml:base="media://1323560292.885204#1" href="repodata/bedb7dc8fdf920deffbdc5a70ea0d6d77255656556184f5e996e8a88a
63d145c-c6-x86_64-comps.xml.gz"/>
    <checksum type="sha256">bedb7dc8fdf920deffbdc5a70ea0d6d77255656556184f5e996e8a88a63d145c</checksum>
    <open-checksum type="sha256">3a27232698a261aa4022fd270797a3006aa8b8a346cbd6a31fae1466c724d098</open-checksum>
    <timestamp>1324003565</timestamp>
 </data>
 <data type="group">
    <location xml:base="media://1323560292.885204#1" href="repodata/3a27232698a261aa4022fd270797a3006aa8b8a346cbd6a31fae1466c
724d098-c6-x86_64-comps.xml"/>
   <checksum type="sha256">3a27232698a261aa4022fd270797a3006aa8b8a346cbd6a31fae1466c724d098</checksum>
   <timestamp>1324003565</timestamp>
 </data>
=====================================================
/home/centos/repodata存在以下文件,没有的文件需要从光盘里面复制到此,这里要特别注意,为成功安装的关键
#ls /home/centos/repodata
207ae7829f9e94a26b62d3d2d370c39c43e020f5a56d01baff38f85c5d4323e7-primary.xml.gz
3a27232698a261aa4022fd270797a3006aa8b8a346cbd6a31fae1466c724d098-c6-x86_64-comps.xml  
badeded316fc87571779d92c5cde816fdc357646b84cb191c4611e05c981ffa1-c6-x86_64-comps.xml.gz
bedb7dc8fdf920deffbdc5a70ea0d6d77255656556184f5e996e8a88a63d145c-c6-x86_64-comps.xml.gz
filelists.xml.gz
other.xml.gz
primary.xml.gz
repomd.xml
repomd.xml.gz
 
五,系统logo的修改
如何修改安装过程中的centos字样呢?
5.X定制使用如下方法
如何去掉安装过程中的CentOS 字样?
在安装光盘里面有两个.buildstamp 文件,一个位于stage2.img 中,一个位于initrd.img 中,
安装光盘运行时读取的是initrd.img 中的那个.buildstamp 文件,所以只要把initrd.img 文件改了就可以了。
如何解压initr.dimg 文件:
2.6 内核中的initrd.img 采用cpio 压缩,不再是2.4 内核使用的ext2 格式,无法使用mount -o loop挂载。需要使用gunzip 解压缩,然后再使用利用cpio 给img 解包
#cd /home/centos/isolinux/
#cp initrd.img /tmp/initrd.img.gz
#cd /tmp
#gunzip initrd.img.gz
#mkdir initrd
#mv initrd.img initrd
#cd initrd
#cpio -ivmd < initrd.img
仍后修改.buildstamp 文件,将CentOS 改为Itnihao 即可.
如何制作initrd.img 文件:
#假设当前目录位于准备好的initrd 文件系统的根目录下
#find . | cpio -c -o > ../initrd.img
#gzip ../initrd.img
#mv initrd.img.gz initrd.img
#rm /home/centos/isolinux/initrd.img
#cp initrd.img /home/centos/isolinux/
仍后将initrd.img 复制到/ltos/isolinux/
6.X方法如下,为这个问题,纠结了一个半小时,官方文档找到解决办法
#mkdir /tmp/initrd
#cp /mnt/cd1/isolinux/initrd.img /tmp/initrd
#cd /tmp/initrd
#xz -dc initrd.img | cpio -id   不在使用原先的gzip格式
#rm initrd.img                   解压完毕,删除原先的initrd.img文件
#vim /tmp/initrd/.buildstamp     编辑此文件
201204251719.x86_64
Itnihao                           修改此处,变为自己的标识符
1.0
# find . | cpio -c -o | xz -9 --format=lzma > initrd.img  重新生成img文件
xz: Adjusted LZMA1 dictionary size from 64 MiB to 26 MiB to not exceed the memory usage limit of 320 MiB             此处似乎是警告,忽略不管,对结果没有影响
#rm /home/centos/isolinux/initrd.img   删除源img文件
#cp /tmp/initrd/initrd.img /home/centos/isolinux/initrd.img  拷贝新img文件
 
最终,系统目录下面存在以下文件
 .discinfo
 EFI
 EULA 
 GPL
 images
 isolinux
 ItnihaoOS_BuildTag 这个可以自己修改的
 Packages
 repodata
 TRANS.TBL
 .treeinfo
多余文件可以全部删除
六,引导文件的修改
vim /home/centos/isolinux/isolinux.cfg
default auto
timeout 600
label auto
kernel vmlinuz
append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img 设置ks文件位置 initrd位置
display boot.msg
 
七,ISO文件的生成
mkisofs -o /home/tistoneOS.iso -V tistoneOS -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T -joliet-long /home/centos-tistone
八.写入MD5

#/usr/bin/implantisomd5 centos6.5Release.iso

(将md5值嵌入ISO中,防止复制过程中数据损坏;效验checkisomd5 centos6.5Release.iso。)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics