深入了解 PXE:定义、架构、原理、应用场景及常见命令体系

引言

PXE(Preboot Execution Environment,预启动执行环境)是一种允许计算机通过网络启动操作系统而无需本地存储设备的技术。本文将详细介绍 PXE 的定义、架构、原理、应用场景及常见命令体系,特别是以 CentOS 为例,展示如何配置和使用 PXE。

一、PXE 的定义

       PXE 是一种基于网络的启动技术,最初由 Intel 开发,旨在提供一种在没有本地存储设备的情况下通过网络启动操作系统的标准。PXE 集成在计算机的 BIOS 或 UEFI 中,允许计算机从网络服务器下载并启动操作系统或其他软件。

1.1 背景

       随着计算机网络的发展和虚拟化技术的普及,PXE 成为一种流行的启动方式。它广泛应用于无盘工作站、服务器部署和系统恢复等场景,简化了大规模系统管理和维护的复杂性。

二、PXE 的架构

       PXE 的架构包括客户端和服务器两部分,依赖于多种网络协议和服务。以下是 PXE 架构的主要组成部分。

2.1 客户端

       PXE 客户端是启用了 PXE 的计算机,通常集成在 BIOS 或 UEFI 中。当计算机启动时,如果启用了 PXE,网络接口卡(NIC)会尝试通过网络启动操作系统。

2.2 服务器

PXE 服务器提供启动文件和相关服务,通常包括以下组件:

  1. DHCP 服务器:为 PXE 客户端分配 IP 地址,并提供启动文件的位置信息。
  2. TFTP 服务器:用于传输启动文件,如 PXE 引导程序和内核镜像。
  3. HTTP/FTP 服务器:在某些情况下,用于传输更大的文件或提供额外服务。
  4. NFS/SMB 服务器:用于提供网络文件系统,支持 PXE 客户端访问操作系统文件。

三、PXE 的工作原理

       PXE 的工作原理涉及多个步骤和网络协议的协同工作。以下是 PXE 启动过程的详细步骤。

3.1 PXE 启动过程

  1. PXE 客户端启动:当计算机启动时,PXE 客户端通过 BIOS 或 UEFI 启动,并向网络发送 DHCP 请求,寻找 DHCP 服务器。
  2. DHCP 服务器响应:DHCP 服务器响应 DHCP 请求,为客户端分配 IP 地址,并提供 TFTP 服务器的位置和引导文件名。
  3. 下载引导文件:PXE 客户端通过 TFTP 下载引导文件,通常是一个小型的 PXE 引导程序(如 pxelinux.0)。
  4. 执行引导文件:PXE 客户端执行下载的引导文件,该引导文件进一步下载操作系统内核和初始化文件系统。
  5. 启动操作系统:PXE 客户端加载内核和初始化文件系统,最终启动操作系统。

3.2 网络协议

PXE 启动过程中涉及多个网络协议:

  1. DHCP:用于分配 IP 地址和提供 TFTP 服务器信息。
  2. TFTP:用于传输引导文件。
  3. HTTP/FTP:用于传输更大的文件或提供额外服务(可选)。
  4. NFS/SMB:用于提供网络文件系统(可选)。

四、PXE 的应用场景

PXE 广泛应用于各种 IT 环境,以下是一些典型的应用场景。

4.1 无盘工作站

       在教育和科研机构中,无盘工作站通过 PXE 启动操作系统,从网络服务器获取所有需要的文件和应用程序。这样,系统管理和维护变得更加集中和简便。

4.2 服务器部署

       在数据中心,PXE 被广泛用于自动化服务器部署。管理员可以通过 PXE 大规模部署操作系统和应用程序,显著提高部署效率和一致性。

4.3 系统恢复

       PXE 也被用于系统恢复和应急启动。当计算机的本地存储设备故障时,可以通过 PXE 启动应急操作系统,进行数据恢复和系统修复。

4.4 虚拟化环境

       在虚拟化环境中,PXE 被用于启动虚拟机,使其可以从网络加载操作系统和应用程序,简化虚拟机的管理和配置。

五、PXE 的常见命令体系(以 CentOS 为例)

       PXE 的命令体系主要涉及配置和管理 PXE 服务器和客户端的命令。以下是一些在 CentOS 上常见的命令和配置步骤。

5.1 DHCP 服务器配置

       在 CentOS 系统中,配置 DHCP 服务器的常用工具是 dhcpd。

安装 DHCP 服务器

sudo yum install dhcp

配置 DHCP 服务器

编辑 /etc/dhcp/dhcpd.conf 文件,添加以下内容:

