什么是PXE
PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
PXE的原理
-
bios加载 pxe rom 后,rom 中的 pxe client 先发起 dhcp 请求,智能网卡充当 pxe server,在校验报文的 mac 地址无误后,返回 ip、tftp服务器地址、引导文件名称
-
pxe client 随即发起 tftp 请求,获取到引导文件,如 pxelinux.0
-
内存中执行 pxelinux.0,明确下一步去请求 pxelinux.cfg
-
tftp 请求并解析 pxelinux.cfg,获悉内核和根文件信息,分别为 vmlinuz 和 initramfs,有版本区分
-
tftp 请求内核和根文件,内存中引导启动
PXE装机需要的四大文件
- pxelinux.0:引导程序。(来自syslinux程序)
- default:引导程序的配置文件。(需要手写,可参考光盘 isolinux 目录下的 isolinux.cfg 文件)
- vmlinuz:内核文件。(从光盘中获取,位于 isolinux 目录下)
- initrd.img: 系统启动镜像文件。(从光盘中获取,位于 isolinux 目录下)
PXE具备以下三个优点:
1.规模化:同时装配多台服务器;
2.自动化:安装系统、配置各种服务;
3.远程实现:不需要光盘、U 盘等安装介质。
若要搭建 PXE 网络体系,必须满足以下几个前提条件:
1.客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。
2.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
3.服务器要通过 TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。
PXE自动装机实验:
第一步:服务端安装必须软件包 dhcp、tftp-server、vsftpd、syslinux,服务端虚拟网卡设置仅主机
yum install dhcp tftp-server.x86_64 vsftpd syslinux -y
第二步:配置dhcp服务
模板导入后,我们进入文件编辑
vim /etc/dhcp/dhcpd.conf
第三步:配置TFTP服务配置文件
vim /etc/xinetd.d/tftp
第四步:配置centos安装源,并将文件考入目录中
第五步:配置启动菜单文件
第六步:关闭防火墙,启动服务
第七步:安装并配置kickstart软件
yum install system-config-kickstart -y
我们打开虚拟机配置
第八步:在default添加ks参数
第九步:添加虚拟机测验
重新启动空白机,我们发现不需要更改参数也可以启动了