PXE(Preboot Execution Environment)是一种网络引导协议,允许计算机通过网络从远程服务器引导操作系统安装或启动。它在高效批量网络装机中扮演了重要角色,因为它可以帮助管理员避免逐台计算机手动安装操作系统的繁琐过程。
当使用PXE(Preboot Execution Environment)进行操作系统的网络引导和安装时,涉及一系列步骤,以下是PXE实现过程讲解:
-
网络环境准备:
- 要使用PXE,首先需要在网络中准备一个DHCP服务器和TFTP服务器。DHCP服务器负责为客户机分配IP地址,同时提供引导文件的位置。TFTP服务器用于提供引导文件、内核和操作系统映像。
-
客户机启动:
- 客户机(要安装操作系统的计算机)启动时,它会广播DHCP请求来获取IP地址。
-
DHCP服务器响应:
- DHCP服务器收到客户机的请求后,会为其分配一个IP地址,并将引导文件的位置信息(通常是引导程序的位置)一并提供给客户机。
-
引导程序下载:
- 客户机接收到DHCP服务器响应后,会在自己的网络适配器中启动PXE堆栈。
- PXE堆栈会在客户机的内存中加载PXE引导程序(通常是pxelinux.0或grubnetx64.efi)。
-
PXE引导程序执行:
- PXE引导程序运行后,会开始TFTP会话,通过TFTP协议从指定的TFTP服务器下载配置文件(通常是pxelinux.cfg/default或类似的文件)。
-
配置文件加载:
- 下载的配置文件指导PXE引导程序如何继续操作。这个配置文件可能包含操作系统的选择、内核和内存文件系统(initrd)的位置,以及其他引导选项。
-
内核和initrd下载:
- 根据配置文件中指定的位置,PXE引导程序会继续通过TFTP下载操作系统内核和初始化内存文件系统(initrd)。
-
内核和initrd执行:
- 一旦内核和initrd下载完成,PXE引导程序会将内核加载到内存中,并将initrd挂载为临时文件系统。
-
操作系统启动:
- 操作系统内核启动后,它会从initrd中获取必要的文件和驱动程序,然后开始操作系统的正常引导过程。
-
自动化安装过程:
- 操作系统的安装程序会在启动时根据预定义的选项自动执行安装过程,而无需管理员干预。
通过这些步骤,PXE实现了从网络引导系统和自动化操作系统安装的过程。这种方式适用于大规模部署、虚拟化环境以及需要频繁更换操作系统的场景,因为它减少了手动操作的复杂性,提高了部署的效率。
以下是安装过程
配置DHCP
1首先,安装DHCP服务并配置
cp -a /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf 将模板文件拷贝到DHCP配置文件那并覆盖原文件
修改配置文件,如图
启动
挂载光驱
光驱里是Linux安装程序
下载TFTP
是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口(选择TFTP的原因是一般网卡只支持TFTP协议)
yum install tftp-server -y
开启TFTP服务
vim /etc/xinetd.d/tftp
systemctl start tftp
tftp是用来装4大程序的,4大程序可以理解成WIN系统的启动盘
安装vsftp
可以使用http ftp等方式,ftp文件传输的一种。它的是用来存储系统镜像的
安装syslinux
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。
yum install syslinux -y
准备4大文件
initrd.img pxelinux.0 pxelinux.cfg/default vmlinuz
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cd /mnt/isolinux
cp initrd.img /var/lib/tftpboot/
cp vmlinuz /var/lib/tftpboot/
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
vim default
设置无人值守安装
yum install system-config-kickstart -y
安装图形化工具
配置你安装的选项
保存到var/ftp
新建ceontos7文件夹
vim default
umount /mnt 解挂载
mount /dev/sr0 /var/ftp/ceontos7
完成