subnet 192.168.1.0 netmask 255.255.255.0 {

    range 192.168.1.100 192.168.1.200;

    option routers 192.168.1.1;

    option broadcast-address 192.168.1.255;

    next-server 192.168.1.10;

    filename "pxelinux.0";

}

启动 DHCP 服务器

sudo systemctl start dhcpd

sudo systemctl enable dhcpd

5.2 TFTP 服务器配置

在 CentOS 系统中,配置 TFTP 服务器的常用工具是 tftp-server。

  1. 安装 TFTP 服务器

sudo yum install tftp-server

  1. 配置 TFTP 服务器 编辑 /etc/xinetd.d/tftp 文件,确保以下内容:

service tftp

{

    socket_type     = dgram

    protocol        = udp

    wait            = yes

    user            = root

    server          = /usr/sbin/in.tftpd

    server_args     = -s /var/lib/tftpboot

    disable         = no

    per_source      = 11

    cps             = 100 2

    flags           = IPv4

}

  1. 启动 TFTP 服务器

sudo systemctl start xinetd

sudo systemctl enable xinetd

5.3 配置 PXE 引导程序

在 PXE 服务器上,需要配置引导程序(如 pxelinux.0)和相关文件。

  1. 安装 syslinux

sudo yum install syslinux

  1. 配置引导程序 将 pxelinux.0 文件复制到 TFTP 服务器目录中:

sudo cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

  1. 创建配置文件 在 TFTP 服务器目录中创建 pxelinux.cfg 目录,并在其中创建默认配置文件:

sudo mkdir /var/lib/tftpboot/pxelinux.cfg

sudo nano /var/lib/tftpboot/pxelinux.cfg/default

添加以下内容:

DEFAULT vesamenu.c32

PROMPT 0

TIMEOUT 50

LABEL linux

    KERNEL vmlinuz

    APPEND initrd=initrd.img

5.4 NFS 服务器配置

在某些情况下,PXE 客户端需要从 NFS 服务器加载操作系统文件。

  1. 安装 NFS 服务器

sudo yum install nfs-utils

  1. 配置 NFS 服务器 编辑 /etc/exports 文件,添加以下内容:

/var/lib/tftpboot 192.168.1.0/24(ro,sync,no_subtree_check)

  1. 启动 NFS 服务器

sudo systemctl start nfs

sudo systemctl enable nfs

六、PXE 模拟场景操作

以下是一个典型的 PXE 模拟操作场景,展示如何通过 PXE 部署操作系统。

6.1 准备工作

  1. 设置网络环境
    • 配置一个专用的网络子网(如 192.168.1.0/24),包括 PXE 服务器和 PXE 客户端。
    • 确保 PXE 客户端可以通过网络访问 PXE 服务器。
  2. 安装必要软件
    • 在 PXE 服务器上安装 DHCP 服务器、TFTP 服务器和 NFS 服务器。

在这一部分,我们将详细介绍如何在 CentOS 上配置 PXE 服务器,并通过 PXE 部署一个 CentOS 操作系统。

6.2 配置 PXE 服务器

  1. 配置 DHCP 服务器 首先,我们需要确保 DHCP 服务器正确配置,以便为 PXE 客户端分配 IP 地址并提供引导文件的位置。

安装 DHCP 服务器:

sudo yum install dhcp

编辑 /etc/dhcp/dhcpd.conf 文件,添加以下内容:

subnet 192.168.1.0 netmask 255.255.255.0 {

    range 192.168.1.100 192.168.1.200;

    option routers 192.168.1.1;

    option broadcast-address 192.168.1.255;

    next-server 192.168.1.10; # PXE服务器的IP地址

    filename "pxelinux.0"; # 引导文件

}

启动并启用 DHCP 服务器:

sudo systemctl start dhcpd

sudo systemctl enable dhcpd

  1. 配置 TFTP 服务器 TFTP 服务器用于传输引导文件。我们将使用 tftp-server 来配置 TFTP 服务。

安装 TFTP 服务器:

sudo yum install tftp-server

编辑 /etc/xinetd.d/tftp 文件,确保以下内容:

service tftp

{

    socket_type     = dgram

    protocol        = udp

    wait            = yes

    user            = root

    server          = /usr/sbin/in.tftpd

    server_args     = -s /var/lib/tftpboot

    disable         = no

    per_source      = 11

    cps             = 100 2

    flags           = IPv4

}

启动并启用 TFTP 服务器:

sudo systemctl start xinetd

sudo systemctl enable xinetd

  1. 配置 PXE 引导程序 安装 syslinux:

sudo yum install syslinux

