注:这个无人值守,下载可以实用tftp、vsftp、nfs、web等实现。---此列以tftp进行测试。

一 安装软件
需要安装以下软件,可以用rpm安装,这些包在系统盘里都能找到
vsftpd
tftp-server
xinetd
system-config-kickstart
dhcp
libdhcp4client
libdhcp
dhcp-devel
libdhcp4client-devel
libdhcp-devel
二 服务配置
需要的服务有vsftp tftp dhcp,下面将对这些服务一一的进行配置
1 ftp配置
安装完vsftpd,用默认的配置就可以,确保匿名用户能登录。在此不作详细介绍
2 tftp配置
安装tftp-server后在/etc/xinetd.d/下会有tftp文件,按照下面的配置修改,注意修改红色字体部分。
cat /etc/xinetd.d/tftp
service tftp
{

disable = no
       socket_type             = dgram
       protocol                = udp
       wait                    = yes
       user                    = root
       server                  = /usr/sbin/in.tftpd
server_args             = -s /tftpboot
       per_source              = 11
       cps                     = 100 2
       flags                   = IPv4
}
3 dhcp配置
安装好dhcp后,复制/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample到/etc下,并改名为dhcpd.conf,具体配置可以参考下文。
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
cat /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.151.0 netmask 255.255.255.0 {
   option routers            192.168.151.90;
   option subnet-mask        255.255.255.0;
   next-server 192.168.151.90; #该处指定的是tftp 服务器的ip
   filename    "pxelinux.0"; #pxe获得IP地址后的引导文件
   option domain-name-servers    202.96.209.133;
   option time-offset        -18000;    # Eastern Standard Time
   range dynamic-bootp 192.168.151.91 192.168.151.99;
   default-lease-time 21600;
   max-lease-time 43200;
}
三 制作相关文件
1 挂载linux系统光盘并将光盘中的相关文件复制到对应目录下。
mkdir /media
mount /dev/hdc on /media
2 复制文件到对应目录
mkdir /tftpboot/pxelinux.cfg
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
cp /media/p_w_picpaths/pxeboot/initrd.img /tftpboot
cp /media/p_w_picpaths/pxeboot/vmlinuz /tftpboot
cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
3 编辑 /tftpboot/pxelinux.cfg/default
/tftpboot/pxelinux.cfg/default默认没有写权限,要给予写权限
chmod +w /tftpboot/pxelinux.cfg/default
编辑后的default文件如下
cat /tftpboot/pxelinux.cfg/default
default linux
prompt 1
timeout 60
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
 kernel vmlinuz
#ks.cfg为kickstart配置文件,当有多张网卡时用ksdevice指定从哪张网卡启动网络安装,后面会介绍ks.cfg文件的制作方法
 append linux ks=ftp://192.168.151.90/pub/ks.cfg initrd=initrd.img ksdevice=eth0
label memtest86
 kernel memtest
 append -
4 ks.cfg文件配置
该文件是kickstart的配置文件,可以用各种文本编辑器修改该文件,也可以用system-config-kickstart编译工具来修改kickstart文件,同样也可以参照 anaconda-ks.cfg文件。anaconda-ks.cfg在linux系统/root下可以找到,把修改好的ks.cfg放到ftp下。
cat /var/ftp/pub/ks.cfg
text
auth --useshadow --enablemd5
bootloader --append="rhgb quiet" --location=mbr --driveorder=hda
zerombr
clearpart --linux --drives=hda
graphical
firewall --disabled
firstboot --disable
keyboard us
#很重要,跳过序列化输入
key --skip
lang en_US
logging --level=info
url --url=ftp://192.168.151.90/pub/OS
#dhcp获取ip
network --bootproto=dhcp --device=eth0
reboot
#root密码,md5值,本例为123456的md5值
rootpw --iscrypted $1$9UyMJMtm$ulLMj23O8TseWqLraUx49.
selinux --disabled
skipx
timezone --utc Asia/Shanghai
install
clearpart --linux --drives=hda
part /boot --fstype ext3 --size=100 --ondisk=hda
part /  --fstype ext3   --size=50000    --ondisk=hda
part swap       --size=1000      --ondisk=hda
#part pv.2 --size=0 --grow --ondisk=hda
#volgroup VolGroup00 --pesize=32768 pv.2
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=2048
#安装系统软件包
%packages
@admin-tools
@base
@chinese-support
@core
@development-libs
@development-tools
@dialup
@editors
@gnome-desktop
@gnome-software-development
@games
@graphical-internet
@graphics
@java
@java-development
@kde-software-development
@legacy-software-development
@legacy-software-support
@openfabrics-enterprise-distribution
@printing
@ruby
@sound-and-video
@system-tools
@text-internet
@x-software-development
@base-x
kexec-tools
iscsi-initiator-utils
fipscheck
device-mapper-multipath
sgpio
python-dmidecode
imake
emacs
libsane-hpaio
festival
audit
mesa-libGLU-devel
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
%post
#配置ip
ipaddr=`ifconfig eth0|grep -w inet|sed -e 's/^.*addr://' -e 's/Bcast:.*$//'`
sed -i "/BOOTPROTO/ s/dhcp/static/" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "/NOBOOT/ s/no/yes/" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "/DHCPCLASS=/d" /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPADDR=${ipaddr}" >>/etc/sysconfig/network-scripts/ifcfg-eth0
echo "NETMASK=255.255.255.0" >>/etc/sysconfig/network-scripts/ifcfg-eth0
#关闭无用服务
for server in `ls /etc/rc3.d/S*`;do
       curserver=`echo ${server}|cut -c 15-`
       echo ${curserver}
       case ${curserver} in
                       crond|irqbalance|microcode_ctl|network|random|sshd|syslog)
                       echo "basic services,skip"
                       ;;
                       *)
                       echo "set ${curserver} off"
                       chkconfig --level 2345 ${curserver} off
                       service ${curserver} stop
                       ;;
       esac
done
5 复制系统镜像文件
将/media下所有的文件复制到/var/ftp/pub/OS
mkdir /var/ftp/pub/OS
cp -r /media/* /var/ftp/pub/OS
到此pxe+kickstart安装配置工作基本结束,下面我们来重启一些服务
四 服务重启生效
service xinetd restart
service vsftpd restart
service dhcpd restart
五 裸机安装linux系统
裸机开启电源,等待即可完成安装,无需人工干预