PXE服务预启动执行环境(Preboot Execution Environment)

PXE Preboot Execution Environment

PXE (Preboot Execution Environment) 是一种网络协议,它允许计算机通过网络启动并安装操作系统。PXE服务是指在网络上提供PXE协议支持的服务,主要用于无盘或无光驱的计算机启动和系统安装。工作Client/server模式。

PXE服务通常由一台或多台服务器提供,这些服务器上安装了相应的软件和操作系统映像。当一台计算机需要通过PXE启动时,它将发送一个PXE请求到网络上的PXE服务器,服务器将响应该请求并提供让计算机启动和安装操作系统的必要文件和配置。允许客户机通过网络从远 程服务器下载引导镜像,并加载安装文件或者整个操作系统。

通过PXE服务,管理员可以远程管理大量计算机的系统安装和配置。它使得大规模部署和更新操作系统变得更加快捷和方便。同时,PXE服务也可以用于故障排除和系统恢复,可根据需要加载不同的操作系统映像或工具。

需要注意的是,使用PXE服务进行网络装机需要目标计算机支持PXE协议,并且需要在计算机的BIOS或固件中正确配置和启用PXE启动选项。

搭建PXE网络体系有几个前提条件:

  1. 硬件支持:目标计算机必须支持PXE协议。常见的桌面电脑、服务器和大部分现代笔记本电脑都支持PXE启动。在计算机的BIOS或固件中,需要正确配置和启用PXE启动选项。

  2. 网络环境:PXE服务依赖于网络进行通信。确保你的网络环境稳定,并且计算机可以通过网络连接到PXE服务器。

  3. PXE服务器:你需要一台或多台服务器来提供PXE服务。服务器上通常需要安装相应的软件和操作系统映像。常见的PXE服务器软件包括TFTP服务器、DHCP服务器和FTP服务器。

  4. TFTP服务器:PXE协议使用TFTP(Trivial File Transfer Protocol)来传输文件。你需要设置和配置一个TFTP服务器来提供PXE启动引导文件和操作系统映像。

  5. DHCP服务器:PXE协议使用DHCP(Dynamic Host Configuration Protocol)来为目标计算机提供IP地址和其他网络配置信息。你需要设置和配置一个DHCP服务器来提供这些信息。

  6. 操作系统映像:你需要准备好要安装的操作系统映像文件。这可以是ISO文件、镜像文件或预先制作的操作系统映像。

linux系统查看是否支持PXE协议

ethtool -i eth0 | grep "bus-info"
 

注意:这里的eth0是你计算机上的网络接口设备名,根据实际情况进行替换。如果不确定设备名,可以使用ifconfig命令或ip addr命令查看系统中的网络接口设备。

以centos9系统为例

如果输出结果中包含类似于下面的信息,则说明该设备支持PXE协议:

  1. bus-info: 0000:XX:XX.X
     
    
    其中,XX是网卡设备的地址。

请注意,以上命令需要在具有root权限的用户下执行。如果你没有root权限,可以在命令前添加sudo来提升权限,如sudo ethtool -i eth0 | grep "bus-info"。如果命令输出为空或没有相关信息,则可能表示你的计算机不支持PXE协议或者未正确配置PXE启动选项。

搭建PXE服务器