将 pxelinux.0 文件复制到 TFTP 服务器目录中:

sudo cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

创建 pxelinux.cfg 目录,并在其中创建默认配置文件:

sudo mkdir /var/lib/tftpboot/pxelinux.cfg

sudo nano /var/lib/tftpboot/pxelinux.cfg/default

添加以下内容:

DEFAULT menu.c32

PROMPT 0

TIMEOUT 300

ONTIMEOUT local

LABEL linux

    MENU LABEL Install CentOS 7

    KERNEL vmlinuz

    APPEND initrd=initrd.img

  1. 配置 NFS 服务器(可选) 在某些情况下,PXE 客户端需要从 NFS 服务器加载操作系统文件。配置 NFS 服务器如下:

安装 NFS 服务器:

sudo yum install nfs-utils

编辑 /etc/exports 文件,添加以下内容:

/var/lib/tftpboot 192.168.1.0/24(ro,sync,no_subtree_check)

启动并启用 NFS 服务器:

sudo systemctl start nfs

sudo systemctl enable nfs

6.3 准备启动文件

  1. 下载 CentOS 安装镜像 从 CentOS 官方网站下载 CentOS 的 netinstall 镜像,并将其挂载到 /mnt 目录:

sudo mount -o loop CentOS-7-x86_64-NetInstall-xxxx.iso /mnt

  1. 复制必要的引导文件 将 vmlinuz 和 initrd.img 文件复制到 TFTP 服务器目录:

sudo cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/

sudo cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/

6.4 配置 PXE 菜单

编辑 default 配置文件,以便 PXE 客户端可以从 TFTP 服务器下载并启动 CentOS 安装程序:

DEFAULT menu.c32

PROMPT 0

TIMEOUT 300

ONTIMEOUT local

LABEL linux

    MENU LABEL Install CentOS 7

    KERNEL vmlinuz

    APPEND initrd=initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/

6.5 测试 PXE 环境

  1. 启动 PXE 客户端 将一台计算机配置为 PXE 启动,并连接到同一网络子网。启动计算机并进入 BIOS 或 UEFI 设置,选择 PXE 启动。
  2. 验证 PXE 启动过程 观察 PXE 客户端的启动过程,确认其能通过 DHCP 获取 IP 地址,并从 TFTP 服务器下载引导文件和启动 CentOS 安装程序。

七、总结

       PXE(Preboot Execution Environment)是一种强大的网络启动技术,允许计算机通过网络启动操作系统而无需本地存储设备。通过本文的介绍,我们详细了解了 PXE 的定义、架构、原理、应用场景及常见命令体系,并通过具体的操作步骤展示了如何在 CentOS 上配置和使用 PXE。

       PXE 的应用场景非常广泛,尤其是在无盘工作站、服务器部署和系统恢复等领域中,能够极大地简化系统管理和维护的复杂性。通过配置 DHCP 服务器、TFTP 服务器和 PXE 引导程序,我们可以轻松实现大规模的网络启动和操作系统部署。

       希望本文能帮助您更好地理解和应用 PXE 技术,提高您的系统管理和维护效率。如果您有任何问题或建议,欢迎在评论区留言讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/775576.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu系统复制文件到共享文件夹出错

1、问题描述 Ubuntu系统复制文件到共享文件夹时,出现拼接文件时出错:输入/输出错误。 使用cp命令: cp -Rf XXX YYY 也是出错: cp: 写入 xxx 出错: 输入/输出错误 2、查看磁盘空间 查看磁盘空间,显示空间还有剩余…

Day05-组织架构-角色管理

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.组织架构-编辑部门-弹出层获取数据2.组织架构-编辑部门-编辑表单校验3.组织架构-编辑部门-确认取消4.组织架构-删除部门5.角色管理-搭建页面结构6.角色管理-获取数…

第一次的pentest show总结

第一次的pentest show总结 前言 开始之前,我特别感谢TryHackMe(英)、HackTheBox(美)、zero-point security(英)、offsec(美)等平台,使我们能够通过网络以线上的方式学习与练习,打破传统线下各地区教育资源差异大的限制,对网络教…

探索Sui的面向对象模型和Move编程语言

Sui区块链作为一种新兴的一层协议(L1),采用先进技术来解决常见的一层协议权衡问题。Cointelegraph Research详细剖析了这一区块链新秀。 Sui使用Move编程语言,该语言专注于资产表示和访问控制。本文探讨了Sui的对象中心数据存储模…

Python从0到100(三十七):数据提取的概念和数据分类

