news 2026/9/15 2:53:43

PXE网络引导部署openEuler24.03全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PXE网络引导部署openEuler24.03全攻略

1. PXE部署openEuler24.03环境准备

1.1 硬件与网络规划

PXE部署的核心在于网络引导,因此对硬件和网络环境有特定要求。服务端建议使用物理机或配置较高的虚拟机,至少2GB内存和20GB可用磁盘空间。网络方面需要确保服务端和客户端位于同一局域网段,建议使用千兆以太网环境以获得更快的传输速度。

在实际生产环境中,我曾遇到过因为网络交换机端口隔离导致PXE失败的案例。因此特别建议在部署前,先确认网络设备没有启用端口隔离或VLAN划分。一个简单的测试方法是:在服务端和客户端之间直接ping通,并且能够通过tcpdump抓取到DHCP广播包。

1.2 系统镜像准备

openEuler 24.03 LTS SP1的ISO镜像需要选择完整DVD版本(openEuler-24.03-LTS-SP1-x86_64-dvd.iso),因为其中包含了PXE引导所需的vmlinuz内核和initrd.img初始化镜像文件。这些文件通常位于ISO镜像的/images/pxeboot目录下。

这里有个实用技巧:下载完ISO后务必校验SHA256值。我曾经遇到过因为镜像下载不完整导致PXE引导失败的情况,错误现象是客户端能获取IP但无法加载内核。校验命令如下:

sha256sum openEuler-24.03-LTS-SP1-x86_64-dvd.iso

然后与官网发布的校验值比对。

1.3 服务端基础配置

1.3.1 静态IP配置

PXE服务端必须使用静态IP,这是整个部署过程的基础。在openEuler上配置静态IP有两种主流方式:

  1. 传统network-scripts方式(适用于较老版本):
vim /etc/sysconfig/network-scripts/ifcfg-ens33

配置示例:

TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.10.100 NETMASK=255.255.255.0 GATEWAY=192.168.10.2 DNS1=223.5.5.5
  1. NetworkManager的nmcli方式(推荐新版本使用):
nmcli con mod ens33 ipv4.method manual ipv4.addresses 192.168.10.100/24 ipv4.gateway 192.168.10.2 ipv4.dns "223.5.5.5" nmcli con up ens33
1.3.2 关闭防火墙和SELinux

在测试环境中,为了简化部署过程,建议临时关闭防火墙和SELinux:

systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

但在生产环境中,更安全的做法是精确放行所需端口:

  • DHCP: 67/udp
  • TFTP: 69/udp
  • HTTP: 80/tcp
1.3.3 挂载系统镜像

创建挂载点并挂载ISO镜像:

mkdir -p /mnt/openeuler-iso mount -o loop openEuler-24.03-LTS-SP1-x86_64-dvd.iso /mnt/openeuler-iso

为了实现开机自动挂载,可以编辑/etc/fstab添加:

/root/openEuler-24.03-LTS-SP1-x86_64-dvd.iso /mnt/openeuler-iso iso9660 loop 0 0

2. PXE核心服务部署

2.1 DHCP服务配置

2.1.1 安装DHCP服务器
dnf install -y dhcp-server
2.1.2 配置DHCP服务

编辑/etc/dhcp/dhcpd.conf,关键配置点包括:

  • 定义IP地址池(range)
  • 指定PXE服务器地址(next-server)
  • 根据客户端类型区分UEFI/BIOS引导文件名(filename)

完整配置示例:

ddns-update-style none; default-lease-time 600; max-lease-time 7200; allow booting; allow bootp; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.50; option routers 192.168.10.2; option domain-name-servers 223.5.5.5; next-server 192.168.10.100; class "UEFI" { match if substring(option vendor-class-identifier, 0, 6) = "PXEClient"; filename "EFI/BOOT/grubx64.efi"; } class "BIOS" { match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; filename "pxelinux/pxelinux.0"; } }
2.1.3 启动DHCP服务
systemctl enable --now dhcpd

验证服务是否正常监听67端口:

netstat -ulnp | grep dhcpd

2.2 TFTP服务配置

2.2.1 安装TFTP相关软件
dnf install -y tftp-server syslinux-tftpboot
2.2.2 配置TFTP服务

编辑/etc/xinetd.d/tftp,确保disable=no:

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 }
2.2.3 准备TFTP引导文件
  1. UEFI模式文件:
mkdir -p /var/lib/tftpboot/EFI/BOOT cp /mnt/openeuler-iso/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ cp /mnt/openeuler-iso/EFI/BOOT/grubx64.efi /var/lib/tftpboot/EFI/BOOT/
  1. BIOS模式文件:
mkdir -p /var/lib/tftpboot/pxelinux cp /usr/share/syslinux/{pxelinux.0,ldlinux.c32,libcom32.c32,libutil.c32,menu.c32} /var/lib/tftpboot/pxelinux/
2.2.4 启动TFTP服务
systemctl enable --now xinetd

验证TFTP服务:

tftp 192.168.10.100 -c get EFI/BOOT/grubx64.efi

2.3 HTTP安装源配置

2.3.1 安装Apache HTTP服务
dnf install -y httpd
2.3.2 配置安装源

创建软链接而非直接复制,节省磁盘空间:

mkdir -p /var/www/html/openeuler-24.03-pxe ln -s /mnt/openeuler-iso/* /var/www/html/openeuler-24.03-pxe/
2.3.3 启动HTTP服务
systemctl enable --now httpd

验证HTTP访问:

curl http://localhost/openeuler-24.03-pxe/

3. PXE引导菜单配置

3.1 UEFI模式引导配置

创建/var/lib/tftpboot/EFI/BOOT/grub.cfg:

set timeout=60 set default=0 menuentry 'Install openEuler 24.03 LTS SP1 x86_64' { linuxefi vmlinuz inst.stage2=http://192.168.10.100/openeuler-24.03-pxe quiet initrdefi initrd.img } menuentry 'Rescue openEuler 24.03 LTS SP1' { linuxefi vmlinuz inst.stage2=http://192.168.10.100/openeuler-24.03-pxe rescue quiet initrdefi initrd.img }

3.2 BIOS模式引导配置

创建/var/lib/tftpboot/pxelinux/pxelinux.cfg/default:

default menu.c32 prompt 0 timeout 600 MENU TITLE openEuler 24.03 LTS SP1 PXE Boot Menu LABEL install MENU LABEL Install openEuler 24.03 LTS SP1 x86_64 KERNEL ../vmlinuz APPEND initrd=../initrd.img inst.stage2=http://192.168.10.100/openeuler-24.03-pxe quiet LABEL rescue MENU LABEL Rescue openEuler 24.03 LTS SP1 KERNEL ../vmlinuz APPEND initrd=../initrd.img inst.stage2=http://192.168.10.100/openeuler-24.03-pxe rescue quiet

4. 客户端安装与验证

4.1 客户端网络引导设置

  1. 进入BIOS/UEFI设置界面(通常按DEL、F2或F12)
  2. 启用网络引导(PXE Boot)选项
  3. 调整启动顺序,使网络引导优先于本地磁盘
  4. 保存设置并重启

4.2 安装过程注意事项

  1. 语言选择:建议选择英文,避免中文字符集可能带来的问题
  2. 软件选择:最小安装适合服务器,带GUI的安装适合桌面环境
  3. 分区方案:
    • 自动分区:简单快捷
    • 手动分区:建议至少划分/、/boot、swap三个分区
  4. 网络配置:可以在此处配置静态IP或保留DHCP
  5. 用户设置:强烈建议设置强密码,特别是root账户

4.3 安装后验证

  1. 检查内核版本:
uname -r
  1. 验证网络连通性:
ping -c 4 223.5.5.5
  1. 检查软件源:
dnf repolist

5. 常见问题排查

5.1 客户端无法获取IP地址

排查步骤:

  1. 检查DHCP服务状态:
systemctl status dhcpd
  1. 查看DHCP日志:
journalctl -u dhcpd
  1. 确认网络连接:
tcpdump -i ens33 udp port 67

5.2 获取IP后无法加载引导文件

可能原因:

  1. TFTP服务未正常运行
  2. 引导文件路径不正确
  3. 文件权限问题

解决方案:

systemctl status xinetd chmod -R 644 /var/lib/tftpboot/

5.3 引导菜单显示异常

常见于BIOS模式,检查:

  1. menu.c32等模块是否复制正确
  2. default文件语法是否正确
  3. 文件路径是否匹配

5.4 安装源无法访问

验证方法:

curl http://192.168.10.100/openeuler-24.03-pxe/

确保返回ISO镜像文件列表

6. 高级配置:Kickstart无人值守安装

6.1 创建Kickstart文件

示例/var/www/html/ks.cfg:

# 平台配置 lang en_US.UTF-8 keyboard us timezone Asia/Shanghai auth --enableshadow --passalgo=sha512 # 网络配置 network --bootproto=dhcp --device=ens33 --activate # 安装源 url --url="http://192.168.10.100/openeuler-24.03-pxe" # 分区方案 clearpart --all --initlabel autopart --type=lvm # 软件包选择 %packages @^minimal %end # 后安装脚本 %post dnf install -y vim git systemctl enable sshd %end

6.2 修改引导配置

在原有引导参数后追加:

inst.ks=http://192.168.10.100/ks.cfg

6.3 验证无人值守安装

客户端启动后将自动完成整个安装过程,无需人工干预。安装完成后可以通过预先设置的SSH密钥或密码登录系统。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 2:52:53

ROS2机器人开发必备:Linux Shell底层直觉与实战脚本体系

1. 这不是“学Linux”,是给机器人装上神经系统的第一步很多人点开这个标题,第一反应是:“哦,又一个教Linux命令的教程”。但如果你真这么想,接下来三个月你大概率会在ROS2的报错日志里反复迷失——不是因为代码写错了&…

作者头像 李华
网站建设 2026/9/15 2:51:59

从自用到被用户找上门:一个VSCode小插件开发与维护复盘

晚上十一点多,手机弹出一条微信好友申请,备注写着:"作者您好,我用了您写的那个 VSCode 插件,想问一下能不能加一个批量导出的功能。" 我盯着这行字看了好一会儿,翻到半年前发布的那个 release 记…

作者头像 李华
网站建设 2026/9/15 2:51:34

Ubuntu终端速查表:62条高频命令按工作流组织的安全操作地图

1. 这张速查表不是“命令罗列”,而是你打开Ubuntu终端时真正需要的“操作地图”刚装好Ubuntu,敲完sudo apt update就卡在那儿——不是不会输,是根本不知道下一步该敲什么;写Python脚本调试到一半,发现日志文件权限不对…

作者头像 李华
网站建设 2026/9/15 2:51:18

零基础一次过软考数据工程师:科目选择与备考全攻略

这两年问我软考的人特别多,尤其是冲着“数据工程师”这个名字来的。很多人上来第一句话就是:我完全零基础,想一次过,到底报哪个科目合适?这类问题放在前几年我还会劝人想清楚,现在我的态度很明确&#xff1…

作者头像 李华
网站建设 2026/9/15 2:50:46

基于S7-300与组态王的饲料配料系统完整设计解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华