以下是搭建PXE服务器的详细步骤和所需的信息:

  1. 配置DHCP服务器:

    • 打开DHCP服务器的配置文件(通常位于/etc/dhcp/dhcpd.conf
    • 添加以下配置项:
      subnet <PXE网络地址> netmask <子网掩码> {
          range <IP地址范围开始> <IP地址范围结束>;
          option routers <默认网关IP>;
          option broadcast-address <广播地址>;
          option domain-name-servers <DNS服务器IP>;
          filename "pxelinux.0";
      }
      
    • 保存并退出配置文件
    • 重启DHCP服务器
  2. 配置TFTP服务器:

    • 打开TFTP服务器的配置文件(通常位于/etc/default/tftpd-hpa
    • 设置TFTP_DIRECTORY为PXE服务器的根目录,例如/var/lib/tftpboot
    • 设置TFTP_ADDRESS为PXE服务器的IP地址,例如&lt;PXE服务器IP>
    • 保存并退出配置文件
    • 重启TFTP服务器
  3. 获得Syslinux软件包:

    • 在PXE服务器上运行以下命令:
      sudo apt-get update
      sudo apt-get install syslinux
      
  4. 配置PXE客户端:

    • 在PXE服务器的根目录下创建一个名为pxelinux.cfg的文件夹
    • pxelinux.cfg文件夹中创建一个名为default的文件
    • default文件中添加以下内容:
      DEFAULT menu.c32
      PROMPT 0
      TIMEOUT 300
      MENU TITLE PXE Menu
      LABEL 1
          MENU LABEL Install Operating System
          KERNEL <操作系统内核镜像路径>
          APPEND initrd=<操作系统初始化镜像路径>
      
    • 保存并退出default文件
    • 将操作系统的内核镜像和初始化镜像文件复制到PXE服务器的根目录下
  5. 启动PXE服务器:

    • 在PXE服务器上重启DHCP和TFTP服务,以使配置生效
    • 在PXE客户端上启动,并设置其网卡引导顺序为PXE

完成以上步骤后,您的PXE服务器就已经搭建完成了。当PXE客户端引导时,它将从PXE服务器上获取IP地址、DHCP配置和引导文件,然后通过TFTP从PXE服务器上下载内核镜像和初始化镜像文件。这使得您可以通过网络安装操作系统,而无需使用光盘或USB驱动器。

在 CentOS 9 操作系统上安装和部署 PXE(Preboot Execution Environment)服务器,可以帮助你进行网络安装和部署操作系统,无需使用光盘或 USB 驱动器。以下是详细的步骤:

  1. 确保你的 CentOS 9 操作系统已正确安装并处于工作状态。同时,确保你有 root 权限来执行以下操作。

  2. 更新系统:运行以下命令来更新系统软件包和依赖项:

sudo yum update
  1. 安装和配置 DHCP 服务器:PXE 服务器需要提供 DHCP 服务来为客户端分配 IP 地址。在 CentOS 9 上,你可以使用 dnsmasq 来提供 DHCP 服务。运行以下命令来安装 dnsmasq
sudo yum install dnsmasq

安装完成后,你需要编辑 dnsmasq 的配置文件。运行以下命令:

sudo vi /etc/dnsmasq.conf

在文件的末尾添加以下配置信息:

dhcp-range=<起始 IP 地址>,<终止 IP 地址>,255.255.255.0,12h
dhcp-boot=pxelinux.0,<你的服务器 IP 地址>,<网关 IP 地址>

在以上配置中,需要将 &lt;起始 IP 地址>&lt;终止 IP 地址> 替换为你想要为客户端分配的 IP 地址范围。&lt;你的服务器 IP 地址>&lt;网关 IP 地址> 替换为你的服务器 IP 地址和网关 IP 地址。保存并关闭文件。

  1. 准备 PXE 引导文件:在 CentOS 9 上,PXE 引导文件通常存储在 /var/lib/tftpboot 目录中。首先,安装 tftp-server 软件包:
sudo yum install tftp-server

然后,编辑 /etc/xinetd.d/tftp 文件:

sudo vi /etc/xinetd.d/tftp

确保以下这一行不是被注释掉(行首没有 #):

disable = no

保存并关闭文件。然后,运行以下命令来启动 tftp-server 服务并将其设置为开机自启动:

sudo systemctl start tftp
sudo systemctl enable tftp

下一步,创建一个目录来存储 PXE 引导文件:

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

然后,下载并安装 Syslinux 软件包来获取 PXE 引导文件:

sudo yum install syslinux

运行以下命令将 PXE 引导文件复制到 /var/lib/tftpboot/ 目录:

sudo cp /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32} /var/lib/tftpboot/

接下来,创建一个 PXE 引导菜单文件,使用以下命令:

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

将以下示例内容复制粘贴到文件中,并根据你的实际需要进行修改:

DEFAULT menu.c32
PROMPT 0
TIMEOUT 300

LABEL CentOS 9
  MENU DEFAULT
  MENU LABEL CentOS 9
  KERNEL vmlinuz
  APPEND initrd=initrd.img ks=http://<你的服务器 IP 地址>/ks.cfg

LABEL Local Boot
  MENU LABEL Local Boot
  LOCALBOOT 0

在以上示例配置中,&lt;你的服务器 IP 地址> 需要替换为你的服务器 IP 地址。保存并关闭文件。

  1. 准备 Kickstart 文件:Kickstart 文件用于自动化安装 CentOS 9 操作系统。你需要创建一个 Kickstart 文件,并使用一个简单的 HTTP 服务器来提供该文件。首先,安装一个 HTTP 服务器软件包:
sudo yum install httpd

然后,编辑 /etc/httpd/conf/httpd.conf 文件:

sudo vi /etc/httpd/conf/httpd.conf

找到以下这一行并取消注释(移除行首的 #):

# DocumentRoot "/var/www/html"

保存并关闭文件。接下来,运行以下命令启动 HTTP 服务器并设置为开机自启动:

sudo systemctl start httpd
sudo systemctl enable httpd

然后,创建一个目录来存储 Kickstart 文件:

sudo mkdir /var/www/html/ks

运行以下命令创建一个示例的 Kickstart 文件:

sudo vi /var/www/html/ks/ks.cfg

将以下示例内容复制粘贴到文件中,并根据你的实际需要进行修改:

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Use network installation
url --url="http://<你的服务器 IP 地址>/CentOS-9.0-x86_64-dvd1.iso"
# Use graphical installation
graphical
# Run the Setup Agent on first boot
firstboot --enable
# System language
lang en_US.UTF-8
# Keyboard layouts
keyboard us
# Root password
rootpw --iscrypted <加密的密码>
# System timezone
timezone Asia/Shanghai --isUtc --ntpservers=<NTP 服务器地址>
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
network  --bootproto=dhcp --device=eth1 --onboot=off
# System authorization information
auth  --useshadow  --passalgo=sha512
# SELinux configuration
selinux --enforcing
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --size=4096
part / --fstype="xfs" --grow --size=1
# System services
services --enabled="chronyd"
# System users
user --name=user --password=<加密的密码> --plaintext --iscrypted --gecos="user"
# System groups
group --name=group
# Run the Anaconda installer
%packages
@^minimal
@core
%end

在以上示例配置中,&lt;你的服务器 IP 地址> 需要替换为你的服务器 IP 地址。&lt;加密的密码> 是使用 openssl 命令生成密码的结果。&lt;NTP 服务器地址> 是你选择的 NTP 服务器地址。保存并关闭文件。

  1. 配置防火墙规则:如果你的 CentOS 9 服务器上启用了防火墙,你需要添加一些规则以允许 PXE 和 HTTP 流量通过。运行以下命令来添加防火墙规则:
sudo firewall-cmd --add-service=tftp --permanent
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
  1. 重启所需服务:运行以下命令来重启所需的服务以使更改生效:
sudo systemctl restart dnsmasq
sudo systemctl restart tftp
sudo systemctl restart httpd

至此,你已经成功安装和部署了 PXE 服务器。现在,你可以通过 PXE 启动其他计算机并进行网络安装 CentOS 9 操作系统。

在 CentOS 9 操作系统上安装和部署 PXE(Preboot Execution Environment)服务器,可以帮助你进行网络安装和部署操作系统,无需使用光盘或 USB 驱动器。以下是详细的步骤:

  1. 确保你的 CentOS 9 操作系统已正确安装并处于工作状态。同时,确保你有 root 权限来执行以下操作。

  2. 更新系统:运行以下命令来更新系统软件包和依赖项:

sudo yum update
  1. 安装和配置 DHCP 服务器:PXE 服务器需要提供 DHCP 服务来为客户端分配 IP 地址。在 CentOS 9 上,你可以使用 dnsmasq 来提供 DHCP 服务。运行以下命令来安装 dnsmasq
sudo yum install dnsmasq

安装完成后,你需要编辑 dnsmasq 的配置文件。运行以下命令:

sudo vi /etc/dnsmasq.conf

在文件的末尾添加以下配置信息:

dhcp-range=<起始 IP 地址>,<终止 IP 地址>,255.255.255.0,12h
dhcp-boot=pxelinux.0,<你的服务器 IP 地址>,<网关 IP 地址>

在以上配置中,需要将 &lt;起始 IP 地址>&lt;终止 IP 地址> 替换为你想要为客户端分配的 IP 地址范围。&lt;你的服务器 IP 地址>&lt;网关 IP 地址> 替换为你的服务器 IP 地址和网关 IP 地址。保存并关闭文件。

  1. 准备 PXE 引导文件:在 CentOS 9 上,PXE 引导文件通常存储在 /var/lib/tftpboot 目录中。首先,安装 tftp-server 软件包:
sudo yum install tftp-server

然后,编辑 /etc/xinetd.d/tftp 文件:

sudo vi /etc/xinetd.d/tftp

确保以下这一行不是被注释掉(行首没有 #):

disable = no

保存并关闭文件。然后,运行以下命令来启动 tftp-server 服务并将其设置为开机自启动:

sudo systemctl start tftp
sudo systemctl enable tftp

下一步,创建一个目录来存储 PXE 引导文件:

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

然后,下载并安装 Syslinux 软件包来获取 PXE 引导文件:

sudo yum install syslinux

运行以下命令将 PXE 引导文件复制到 /var/lib/tftpboot/ 目录:

sudo cp /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32} /var/lib/tftpboot/

接下来,创建一个 PXE 引导菜单文件,使用以下命令:

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

将以下示例内容复制粘贴到文件中,并根据你的实际需要进行修改:

DEFAULT menu.c32
PROMPT 0
TIMEOUT 300

LABEL CentOS 9
  MENU DEFAULT
  MENU LABEL CentOS 9
  KERNEL vmlinuz
  APPEND initrd=initrd.img ks=http://<你的服务器 IP 地址>/ks.cfg

LABEL Local Boot
  MENU LABEL Local Boot
  LOCALBOOT 0

在以上示例配置中,&lt;你的服务器 IP 地址> 需要替换为你的服务器 IP 地址。保存并关闭文件。

  1. 准备 Kickstart 文件:Kickstart 文件用于自动化安装 CentOS 9 操作系统。你需要创建一个 Kickstart 文件,并使用一个简单的 HTTP 服务器来提供该文件。首先,安装一个 HTTP 服务器软件包:
sudo yum install httpd

然后,编辑 /etc/httpd/conf/httpd.conf 文件:

sudo vi /etc/httpd/conf/httpd.conf

找到以下这一行并取消注释(移除行首的 #):

# DocumentRoot "/var/www/html"

保存并关闭文件。接下来,运行以下命令启动 HTTP 服务器并设置为开机自启动:

sudo systemctl start httpd
sudo systemctl enable httpd

然后,创建一个目录来存储 Kickstart 文件:

sudo mkdir /var/www/html/ks

运行以下命令创建一个示例的 Kickstart 文件:

sudo vi /var/www/html/ks/ks.cfg

将以下示例内容复制粘贴到文件中,并根据你的实际需要进行修改:

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Use network installation
url --url="http://<你的服务器 IP 地址>/CentOS-9.0-x86_64-dvd1.iso"
# Use graphical installation
graphical
# Run the Setup Agent on first boot
firstboot --enable
# System language
lang en_US.UTF-8
# Keyboard layouts
keyboard us
# Root password
rootpw --iscrypted <加密的密码>
# System timezone
timezone Asia/Shanghai --isUtc --ntpservers=<NTP 服务器地址>
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
network  --bootproto=dhcp --device=eth1 --onboot=off
# System authorization information
auth  --useshadow  --passalgo=sha512
# SELinux configuration
selinux --enforcing
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --size=4096
part / --fstype="xfs" --grow --size=1
# System services
services --enabled="chronyd"
# System users
user --name=user --password=<加密的密码> --plaintext --iscrypted --gecos="user"
# System groups
group --name=group
# Run the Anaconda installer
%packages
@^minimal
@core
%end

在以上示例配置中,&lt;你的服务器 IP 地址> 需要替换为你的服务器 IP 地址。&lt;加密的密码> 是使用 openssl 命令生成密码的结果。&lt;NTP 服务器地址> 是你选择的 NTP 服务器地址。保存并关闭文件。

  1. 配置防火墙规则:如果你的 CentOS 9 服务器上启用了防火墙,你需要添加一些规则以允许 PXE 和 HTTP 流量通过。运行以下命令来添加防火墙规则:
sudo firewall-cmd --add-service=tftp --permanent
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
  1. 重启所需服务:运行以下命令来重启所需的服务以使更改生效:
sudo systemctl restart dnsmasq
sudo systemctl restart tftp
sudo systemctl restart httpd

至此,你已经成功安装和部署了 PXE 服务器。现在,你可以通过 PXE 启动其他计算机并进行网络安装 CentOS 9 操作系统。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jingyu飞鸟

醒来觉得甚是爱你。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值