1. 爬虫中数据的分类 在爬虫开发过程中,我们会遇到多种类型的数据。了解这些数据的类型对于有效地提取和解析信息至关重要。 结构化数据 结构化数据是指具有固定格式和模式的数据,常见的结构化数据格式包括JSON和XML。 处理方式:可以直接转换为Python的字典或列表等数据类…

【UML用户指南】-27-对体系结构建模-制品

目录 1、组成结构 2、制品的种类 2.1、部署制品 (deployment artifact) 2.2、工作产品制品 (work product artifact) 2.3、执行制品 (execution artifact) 3、标准元素 4、常用建模技术 4.1、对可执…

Redis 7.x 系列【17】四种持久化策略

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 案例演示2.1 无持久化2.2 RDB2.3 AOF2.4 混合模式2.4.1 方式一:…

LLM - 神经网络的组成

1. 一个神经元的结构:即接受多个输入X向量,在一个权重向量W和一个偏执标量b的作用下,经过激活函数后,产生一个输出。 2. 一层神经网络的结构:该层网络里的每个神经元并行计算,得到各自的输出;计算方式是输入…

CISAW证书考完有什么用?值得投资吗?

CISAW证书,在信息安全领域内被公认为具有高价值的一种职业资格认证,它象征着持有者在该领域的专业技能和知识水平。 因此,CISAW证书不仅具有实质性的价值,还能为持有者带来诸多益处。 首先,拥有CISAW证书的专业人士更…

简过网:教师编制报考要求和条件,都给你汇总好了!

如果你想要考教师编,那么在考试之前你先要明白这些知识! ​ 一、什么是教师编? 在编教师拥有的编制为事业编,即在编老师为事业单位工作人员 二、考教师编需要什么条件? 1、普通话 语文学科普通话要求达到二级甲等及…

5.基于SpringBoot的SSMP整合案例-数据层开发

目录 1.新建项目 2.实体类开发: 2.1在pom.xml中增加Lombok坐标: 2.2添加Book实体类 3.数据层开发: 3.1 配置MyBatisPlus与Druid 3.2创建数据层接口 3.3写测试类 3.4点击运行: 4.数据层快速开发: 4.1配置MyB…

Camera link(学习笔记)

Camera Link协议是一种专门针对机器视觉应用领域的串行通信协议,它使用低压差分信号(LVDS)进行数据的传输和通信。Camera Link标准是在ChannelLink标准的基础上多加了6对差分信号线,其中4对用于并行传输相机控制信号,另外2对用于相机和图像采…

植物学(书籍学习资料)

包含观赏植物学、植物学、植物学百科图鉴等多本植物学方面的书籍学习资料。 图2、3为观赏植物学截图; 图4、5为植物学百科图鉴截图; 图6、7为植物学学习指南截图。

YOLO V7项目使用

YOLO V7项目使用 根据官方论文中提供的项目地址:使用git clone将项目下载到本地。 https://github.com/WongKinYiu/yolov7 git clone https://github.com/WongKinYiu/yolov7 使用pycharm打开项目,根据官方提供的requirement.txt文件下载项目启动所需要的…

ERROR | Web server failed to start. Port 8080 was already in use.

错误提示: *************************** APPLICATION FAILED TO START ***************************Description:Web server failed to start. Port 8080 was already in use.Action:Identify and stop the process thats listening on port 8080 or configure thi…

ubuntu下后台启动程序

1.启动 nohup python detect_mq.py > output.out 2>&1 & 这个命令是用来在后台运行一个 Python 脚本 detect_mq.py,并将脚本的输出重定向到文件 output.out。下面是这个命令的详细解释: nohup:这是一个命令,它告诉…

【东奥会计-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

有哪些有效的策略可以提升独立站的外链数量?

有哪些有效的策略可以提升独立站的外链数量?提升独立站的外链数量并不难,难得是不被谷歌惩罚把你的网站判定为作弊,正因如此,了解并应用GNB自然外链策略是个不错的开始,GNB外链的核心价值在于它提高了网站外链资源的自…

2024亚太赛(中文)数学建模B题Python代码+结果表数据教学

B题题目:洪水灾害的数据分析与预测 完整论文也写完了 第二问代码(1、3、4问、还有论文见文末) import pandas as pd from sklearn.cluster import KMeans import matplotlib.pyplot as plt import seaborn as sns from matplotlib import rc…

2024年软件测试岗必问的100+个面试题【含答案】

一、基础理论 1、开场介绍 介绍要领:个人基本信息、工作经历、之前所做过的工作及个人专长或者技能优势。扬长避短,一定要口语化,语速适中。沟通好的就多说几句,沟通不好的话就尽量少说两句。举例如下: 面试官你好&…