配置PXE预启动执行环境:使用PXE装机服务器网络引导装机


文章目录

  • PXE概述
  • 搭建配置PXE装机服务器
    • [1. 准备 CentOS 7 安装源(YUM 仓库)](#1. 准备 CentOS 7 安装源(YUM 仓库))
    • [2. 安装并启用 TFTP 服务](#2. 安装并启用 TFTP 服务)
    • [3. 安装并启用 DHCP 服务](#3. 安装并启用 DHCP 服务)
    • [4. 准备 Linux 内核和初始化镜像文件](#4. 准备 Linux 内核和初始化镜像文件)
    • [5. 准备 PXE 引导程序](#5. 准备 PXE 引导程序)
    • [6. 安装 FTP 服务并准备 CentOS 7 安装源](#6. 安装 FTP 服务并准备 CentOS 7 安装源)
    • [7. 配置启动菜单文件](#7. 配置启动菜单文件)
    • [8. 关闭防火墙并验证 PXE 网络安装](#8. 关闭防火墙并验证 PXE 网络安装)

PXE概述

PXE(Preboot Execution Environment,预启动执行环境)是由 Intel 公司开发的一种网络引导技术,采用 Client/Server 模式,允许客户机通过网络从远程服务器下载引导镜像,并加载操作系统或安装文件。它在大规模服务器部署中极为有效,特别是在自动化和远程安装方面,具有以下几个优点:

PXE批量部署的优点

  1. 规模化:可以同时装配多台服务器,大幅提高效率。
  2. 自动化:安装操作系统,还可自动配置各种服务,减少人工干预。
  3. 远程实现:无需光盘、U盘等物理安装介质,通过网络即可完成安装。

基本的部署过程

  1. 准备Centos 7 安装源(YUM仓库)
  2. 安装并启用TFTP服务
  3. 提供Linux内核、PXE引导程序等
  4. 安装并启用DHCP服务
  5. 配置启动菜单

搭建的前提条件

若要搭建 PXE 网络体系,必须满足以下几个前提条件:

  1. 客户机的网卡要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。
  2. 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。
  3. 服务器要通过 TFTP服务(简单文件传输协议)来提供引导镜像文件的下载。

搭建配置PXE装机服务器

PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,并提供安装文件。

1. 准备 CentOS 7 安装源(YUM 仓库)

YUM 仓库是 CentOS 的软件包管理系统,用于存储和安装软件包。在 PXE 安装过程中,CentOS 7 的安装源需要通过 FTP 或 HTTP 提供给客户机。

2. 安装并启用 TFTP 服务

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一个基于 UDP 协议的轻量级文件传输协议,主要用于传输小文件。PXE 使用 TFTP 来传输引导程序和 Linux 内核。

TFTP服务默认由xinetd服务进行管理,使用UDP 端口69。

xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务。

bash 复制代码
# 安装 TFTP 服务器和 xinetd 服务管理程序
yum -y install tftp-server xinetd  

# 修改 TFTP 服务的配置文件
vim /etc/xinetd.d/tftp

# 配置文件内容如下:
protocol        = udp   
# 指定使用 UDP 协议

wait            = no  
# 设置为 no,允许多台客户机同时连接

server_args     = -s /var/lib/tftpboot  
# 指定 TFTP 根目录(存放文件的路径)

disable         = no         
# 设置为 no,开启 TFTP 服务

# 启动并设置 TFTP 和 xinetd 服务开机自启动
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd

3. 安装并启用 DHCP 服务

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用于为客户机分配 IP 地址,并指定 PXE 引导文件的位置。

bash 复制代码
# 安装 DHCP 服务
yum -y install dhcp  

# 复制示例配置文件并命名到 /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

# 修改 DHCP 配置文件
vim /etc/dhcp/dhcpd.conf

# 配置文件内容如下:

ddns-update-style none;    
# 修改:禁用 DNS 动态更新

next-server 192.168.80.10; 
# 添加:指定 TFTP 服务器的地址

filename "pxelinux.0";     
# 添加:指定 PXE 引导程序文件名

subnet 192.168.80.0 netmask 255.255.255.0 {  
# 声明要分配的网段地址
  
  range 192.168.80.100 192.168.80.200;  
  # 设置地址池
  
  option routers 192.168.80.10;  
  # 设置默认网关为 TFTP 服务器的 IP 地址
}

# 启动并设置 DHCP 服务开机自启动
systemctl start dhcpd
systemctl enable dhcpd

4. 准备 Linux 内核和初始化镜像文件

将 Linux 内核文件和初始化镜像文件复制到 TFTP 根目录下。

bash 复制代码
cd /mnt/images/pxeboot  
# 假设光盘已挂载到 /mnt 目录

cp vmlinuz /var/lib/tftpboot/  
# 复制 Linux 内核文件到 TFTP 根目录

cp initrd.img /var/lib/tftpboot/  
# 复制初始化镜像文件(Linux 引导加载模块)到TFTP根目录

5. 准备 PXE 引导程序

PXE 引导程序由 syslinux 软件包提供。

bash 复制代码
yum -y install syslinux  # 安装 syslinux

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/  # 复制 PXE 引导程序到 TFTP 根目录

6. 安装 FTP 服务并准备 CentOS 7 安装源

FTP 服务用于提供 CentOS 7 安装源给客户机。

bash 复制代码
yum -y install vsftpd  # 安装 FTP 服务

mkdir /var/ftp/centos7  # 创建安装源目录
cp -rf /mnt/* /var/ftp/centos7/  # 将光盘内容复制到安装源目录

# 启动并设置 FTP 服务开机自启动
systemctl start vsftpd
systemctl enable vsftpd

7. 配置启动菜单文件

启动菜单文件位于 TFTP 根目录的 pxelinux.cfg 子目录中,文件名为 default

bash 复制代码
mkdir /var/lib/tftpboot/pxelinux.cfg  
# 创建启动菜单文件夹

vim /var/lib/tftpboot/pxelinux.cfg/default  
# 编辑启动菜单文件

# 启动菜单文件内容如下:

default auto       # 设置默认入口名称
prompt 1     # 是否等待用户选择,"1"表示等待用户操作

label auto         # 图形安装(默认)引导入口
								   # label 用来定义启动项
kernel vmlinuz     # 指定内核文件
append initrd=initrd.img method=ftp://192.168.80.10/centos7       # 指定初始化镜像和安装源路径

label linux text   # 文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.80.10/centos7

label linux rescue # 救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.80.10/centos7

8. 关闭防火墙并验证 PXE 网络安装

为了避免防火墙阻碍 PXE 网络安装过程,可以临时关闭防火墙和 SELinux。

bash 复制代码
systemctl stop firewalld.service # 关闭防火墙
setenforce 0         # 临时禁用 SELinux

使用 VMware 创建的虚拟机进行测试时,确保虚拟机内存至少 2GB,否则可能在启动安装时出现错误。

启动虚拟机后,在提示字符串 boot: 后按 Enter 键(或执行 auto 命令),将会自动通过网络下载安装文件,并进入默认的图形安装入口;

若执行 linux text 命令,则进入文本安装入口;若执行 linux rescue 命令,则进入救援模式。


相关推荐
RD_daoyi9 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎
电商API_180079052479 小时前
企业ERP进销存场景|京东商品详情接口自动同步方案|凭证鉴权批量调用技术实操
大数据·运维·人工智能·爬虫·数据挖掘·网络爬虫
张小姐的猫9 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
国科安芯9 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小稻穗10 小时前
市场调研样本选型坐标系:2026六家国内样本平台能力横向校验
大数据·运维·数据分析
栩栩云生10 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
AOwhisky10 小时前
Python 学习笔记(第十三期)——运维自动化(下·前篇):远程命令执行——paramiko基础篇
运维·python·学习·云原生·自动化·运维开发·paramiko
可视化运维管理爱好者10 小时前
nVisual Studio:数据中心网络智能规划设计工具
网络·ide·visual studio
天行健,君子而铎10 小时前
知影-API风险监测系统:数据流转安全的核心防护方案
网络
AOwhisky11 小时前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko