配置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 命令,则进入救援模式。


相关推荐
guidovans26 分钟前
基于tkinter开发电脑工具集(源码在底部)
linux·windows·python·gui·tkinter
ZoeLandia1 小时前
nginx实战分析
运维·前端·nginx
菜菜子爱学习1 小时前
Nginx学习笔记(九)—— Nginx Rewrite深度解析
linux·运维·笔记·学习·nginx
迷之程序员2 小时前
服务器装两个cpu
运维·服务器
Tearstornbyrain2 小时前
在Ubuntu24.04中使用ssh连接本地git仓库到github远程仓库
linux·git·ubuntu·ssh·github
Jia ming3 小时前
【奔跑吧!Linux 内核(第二版)】第6章:简单的字符设备驱动(三)
linux
MediaTea3 小时前
Python 第三方库:Requests(HTTP 客户端)
开发语言·网络·python·网络协议·http
Mr_Xuhhh3 小时前
HTTPS 协议原理
网络·网络协议·测试工具·http·https
仍然探索未知中3 小时前
NAT技术、代理服务器+网络通信各层协议
网络·智能路由器
keven-wang3 小时前
ipv6 是什么?如何测试两个ipv6地址是否可以直连互通?
网络·ipv6