首页 > 其他分享 >配置PXE预启动执行环境:使用PXE装机服务器网络引导装机

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

时间:2024-08-23 09:53:16浏览次数:11  
标签:引导 服务 装机 服务器 TFTP 安装 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服务。

# 安装 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 引导文件的位置。

# 安装 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 根目录下。

cd /mnt/images/pxeboot  
# 假设光盘已挂载到 /mnt 目录

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

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

5. 准备 PXE 引导程序

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

yum -y install syslinux  # 安装 syslinux

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

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

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

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

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。

systemctl stop firewalld.service # 关闭防火墙
setenforce 0         # 临时禁用 SELinux

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

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

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


标签:引导,服务,装机,服务器,TFTP,安装,PXE
From: https://blog.csdn.net/qq_44421043/article/details/141453566

相关文章

  • wiz 为知笔记服务器 docker 跨服务器迁移爬坑指北
    本文主要是介绍wiz为知笔记服务器docker从旧服务器迁移到新服务器的步骤以及问题排查。旧服务器升级wizdocker目的:保持和新服务器拉取的镜像版本一致。官方只留了wizdocker镜像最新版,拉取不了旧版本镜像,所以先升级旧服务器上的wizdocker。升级方法dockerstopwiz......
  • wiz 为知笔记服务器 docker 跨服务器迁移爬坑指北
    本文主要是介绍wiz为知笔记服务器docker从旧服务器迁移到新服务器的步骤以及问题排查。旧服务器升级wizdocker目的:保持和新服务器拉取的镜像版本一致。官方只留了wizdocker镜像最新版,拉取不了旧版本镜像,所以先升级旧服务器上的wizdocker。升级方法dockerstopwiz......
  • 服务器端口有哪些不能关闭
    在服务器管理过程中,了解哪些端口是关键且不可关闭的至关重要。下面将通过问答形式介绍一些基本的、通常不应关闭的服务器端口。Q1:常见的不可关闭的服务器端口有哪些? A1:最常见的不可关闭的端口包括:20/21-FTP数据和控制端口22-SSH远程连接23-Telnet远程连接25-......
  • 数据服务器由哪些元器件组成?
    在构建一个数据中心或服务器机房时,了解构成数据服务器的元器件是至关重要的。这些元器件共同工作以确保数据的存储、处理和传输。下面将介绍一些关键的元器件。处理器(CPU)问:处理器在数据服务器中扮演什么角色?答:处理器是服务器的大脑,负责执行程序指令、数据处理和运算任务。高......
  • 织梦DedeCMS服务器网站目录怎么进行安全设置
    织梦DeDeCMS的安全设置非常重要,尤其是服务器网站目录的安全配置,可以有效防止恶意攻击和提高网站的安全性。以下是一些推荐的安全设置步骤:1.删除安装目录删除install目录:安装完成后立即删除 install 目录,以防止攻击者利用安装程序的漏洞。bash rm-rf./install......
  • 织梦dedecms上传服务器后数据连接失败怎么办
    当织梦DeDeCMS上传到服务器后出现数据连接失败的问题时,可以采取以下几个步骤来解决这个问题:1.检查数据库连接信息打开common.inc.php文件:在织梦CMS的 data 文件夹中找到 common.inc.php 文件。修改数据库连接信息:数据库服务器地址:确认数据库服务器地址是否正确,例如使用......
  • “黑神话悟空”问世,没想到八十一难第一难竟是服务器崩溃!
    随着国产3A游戏大作“黑神话悟空”正式上线,就迅速火遍全球,众多玩家蜂拥而至,全球最大的Steam服务器直接崩溃!在此之前,Steam从未出现过此类情况。服务器崩溃其实很常见,可能是硬件故障,软件代码出了问题,或是网络波动,甚至有可能遭到了黑客攻击,DDoS攻击或是其他安全威胁。像Steam和黑......
  • 创新实践:流媒体服务器如何推动WebRTC支持H.265及JS硬软解码(MSE硬解、WASM软解)
    为了实现这一全面的解决方案,我们投入了近半年的时间进行调研与研发。我们的主要目标是:让流媒体服务器能够直接传输H.265编码的视频,而无需将其转码为H.264,从而使Chrome浏览器能够无缝解码并播放H.265视频。值得注意的是,目前市场上许多软硬件产品仍采用将H.265转码为H.264的方式来......
  • 使用SVN服务器和GIT服务器管理同一个项目
    1. 背景软件发布版本代码需要提交公司SVN,中间开发环节代码管理采用Git,同一套代码需要同时在两个服务器间进行同步。 2. 解决方案方案1:SVN与Git共存,该方案需要手动同步本地代码、SVN服务器代码、Git服务器代码;方案2:SVN作为Git的远程分支,该方案在库搭建完成后,可以使用git自......
  • 创新实践:流媒体服务器如何推动WebRTC支持H.265及JS硬软解码(MSE硬解、WASM软解)
    为了实现这一全面的解决方案,我们投入了近半年的时间进行调研与研发。我们的主要目标是:让流媒体服务器能够直接传输H.265编码的视频,而无需将其转码为H.264,从而使Chrome浏览器能够无缝解码并播放H.265视频。值得注意的是,目前市场上许多软硬件产品仍采用将H.265转码为H.264的......