笔者之前也配置过RHEL5.4的PXE+KickStart自动安装,这次在RHEL6上面测试了下PXE+KickStart配置,发现6和5版本对比存在一些细微的差别,因而记录操作步骤如下,在开始操作之前先理解下PXE(Pre-boot Execution Environment)的工作机制,首先客户端从网卡启动,通过DHCP获取到IP地址,紧接着从TFTP服务器上获取pxelinux.0,vmlinuz,initrd.img等文件;所以在DHCP配置文件中除了配置客户端获取的TCP/IP配置信息外,还需要指定TFTP服务器的地址(通过next-server参数指定)和起始文件的名称(通过filename参数指定,通常文件名pxelinux.0,位于RHEL6系统的/usr/share/syslinux目录下,由syslinux软件包提供,若不存在该文件则需要安装该RPM软件包);在获取了内核文件和初始化闪存盘文件后,PXE客户端将会把这些文件载入内存运行起一个只具基本功能的小linux,然后通过再次从DHCP服务器上获取IP配置信息和从TFTP服务器指定的default文件找到kickstart文件,根据文件的内容完成系统的自动安装,若安装文件出错或找不到,将停止安装。

RHEL5.4的PXE+KickStart配置请参考如下日志:
http://hi.baidu.com/naruto6006/blog/item/01da8844a0ec7e2dcffca316.html

环境介绍

PXE服务器:
IP:192.168.50.24/24
操作系统:RHEL6 64位
安装介质:通过FTP安装,使用autofs技术将iso文件本地挂载到/var/ftp/pub/iso目录下;ks.cfg文件同样采用FTP方式发布,位于FTP服务器根目录下
autofs配置如下:
[root@rhel6 ~]# grep 'ftp' /etc/auto.master 
/var/ftp/pub /etc/auto.ftp
[root@rhel6 ~]# cat /etc/auto.ftp 
iso      -fstype=iso9660,ro,loop :/shared/ISO/rhel6_64.iso

PXE客户端:
IP:通过DHCP指定,地址范围为192.168.50.190-195/24
软件环境:WIN7+Wmware7.0,使用桥接网络,选择IDE磁盘(若选择SCSI磁盘,可能会出现找不到硬盘的情况,只在VMware环境中会出现这种情况)
WIN7_IP:192.168.50.40/24

安装需求:
实现全自动安装;分区规范为/tmp分区2G,/boot分区100M,Swap分区4G,根分区为LVM,大小为30G,/www分区为LVM,占全部的剩余空间;安装带图形桌面的基本软件包;初始密码为123456;关闭
selinux和防火墙;更多配置可以查看ks.cfg文件(包含在附件中),ks文件可由system-config-kickstart程序生成模板,然后根据实际需求进行修改,如果有特殊的安装需求,可以自行编辑%post节的内容,该节支持shell脚本,可以在系统安装完成后执行配置IP,yum客户端等一系列自定义参数,但需要手动编写shell脚本

下面开始记录RHEL6的安装主要步骤:

1:在RHEL6安装vsftpd,dhcp和tftp-server软件包,直接通过yum命令安装即可,在RHEL6上dhcp的主配置文件为/etc/dhcp/dhcpd.conf,tftp服务器的默认工作目录为/var/lib/tftpboot

2:在RHEL6修改dhcp和tftp配置文件,修改default文件指定kickstart配置文件位置,具体配置可查看上述的5.4配置(也可查看附件中dhcpd.conf文件)

3:在RHEL6上准备TFTP环境所需的相关文件,具体配置可查看上述的5.4配置

4:在RHEL6上启动dhcp和tftp服务进程

5:在WIN7上启动vmware执行测试安装

相关日志内容如下:
[root@rhel6 ~]# tail -f /var/log/xferlog 
Thu Dec 30 11:12:58 2010 1 192.168.50.190 1657 /ks.cfg b _ o a 
ftp@example.com ftp 0 * c

[root@rhel6 ~]# cat /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1

lease 192.168.50.190 {
  starts 4 2010/12/30 04:16:53;
  ends 4 2010/12/30 05:56:53;
  cltt 4 2010/12/30 04:16:53;
  binding state active;
  next binding state free;
  hardware ethernet 00:0c:29:00:7b:f4;

}