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/winXP/win7/win8,linux系列系统等。
pxe的工作流程
1.客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP
2.DHCP服务器返回分给客户机IP以及bootstrap文件的放置位置(该文件一般是放在一台TFTP服务器上)
3.客户机向本网络中的TFTP服务器索取bootstrap文件
4.客户机取得bootstrap文件后之执行该文件
5.根据bootstrap的执行结果,通过TFTP服务器加载内核和文件系统
6.进入安装画面,此时可以通过选择FTP,HTTP,NFS方式之一进行安装(常用HTTP)
1 服务安装
yum install dhcp tftp-server httpd syslinux -y
systemctl stop firewalld
httpd ##共享安装资源
dhcp ##分配ip以及让客户主机获取pexlinux.0文件
syslinux ##提供pxelinux.0文件
tftp-server ##提供tftp协议,令客户主机可以读取到预安装环境
2 开启tftp服务
tftp服务器由tftp-server软件包提供,默认由xinetd超级服务进行管理,因此配置文件位于/etc/xinetd.d/tftp。配置时只要将“disable = yes”改为“disable = no”,然后再启动xinetd服务即可。
vim /etc/xinetd.d/tftp
14 disable = no ##打开tftp服务
systemctl restart xinetd.service
netstat -antlupe| grep 69
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
mkdir pxelinux.cfg
寻找镜像文件中的isolinux中的所有文件
cp isolinux.cfg pxelinux.cfg/default
## isolinux/目录下有目录有内核和初始化文件等,复制到/var/lib/tftpboot/,在pexlinux.0引导客户主机访问tftp时,访问这些文件
## pxelinux.0:预安装环境头文件,用来指定读取后续文件的程序
3 配置dhcp服务器
[root@server ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@server ~]# vim /etc/dhcp/dhcpd.conf
[root@server ~]# systemctl restart dhcpd
13 filename “pxelinux.0”; ##客户主机获得到的预安装环境头文件
12 next-server 172.25.254.139; ##指定头文件所在主机的ip
整一个虚拟机,让它从网卡启动:
开启虚拟机:可以看到它从156上面动态获取到了ip
需要进行到这一步
4 修改配置文件
vim /var/lib/tftpboot/pxelinux.cfg/default
2 timeout 30 ##等待时间
11 menu title HELLO WORLD!!! ##标签名称
64 menu default ##默认选项
65 append initrd=initrd.img repo=http://172.25.254.56/rhel7.0 ##http源
5 配置ks.cfg文件
yum install system-config-kickstart -y
ksvalidator ks.cfg ##查看ks.cfg文件有没有语法错误
详细请看:http://blog.csdn.net/qq_36462472/article/details/78397287
将ks.cfg文件保存到/var/www/html/下
修改default文件,在其中添加ks.cfg文件的路径
kernel vmlinuz ##启动的内核文件
append initrd=initrd.img repo=http://172.25.254.139/rhel7.0 ks=http://172.25.254.139/ks.cfg quiet ##初始化镜像 / ##安装资源 / ##自动安装脚本
之后再次重新从网卡启动启动一台虚拟机,它就会自动化安装。