PXE
1 pxe是什么?
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系列系统等。
2 pxe表现形式:
PXE最直接的表现是,在网络环境下工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的PC在网络方式下的运行速度要比有盘PC快3倍以上。当然使用PXE的PC也不是传统意义上的TERMINAL终端,因为使用了PXE的PC并不消耗服务器的CPU,RAM等资源,故服务器的硬件要求极低。
3 PXE启动原理
当计算机引导时,BIOS把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行
4 启动过程

下面让我们用PXE网络引导程序来安装一个虚拟机吧:
1.install #安装
yum install httpd dhcp tftp-server syslinux -y
httpd ##共享安装资源
dhcp ##分配ip以及让客户主机获取pxelinux.0文件
pxelinux.0 ##预安装环境头文件,用来指定读取后续文件的程序
tftp-server ##提供tftp协议,令客户主机可以读取到预安装环境
syslinux ##提供pxelinux.0文件
2.启动服务:
systemctl stop firewalld
systemctl disable firewalld
systemctl start httpd
systemctl enable httpd
##启用tftp服务
vim /etc/xinetd.d/tftp
14 disable= no
systemctl restart xinetd
chkconfig --list
xinetd based services:
chargen-dgram: off
chargen-stream: off
daytime-dgram: off
daytime-stream: off
discard-dgram: off
discard-stream: off
echo-dgram: off
echo-stream: off
tcpmux-server: off
tftp: on ##tftp服务开启
time-dgram: off
time-stream: off
2.1##启用dhcp服务
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
option domain-name "example.com"; ##客户主机域名
option domain-name-servers 172.25.254.254; ##客户主机获得到的dns
default-lease-time 600; ##默认租约期
max-lease-time 7200; ##最长租约期
log-facility local7; ##日志级别
subnet 172.25.254.0 netmask 255.255.255.0 { ##网段,子网掩码
range 172.25.254.60 172.25.254.70; ##ip地址池
option routers 172.25.254.250; ##客户主机获得到的网关
filename "pxelinux.0"; ##客户主机获得到的预安装环境头文件
next-server 172.25.254.100; ##指定头文件所在主机的ip
}
systemctl start dhcpd
systemctl enable dhcpd
3.设定共享文件
##制作安装源
mkdir /var/www/html/rhel7.0
mkdir /iso
mv /root/rhel-server-7.0-x86_64-dvd.iso /iso/
mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0/
vim /etc/rc.d/rc.local
mount /iso/rhel-server-7.0-x86_64-dvd.iso /var/www/html/rhel7.0/
chmod +x /etc/rc.d/rc.local
##制作预安装环境
cp /var/www/html/rhel7.0/isolinux/* /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
systemctl restart xinetd
##设定自动化部署
yum install system-conifig-kickstart
system-config-kickstart ---->/var/www/html/rhel7.0.cfg
vim /var/lib/tftpboot/pxelinux.cfg/default
label autoinstall ##选项标签
menu label ^Autoinstall RHEL7.0 ##标题
kernel vmlinuz ##启动的内核文件
append initrd=initrd.img repo=http://172.25.254.100/rhel7.0 ks=http://172.25.254.100/rhel7.0.cfg
##初始化镜像 ##安装资源 ##自动安装脚本
实验操作:
PXE网络引导程序:
1 yum install httpd dhcp tftp-server syslinux -y
2 systemctl stop firewalld.service
3 systemctl disable firewalld.service
4 systemctl start httpd
5 systemctl enable httpd
6 vim /etc/xinetd.d/tftp
7 systemctl restart xinetd.service
8 chkconfig --list

有镜像操作: 制作预安装环境
1 vim /etc/rc.d/rc.local 2 chmod +x /etc/rc.d/rc.local 3 df 4 scp /var/www/html/source7.0/isolinux/* root@172.25.254.132:/var/lib/tftpboot/ 9 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 10 vim /etc/dhcp/dhcpd.conf 11 systemctl restart dhcpd 12 systemctl enable dhcpd 13 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 14 mkdir /var/lib/tftpboot/pxelinux.cfg 15 cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 16 systemctl restart xinetd 设定自动化部署 17 yum install system-conifig-kickstart 18 vim /var/lib/tftpboot/pxelinux.cfg/default
开启dhcp服务,并部署dhcp服务
制作安装源:
vim /var/lib/tftpboot/pxelinux.cfg/default
安装一个虚拟机:
、
此时该虚拟机需要从dhcp服务器上获取到一个动态ip,然后kickstart 会告诉他接着去访问什么文件,然后通过tftp协议从安装源里获取到镜像从而完成虚拟机的pxe安装