PXE+Kickstart安装CentOS 6.0


下了CentOS 6.0,它的发布好像是很轰动的事,那几天有关Linux的网站上到处是对其的大肆宣扬。我下的版本是CentOS-6.0-x86_64-bin-DVD,分为3个iso镜像(其中1是服务器的主体,2是很多提供的rpm包,3是网络启动所需要的内核镜像),使用Kickstart安装时可以用iso1就够了(亲自验证)完整安装过程(使用虚拟机):

相关阅读:CentOS 6.0 正式版发布附下载地址

1、首先启动一台已经安装好系统的机器(我用的是CentOS 5.4),使用它作为TFTP服务器,DHCP服务器,FTP服务器。配置它们:

  1. yum -y install tftp 
  2. yum -y install tftp-server  //tftp的启动是不需要daemon的,需要xinetd 
  3. yum -y install vsftpd 
  4. yum -y install dhcp 

2、简单的配置以上这些服务:

  1. vim /etc/xinetd.d/tftp 
  2. --------------------- 
  3. service tftp 
  4. {   socket_type = dgram 
  5.     protocal = udp 
  6.     wait = yes 
  7.     user = root 
  8.     server = /usr/sbin/in.tftpd 
  9.     server_args = -s /tftpboot     //这些参数尽量和我写的一致,不过也可以根据情况变更 
  10.     disable = no 
  11.     per_source = 11 
  12.     cps = 100 2 
  13.     flags = IPv4 
  14. --------------------- 
  15. vim /etc/dhcp/dhcpd.conf 
  16. --------------------- 
  17. ddns-update-style interiml; 
  18. ignore client-updates; 
  19. subnet 192.168.2.2 netmask 255.255.255.0 
  20. {   option routers    192.168.2.2;     //其中这个192.168.2.2是我这台服务器的ip地址 
  21.     option subnet-mask    255.255.255.0; 
  22.     filename "pxelinux.0"
  23.     next-server 192.168.2.2; 
  24.     option domain-name-servers 192.168.2.2; 
  25.     optime time-offset    -18000; 
  26.     range dynamic-bootp 192.168.2.3 192.168.2.30; 
  27.     default-lease-time 21000; 
  28.     max-lease-time 43200; 
  29. } 
  30. --------------------- 
  31. service vsftpd start 
  32. service xinetd restart 
  33. service dhcpd restart 

3、建立可供需要安装系统的计算机使用的启动引导文件:

  1. mkdir /tftpboot 
  2. mkdir /tftpboot/pxelinux.cfg 
  3. cp /.../pxelinux.0 /tftpboot/    //其中的...是根据自己电脑上路径填写的,也就是找到pxelinux.0这个文件 
  4. cp /media/CentOS-6.0-netinstall/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default    //先将iso3挂载,将里面的isolinux.cfg initrd vmlinuz复制出来 
  5. cp /media/CentOS-6.0-netinstall/images/pxeboot/initrd.img /tftpboot/ 
  6. cp /media/CentOS-6.0-netinstall/images/pxeboot/vmlinuz /tftpboot/ 
  7. chmod u+w /tftpboot/pxelinux.cfg/default 
  8.  
  9. vim /tftpboot/pxelinux.cfg/default 
  10. ------------------- 
  11. default fenix 
  12. prompt 1 
  13. timeout 600 
  14. display boot.list 
  15.  
  16. label fenix 
  17.   menu label ^Install or upgrade an existing system 
  18.   menu default 
  19.   kernel vmlinuz 
  20.   append initrd=initrd.img ks=ftp://192.168.2.2/ks.cfg 
  21. ------------------- 

4、编写Kickstart自动安装脚本(可以使用system-config-kickstart可视程序生成):

  1. vim /var/ftp/ks.cfg 
  2. ------------------ 
  3.  auth  --useshadow  --enablemd5 
  4.  bootloader --location=mbr 
  5.  zerombr 
  6.  clearpart --all --initlabel 
  7.  graphical 
  8.  firewall --disabled 
  9.  firstboot --disable 
  10.  keyboard us 
  11.  lang zh_CN 
  12.  logging --level=info 
  13.  url --url=ftp://192.168.2.2/pub  //这个路径实际就是/var/ftp/pub
  14.  network --bootproto=dhcp --device=eth0 --onboot=on 
  15.  reboot 
  16.  rootpw --iscrypted $1$DWk4vKDK$r5rJS12L5XW1G8CdTdDvm0 
  17.  
  18.  selinux --disabled 
  19.  timezone --isUtc Asia/Shanghai 
  20.  install 
  21.  part /boot --fstype=ext3 --size=128 
  22.  part / --fstype=ext3 --size=1 --grow 
  23.  part swap --recommended 
  24.  
  25.  %packages       //我没有安装X Window 
  26. ------------------ 

5、将CentOS-6.0的第一个镜像,挂载在/var/ftp/pub中。

6、好了,现在就可以在网络上启动需要安装系统的机器了,前提是该机器的网卡必须支持PXE,并在BIOS中选择从网络启动。启动时什么都不需要点,首先它会自动使用PXE在网络上搜索DHCP服务器,并获取IP;然后通过TFTP服务器将initrd.img和vmlinuz从服务器上提取下来装入自己的内存;然后启动anaconda安装,因为是从netinstall上提取的vmlinuz,它会自动识别为网络安装,然后搜索到FTP服务器,从上提取出Kickstart脚本ks.cfg;最后按照脚本安装系统。

相关内容