PXE的使用和介绍

Archwiki 介绍

Youtube 介绍

B 站介绍

Intro

PXE 是 Preboot eXecution Environment 的简称, 其为是一种网络引导协议, 它允许计算机通过网络启动操作系统. 使用 PXE, 计算机可以从网络上的服务器获取操作系统镜像, 并在启动时通过网络进行引导, 而不是从本地硬盘或其他存储设备引导。

如:

需要 NIC 支持 PXE 操作. 也需要在 BIOS 中开启.

Wake On LAN 是 PXE NICs 的另一个 feature.

PXE 可以用于 diskless 的主机 (即没有磁盘).

PXE 的具体工作过程为:

需要的组件有:

  • PXE boot server
  • proxyDHCP server
  • TFTP server

需要在一台服务器上搭建 DHCP 和 TFTP.

DHCP 服务器负责为主机分配 IP, 提供启动文件的名称以及 TFTP 服务器的 IP.

TFTP

简单介绍这里提到的 TFTP Server.

proxyDHCP

Software that provide PXE extensions to the non-PXE DHCP environment.

NBP

Network Bootstrap Program 文件.

在 PXE 的规范中, NBP 可以是:

  • 任意文件名
  • 任意大小

NBPs 是 boot chain process 的 first link.

下面就是一种 boot chain process 的示例:

环境配置

DHCP 配置

其配置文件位于 /etc/dhcp

DHCP 服务器监听 udp 的 67 端口.

需要关闭 SELinux, 将 /etc/selinux/config 文件中的:

1
SELINUX=enforcing

改为:

1
SELINUX=disabled

然后:

1
2
setenforce 0
getenfoece 0

需要全局添加如:

1
2
next-server 192.168.6.99;
filename "/pxelinux.0";

next-server 用于指定 tftp 的 ip, filename 指定网络引导程序. 其为 tftp 配置中 server_args 的相对路径.

pexlinux.0 文件需要从 syslinux 包中获取.

pxelinux.0 文件是一个 network boot loader program 且与系统无关, 而普通的 Linux 安装时的引导程序为 grub2(磁盘的零磁道的第一个扇区)

正常情况下, 一个 Linux 系统安装完成之后, 其启动流程为:

  1. BIOS 自检
  2. 读取引导程序
    1. GRUB (一段固定的可执行代码)
    2. BIOS 执行引导程序
    3. 引导程序读取配置文件 /boot/grub/grub.conf

pxelinux.0 的配置文件位于 pxelinux.cfg 文件夹下, 默认文件名为 default. 修改配置文件可以定制引导菜单.

实验流程:

  1. 客户端启动系统, 选择从网卡启动
  2. 从 DHCP 服务器中获取到 IP 地址等信息
  3. 获取 tftp server 以及网络引导程序 pxelinux.0 的位置
  4. 通过网卡读取 tftp server 上的 pxelinux.0 文件到内存中
  5. 在内存中执行引导程序
  6. 读取引导程序的配置文件

比较重要的两个文件: initrd.img (驱动程序), vmlinuz (内核), 每个系统不同, 都可以在 .iso 文件内找到.

添加菜单.

TFTP 配置

修改 /etc/xineted.d/tftp 中:

1
disable = yes

改为:

1
disable = no

然后:

1
servic xinetd restart

自动安装配置

实现无人值守安装.

在 CentOS:

1
yum -y install system-config-kickstart

是 Linux 自带的工具. 其提供无人值守的安装脚本.

可以把安装源挂载到网页上. 如:

1
/dev/cdrom   /var/www/html/pub  iso9660 defaults,loop 0 0

配合 apache 配置到 kickstart 中

内核识别 eth0, 只是有规则改为其他名称.

yum 源为 [development]

需要改为:

1
append initrd=initrd.img ks=http://192.168.6.99/ks/ks.cfg

可以用 menu default 设置默认菜单.


PXE的使用和介绍
http://example.com/2023/10/14/PXE的使用和介绍/
作者
Jie
发布于
2023年10月14日
许可协议