什么是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://www.ym68.cc/linux/2020/29425.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 "ym68.cc";
#设置DNS域
option domain-name-servers ns1.ym68.cc;
#设置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

验证)

出现该页面后回车

无人值守:

配置自动应答文件:


该文章采用「CC 协议」,转载必须注明作者和本文链接.
分类: Linux