PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户?)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,
如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等。
---------------- 实现环境:32位centos6.4
使用FTP与client连接
网络拓扑图如下:
一:服务器设置
安装服务器应用软件:dhcp vsftp ftp-server syslinux
开启vsftpd服务并把安装资料拷贝到ftp服务的目录下/var/ftp/
编辑dhcp的配置文件dhcpd.conf
进去以后发现什么都没有使用底行模式读取/usr/share/doc/dhcp-4.1.0/dhcpd.conf.sample中的样配置。
在作用域中写入ftp服务器的ip地址子网掩码还有dhcp地址池的范围 (这里是作为实验用所以填写的是私网地址)
在作用域中用next-server写入tftp-server的位置和对应的文件名
检查语法并开启dhcp服务
编辑/etc/xinetd.d/tftp文件开启tftp服务
拷贝pex驱动/usr/share/syslinux/pxelinux.0到tftp服务的家目录/var/lib/tftpboot/
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
在tftp服务的家目录/var/lib/tftpboot/中创建pex驱动的配置目录lexlinux.cfg
[[email protected] tftpboot]# mkdir pxelinux.cfg
拷贝pxe的配置文件到pxelinux.cfg并把光盘中的镜像文件和内核文件拷贝到tftpboot下
编辑default文件
编辑一个脚本来管理client的主机名
#!/bin/bash
STRING=`ifconfig eth0 |grep ‘inet\>‘ |awk ‘{print $2}‘`
NUM=${STRING##*.}
sed -i -e "[email protected]*@[email protected]" /etc/sysconfig/network
sed -i -e "[email protected]*@BOOTPROTO=static\nIPADDR=192.168.2.$NUM\[email protected]" /etc/sysconfig/network-scripts/ifcfg-eth0
删除/etc/yum.repos.d/目录下的其他文件只留下CentOS-Media.repo
编辑CentOS-Media.repo文件
安装system-config-kickstart来产生ks.cfg文件
最后把把产生的ks.cfg文件拷贝到/var/ftp/目录下
客户机选择网络引导开始pxe自动安装centos系统
可以看出完全实现了自动安装