使用 OpenWRT 配置 PXE 启动
在家庭服务器环境或小型机房中,通过网络(PXE)启动服务器可以显著简化设备的安装流程。本文将介绍如何在 OpenWRT 路由器 + 一台内网 Linux 服务器的组合下,搭建可用于 UEFI 启动的 PXE 环境,并支持 iPXE、HTTP 启动等现代特性。
本文实验成功的环境:
- 路由器:OpenWRT(系统版本 24.10)
- TFTP / HTTP 服务器:一台内网 Linux 服务器(安装 Ubuntu 系统)
- 客户端:支持 UEFI PXE 的服务器主板
PXE 启动原理
PXE(Preboot eXecution Environment)启动主要由以下步骤组成:
- 客户端通过网络发送 DHCP Discover
- DHCP 服务器返回 IP 地址,并附加 PXE 相关字段:
- next-server(TFTP server 的 IP)
- filename(要下载的启动文件,如
snponly.efi)
- 客户端向 TFTP 服务器请求文件
- 使用下载到的引导器加载后续启动流程,例如:
- iPXE(支持 HTTP、iSCSI 等)
- Linux kernel + initrd
OpenWRT 的 dnsmasq 内置了 PXE 支持,并且可以方便地通过 LuCI 界面配置。
配置 TFTP 服务
首先,在内网 Linux 服务器上安装 TFTP 服务,用于提供必要的文件。以 tftpd-hpa 为例:1
sudo apt install tftpd-hpa
编辑 /etc/default/tftpd-hpa:1
2
3
4TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
重启服务:1
sudo systemctl restart tftpd-hpa
配置 HTTP 服务
以 Nginx 为例:1
sudo apt install nginx
重启服务:1
sudo systemctl restart nginx


