概述
什么是PXE网络
- PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
- PXE可以引导多种操作系统。
- PXE client集成在网卡ROM中,当计算机引导时,BIOS把PXE client调入内存执行,获取PXE server配置,显示菜单,根据用户选将远程操作系统下载到本机运行。
部署PXE需要哪些服务:
- DHCP服务,分配IP地址,定位引导程序
- DNS服务,为客户机分配主机名
- TFTP服务,提供引导程序下载
- HTTP服务(或ftp/nfs),提供yum安装源
客户机应具备的条件:
- 网卡ROM必须支持PXE协议
- 主板支持网络启动
开始配置
准备安装源
Yum配置请参考: https://lolicp.com/linux/2021155.html
[root@pxe-master ~]# mount /dev/cdrom /var/ftp/centos
mount: /dev/sr0 is write-protected, mounting read-only
安装httpd并开启服务)
[root@pxe-master ~]# yum -y install httpd
[root@pxe-master ~]# mkdir -p /var/www/html/Centos7
[root@pxe-master ~]# mount /media/cdrom /var/www/html/Centos7/
[root@pxe-master ~]# systemctl start httpd
第二步:安装并启用TFTP服务
安装tftp-server服务)
[root@pxe-master ~]# yum -y install tftp-server
配置文件信息)
[root@pxe-master ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
#将disable修改为no
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
启动服务)
[root@pxe-master pxelinux.cfg]# systemctl start tftp.socket
[root@pxe-master pxelinux.cfg]# systemctl start tftp
第三步:准备Linux内核初始化镜像文件
拷贝文件到指定目录)
[root@pxe-master ~]# cd /var/ftp/centos/images/pxeboot/
[root@pxe-master pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
第四步:准备PXE引导程序、启动菜单文件
安装PXE引导程序)
[root@pxe-master pxeboot]# yum -y install syslinux
拷贝PXE引导程序)
[root@pxe-master pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxe-master pxeboot]# cp /usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/
配置启动引导菜单)
[root@pxe-master pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@pxe-master pxeboot]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@pxe-master pxelinux.cfg]# cp /var/ftp/centos/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
第五步:安装并启用DHCP服务
安装dhcp服务)
[root@pxe-master pxelinux.cfg]# yum -y install dhcp
配置DHCP文件信息并启动服务)
[root@pxe-master pxelinux.cfg]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
#DNS动态更新类型:node不支持
option domain-name "lolicp.com";
#设置DNS域
option domain-name-servers ns1.lolicp.com;
#设置DNS解析服务器
default-lease-time 600;
#默认租约时间,秒
max-lease-time 7200;
#最大租约时间,秒
log-facility local7;
#指定日志设备
subnet 192.168.230.0 netmask 255.255.255.0 {
#分发的网段
range 192.168.230.200 192.168.230.205;
option subnet-mask 255.255.255.0;
#指定子网掩码
option routers 192.168.230.1;
#指定网关
default-lease-time 600;
#默认租约时间,秒
max-lease-time 7200;
#最大租约时间,秒
}
[root@pxe-master pxelinux.cfg]# systemctl start dhcpd
放行dhcp和xinetd端口)
[root@pxe-master pxelinux.cfg]# firewall-cmd --zone=public --add-port=67/udp --permanent
success
[root@pxe-master pxelinux.cfg]# firewall-cmd --zone=public --add-port=69/udp --permanent
success
[root@pxe-master pxelinux.cfg]# firewall-cmd --reload
success
验证)
出现该页面后回车
无人值守:
配置自动应答文件: