Shell脚本+Kickstart文件定制CentOS 6

字体大小: 中小 标准 ->行高大小: 标准

写了一个脚本(见下面的链接),利用kickstart文件 + 脚本来生成自动安装的ISO, 基于CentOS 6的,在CentOS 6.2下测试没问题,估计CentOS 6.*都没什么问题

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2012年资料/3月/30日/Shell脚本+Kickstart文件定制CentOS 6/

这个脚本的最大的特点就是不需要CentOS的官方原版ISO镜像,所有需要的文件都是通过网络下载,有的是从sohu的镜像源,有的是163的(分散压力,呵呵) 这样做的还有一个好处就是安装的rpm包都是最新的,进入系统之后,不需要yum -y update了 (适合有洁癖的人) 

然后,rpm包都是通过yum安装,这里我安装了一个yum的插件,达到只下载不安装的目的,另外就是用yum的时候,还指定了一个--installroot的参数,让yum不去读本机的数据库,如果不加这个参数,就不能顺利的下载本机已经安装过的包

ks.cfg是用system-config-kickstart生成的kickstart配置文件,如果没有这个命令,就yum -y install system-config-kickstart来安装一下就行,也可以通过修改本地/root目录下的ananconda-ks.cfg,但需要注意的是这个文件里面有一行需要注释掉或者删除掉
repo --name="CentOS" --baseurl=cdrom:sr0 --cost=100
如果不注释,安装的时候,ananconda会找这个yum源 

下面贴出脚本

 

  1. #!/bin/bash if [ ! -e  /root/xiaosu.cfg ];then 
  2. echo "you must put the kickstart file named xiaosu.cfg to /root/" exit 1 
  3. fi yum -y install  yum-plugin-downloadonly createrepo genisoimage 
  4. mv /etc/yum.repos.d/  /etc/yum.repos.d.bak mkdir /etc/yum.repos.d  
  5. cat >/etc/yum.repos.d/suzezhi.repo << EOF [suzezhi-base] 
  6. name=CentOS-$releasever - Base - 163.com baseurl=http://mirrors.163.com/centos/6/os/x86_64/ 
  7. gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 
  8.  [suzezhi-updates] 
  9. name=CentOS-$releasever - Updates - 163.com baseurl=http://mirrors.163.com/centos/6/updates/x86_64/ 
  10. gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 
  11.  #additional packages that may be useful 
  12. [suzezhi-extras] name=CentOS-$releasever - Extras - 163.com 
  13. baseurl=http://mirrors.163.com/centos/6/extras/x86_64/ gpgcheck=1 
  14. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6  
  15. #additional packages that extend functionality of existing packages [suzezhi-centosplus] 
  16. name=CentOS-$releasever - Plus - 163.com baseurl=http://mirrors.163.com/centos/6/centosplus/x86_64/ 
  17. gpgcheck=1 gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 
  18.  #contrib - packages by Centos Users 
  19. [suzezhi-contrib] name=CentOS-$releasever - Contrib - 163.com 
  20. baseurl=http://mirrors.163.com/centos/6/contrib/x86_64/ gpgcheck=1 
  21. gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6 EOF 
  22.  mkdir -p /tmp/suzezhi/temp 
  23. cd /tmp/suzezhi/temp wget -r --no-parent -c --cut-dirs=4 --reject=gz --exclude-directories=centos/6/os/x86_64/Packages http://mirrors.sohu.com/centos/6/os/x86_64/ 
  24. find . -name index.html -exec rm -f {} \;  
  25. cat >> /tmp/suzezhi/temp/yum.conf <<EOF [main] 
  26. cachedir=/var/cache/Packages keepcache=0 
  27. debuglevel=2 logfile=/var/log/yum.log 
  28. exactarch=1 obsoletes=1 
  29. gpgcheck=1 plugins=1 
  30. installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum 
  31. distroverpkg=centos-release EOF 
  32. for i in $(awk '/^%packages$/,/^%end$/' /root/xiaosu.cfg  |grep -v -E  '%end|%packages'); do yum --installroot=/tmp/suzezhi/test -c yum.conf  --downloadonly --downloaddir=/tmp/suzezhi/Packages -y  install $i 
  33. done rm -rf  /etc/yum.repos.d  
  34. mv /etc/yum.repos.d.bak  /etc/yum.repos.d cd /tmp/suzezhi/ 
  35. mv Packages/ /tmp/suzezhi/temp/mirrors.sohu.com/ cd /tmp/suzezhi/temp/mirrors.sohu.com 
  36. cat > .discinfo  << EOF 1333560292.885204 
  37. 6 x86_64 
  38. 1 EOF 
  39. cat > .treeinfo << EOF [general] 
  40. family = CentOS timestamp = 1333560005.81 
  41. variant =  totaldiscs = 1 
  42. version = 6 discnum = 1 
  43. packagedir = Packages  arch = x86_64 
  44.  [images-x86_64] 
  45. kernel = images/pxeboot/vmlinuz initrd = images/pxeboot/initrd.img 
  46.  [images-xen] 
  47. kernel = images/pxeboot/vmlinuz initrd = images/pxeboot/initrd.img 
  48.  [stage2] 
  49. mainimage = images/install.img EOF 
  50. cp /root/xiaosu.cfg . sed -i "/menu default/d" isolinux/isolinux.cfg 
  51. cat >> isolinux/isolinux.cfg << EOF label auto 
  52.   menu label ^Auto install an  system   menu default 
  53.   kernel vmlinuz   append ks=cdrom:/xiaosu.cfg initrdinitrd=initrd.img  
  54. EOF mv repodata/*-comps.xml . 
  55. rm -f repodata/* mv *-comps.xml repodata 
  56. createrepo -d  --unique-md-filenames   -g repodata/*-comps.xml . cd .. 
  57. mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -o /root/xiaosu.iso -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table mirrors.sohu.com/ rm -rf /tmp/suzezhi 

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/57338.html