感谢支持
我们一直在努力

CentOS 6.2_X86_64系统定制详细版

关于CentOS5.X的系统定制,网上有不少很好的资料,但本人在实践6.X系统定制的时候,遇到问题不少,此文是对本次系统定制的一个总结,大家多多交流。


CentOS 6.2 X86_64有两张DVD,第二张DVD也用得到,所以定制光盘的时候,需要把两张光盘都下载到本地。


系统环境


vm7.14+CentOS 6.2_86_64系统


首先给虚拟机建立2个光驱,用CentOS6.2安装系统,当然也可以不用安装系统这个CentOS6.2系统,在其他5.X版本上制作也一样,但推荐安装,CentOS6.X图形化安装需要700M内存,之前我设置的是400M,直接进入text安装,且无法手动分区,此为系统bug,安装之后可以得到anaconda-ks.cfg,当然也可以用system-config-kickstart工具制作,关于ks制作,此处不讲解,附上我的ks文件内容:


ks.cfg文件内容(ks文件决定需要复制哪些文件包)



  1. # Kickstart file automatically generated by anaconda.  
  2.  
  3. #version=DEVEL 
  4. install  
  5. text  
  6. cdrom  
  7. lang en_US.UTF-8  
  8. keyboard us  
  9. skipx  
  10. 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  
  11. rootpw  itnihao  
  12. firewall –service=ssh –port=9090:tcp  
  13. authconfig –enableshadow –passalgo=sha512 
  14. selinux –enforcing  
  15. timezone –utc Asia/Chongqing  
  16. bootloader –location=mbr –driveorder=sda –append=” rhgb crashkernel=auto quiet” 
  17. # The following is the partition information you requested  
  18. # Note that any partitions you deleted are not expressed  
  19. # here so unless you clear all partitions first, this is  
  20. # not guaranteed to work  
  21. #clearpart –none  
  22. clearpart –all –initlabel   
  23. part /boot –fstype=ext4 –size=2000 
  24. part /var –fstype=ext4 –size=100000 
  25. part swap –size=5000 
  26. part / –fstype=ext4 –grow –size=200 
  27.  
  28. reboot  
  29. #repo –name=“CentOS”  –baseurl=cdrom:sr0 –cost=100 
  30.  
  31. %packages  –nobase  
  32. @base  
  33. @chinese-support  
  34. @client-mgmt-tools  
  35. @core  
  36. @development  
  37. @legacy-unix  
  38. @network-file-system-client  
  39. @network-tools  
  40. @php  
  41. @performance  
  42. @perl-runtime  
  43. @system-management-snmp  
  44. @server-policy  
  45. @system-admin-tools  
  46. @web-server  
  47. sgpio  
  48. imake  
  49. tcp_wrappers  
  50. iptraf  
  51. php-mysql  
  52. perl-DBD-SQLite  
  53. rrdtool  
  54. crypto-utils  
  55. perl-Cache-Memcached  
  56. perl-CGI-Session  
  57. perl-CGI  
  58. lrzsz  
  59. bind  
  60. bind-chroot  
  61. bind-devel  
  62. mysql  
  63. perl-DBD-MySQL  
  64. mysql-server  
  65. mysql-devel  
  66. createrepo  
  67. python-devel  
  68. -vconfig  
  69. -rng-tools  
  70. -readahead  
  71. -prelink  
  72. -rfkill  
  73. -pinfo  
  74. -rdate  
  75. -words  
  76. -pm-utils  
  77. -pcmciautils  
  78. -usbutils  
  79. -samba-client  
  80. -nfs4-acl-tools  
  81. -nfs-utils  
  82. -cifs-utils  
  83. -webalizer  
  84. -httpd-manual
  85. zlib-devel  
  86. openssl-devel  
  87. openssl-perl   
  88. openssl098e    
  89. %post –nochroot  #在没有切换到安装后系统的时候运行的命令,用于在光盘拷贝文件到系统
  90. cp /mnt/source/Packages/conf/settings.sh /mnt/sysimage/tmp/  
  91. mv /mnt/sysimage/etc/httpd/conf/httpd.conf /mnt/sysimage/etc/httpd/conf/httpd.conf.back  
  92. mv /mnt/sysimage/etc/snmp/snmpd.conf /mnt/sysimage/etc/snmp/snmpd.conf.back  
  93. cp /mnt/source/Packages/conf/httpd.conf /mnt/sysimage/etc/httpd/conf/httpd.conf  
  94. cp /mnt/source/Packages/conf/snmpd.conf /mnt/sysimage/etc/snmp/snmpd.conf  
  95. cp /mnt/source/Packages/cacti.tar.gz /mnt/sysimage/tmp  
  96. %post             #进入安装后的系统
  97. /tmp/settings.sh  
  98. cd /tmp  
  99. tar zxvf cacti.tar.gz -C /var/www/html  
  100. service mysqld restart  
  101. mysqladmin -uroot password itnihao  
  102. mysql -uroot -pitnihao -e “create database cacti;”  
  103. mysql -uroot -pitnihao -D cacti -e “source /var/www/html/cacti/cacti.sql”  
  104. mysql -uroot -pitnihao -e “grant all privileges on cacti.* to cacti@localhost identified by ‘cacti’;”  
  105. mysql -uroot -pitnihao -e “flush privileges;”  
  106. #mysql -ucacti -pcacti -D cacti</var/www/html/cacti/cacti.sql  
  107. sed -i “s/cactiuser/cacti/g” /var/www/html/cacti/include/config.php  
  108. chmod 777 -R /var/www/html/cacti/rra    /var/www/html/cacti/log  
  109. #sntp -P no -r pool.ntp.org  
  110. #hwclock -w  
  111. /usr/sbin/eject  
  112. rm /tmp/*  
  113. %end 

#复制系统安装文件到定制的系统目录



  1. mkdir /mnt/cd{1,2}
    mkdir /home/centos/Packages -p
    mkdir /home/source
    mount /dev/cdrom /mnt/cd1
    mount /dev/cdrom1 /mnt/cd2
    mount /dev/cdrom /mnt/cd1
    mount /dev/cdrom1 /mnt/cd2
    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`

  2. do  
  3. cp /mnt/cd1/Packages/$packges*  /home/centos/Packages  
  4. [ $? != 0 ] && echo “copy  $packges is faied!”  
  5. done  
  6.  
  7. rsync -a –exclude=Packages /mnt/cd1/  /home/centos  
  8. rm -rf /home/centos/repodata  
  9. cd /home/centos  
  10. createrepo /home/centos/  #重新生成repodata文件
  11. createrepo -g repodata/repomd.xml /home/centos #创建组文件,此处似乎有bug,需经过以下处理

附件中有我的packges.list文件列表


前面的内容,百度都能搜到,下面内容是成功的关键所在


vim repodata/repomd.xml


原文件为 



  1.   </data> 
  2.   <data type=“group_gz”> 
  3.     <location href=“repodata/repomd.xml.gz”/> 
  4.     <checksum type=“sha256”>76f27114ff5588340a0b175f382a6c32185f94b36fc3495b8ae03db5724a943f</checksum> 
  5.     <open-checksum type=“sha256”>ae80d0c6948e128556f79d5b8b69b030899f5a825ada4a0779c29f5f94b9d912</open-checksum> 
  6.     <timestamp>1335105744</timestamp> 
  7.   </data> 
  8.   <data type=“group”> 
  9.     <location href=“repodata/repomd.xml”/> 
  10.     <checksum type=“sha256”>ae80d0c6948e128556f79d5b8b69b030899f5a825ada4a0779c29f5f94b9d912</checksum> 
  11.     <timestamp>1335105744</timestamp> 
  12.   </data> 
  13. </repomd> 

修改为



  1. <data type=“group_gz”> 
  2.     <location xml:base=“media://1323560292.885204#1” href=”repodata/bedb7dc8fdf920deffbdc5a70ea0d6d77255656556184f5e996e8a88a  
  3. 63d145c-c6-x86_64-comps.xml.gz”/> 
  4.     <checksum type=“sha256”>bedb7dc8fdf920deffbdc5a70ea0d6d77255656556184f5e996e8a88a63d145c</checksum> 
  5.     <open-checksum type=“sha256”>3a27232698a261aa4022fd270797a3006aa8b8a346cbd6a31fae1466c724d098</open-checksum> 
  6.     <timestamp>1324003565</timestamp> 
  7.   </data> 
  8.   <data type=“group”> 
  9.     <location xml:base=“media://1323560292.885204#1” href=”repodata/3a27232698a261aa4022fd270797a3006aa8b8a346cbd6a31fae1466c  
  10. 724d098-c6-x86_64-comps.xml”/> 
  11.    <checksum type=“sha256”>3a27232698a261aa4022fd270797a3006aa8b8a346cbd6a31fae1466c724d098</checksum> 
  12.    <timestamp>1324003565</timestamp> 
  13.  </data> 

不修改上面的group,安装的时候会提示无法找到group组里面的包,如core组件无法安装,导致系统无法安装,附图


CentOS 6.2_X86_64系统定制详细版

将ks.cfg文件复制到

  1. cp ks.cfg  /home/CentOS/isolinux/ks.cfg   
  2. #此处的ks.cfg可以自己制作,也可以用我上面的  关于ks文件中的自定义脚本和文件如下所示
    ls /home/centos/Packages/conf/
    httpd.conf  settings.sh  snmpd.conf

修改isolinux.cfg  ,此文件是光盘启动的自动应答第一步

  1. cat  /home/centos/isolinux/isolinux.cfg   
  2. default auto  
  3. timeout 600  
  4. label auto  
  5. kernel vmlinuz  
  6. append ks=cdrom:/isolinux/ks.cfg initrdinitrd=initrd.img  
  7. #default vesamenu.c32  
  8. #prompt 1  
  9.  
  10. display boot.msg  
  11.  

经过以上处理,系统可以成功定制,下面是对文件打包

  1. mkisofs -o itnihaoOS.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J  -v -T /home/centos 

总结一下,其实对系统简单的定制不是很难,难的是需要反复验证,反复测试,以上的内容经过测试完全可以使用.

赞(0) 打赏
转载请注明出处:服务器评测 » CentOS 6.2_X86_64系统定制详细版
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