PXE 高效批量网络装机
2. 配置 DHCP 服务编辑 DHCP 主配置文件/etc/dhcp/dhcpd.conf,设置 IP 地址池、网关、DNS 服务器等参数,并通过next-server指定 TFTP 服务器地址,filename指定 PXE 引导程序文件名。下面是详细的部署步骤。2. 修改 TFTP 配置文件编辑/etc/xinetd.d/tftp文件,将disable = yes改为disable = no,
一、PXE 远程安装服务的核心原理与前提条件
1.1 PXE 技术核心原理
PXE 技术基于 Client/Server 模式运作。其工作流程为,客户机开机后通过网络接口卡(NIC)向网络中的 DHCP 服务器发送请求,获取 IP 地址和引导文件位置信息。接着,客户机通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)服务器下载引导镜像文件和 Linux 内核等相关文件,最后加载这些文件并启动系统安装程序。整个过程无需借助任何物理安装介质,可实现多台客户机的同时引导与安装。
1.2 搭建 PXE 网络体系的前提条件
要成功搭建 PXE 网络安装环境,必须满足以下三个核心条件:
1. 硬件支持:客户机的网卡需支持 PXE 协议,也就是集成 BOOTROM 芯片,同时主板要支持网络引导。现在绝大多数服务器和 PC 都具备此功能,只需在 BIOS 设置中开启 “Network” 或 “LAN” 启动选项即可。
2. DHCP 服务器:网络中必须部署一台 DHCP 服务器,用于为客户机自动分配 IP 地址,并且指定引导文件的位置。这是客户机能够找到 PXE 服务器的关键。
3. TFTP 服务器:需要一台 TFTP 服务器来提供引导镜像文件、Linux 内核、初始化镜像等文件的下载服务。TFTP 协议具有轻量级的特点,非常适合在网络引导过程中传输小文件。
二、部署 PXE 远程安装服务器(基于 OpenEuler 24.03)
本次实验搭建的 PXE 服务器集成了 Linux 安装源、TFTP 服务和 DHCP 服务,服务器的 IP 地址为 192.168.10.101,操作系统为 OpenEuler 24.03。下面是详细的部署步骤。
2.1 准备 Linux 安装源
Linux 网络安装源通常可以通过 HTTP、FTP 或 NFS 协议发布,本文以 FTP 协议为例进行配置,具体步骤如下:
1. 关闭防火墙与 SELinux为了避免防火墙和 SELinux 对服务配置造成干扰,首先需要关闭相关服务并设置其开机不启动。
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2. 挂载系统光盘并安装 vsftpd将系统安装光盘挂载到/media/cdrom目录,然后安装 vsftpd 服务来搭建 FTP 服务器。
[root@localhost ~]# mkdir /media/cdrom
[root@localhost ~]# mount /dev/cdrom /media/cdrom/
[root@localhost ~]# dnf -y install vsftpd
3. 复制光盘文件到 FTP 共享目录创建 FTP 共享目录/var/ftp/euler,并将系统光盘中的所有文件复制到该目录,作为网络安装源。
[root@localhost ~]# mkdir /var/ftp/euler
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/euler
4. 配并启动 vsftpd 服务编辑 vsftpd 的主配置文件/etc/vsftpd/vsftpd.conf,确保开启匿名访问功能,然后启动服务并设置开机自启。
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpd
2.2 安装并启用 TFTP 服务
TFTP 服务由tftp-server软件包提供,其配置文件位于/etc/xinetd.d/tftp,具体配置步骤如下:
1. 安装 tftp-server 软件包
[root@localhost ~]# dnf -y install tftp-server
2. 修改 TFTP 配置文件编辑/etc/xinetd.d/tftp文件,将disable = yes改为disable = no,并指定 TFTP 服务的根目录为/var/lib/tftpboot。
[root@localhost ~]# vim /etc/xinetd.d/tftp
service tftp
socket_type = dgram
protocol = ud
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
3. 启动 TFTP 服务TFTP 服务依赖于tftp.socket,启动该服务并设置开机自启。
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp
2.3 准备 Linux 内核与初始化镜像文件
PXE 网络安装需要 Linux 内核文件(vmlinuz)和初始化镜像文件(initrd.img),这两个文件可以从系统安装光盘的images/pxeboot目录中获取,具体操作如下:
1. 复制内核与初始化镜像文件进入光盘的images/pxeboot目录,将 vmlinuz 和 initrd.img 文件复制到 TFTP 服务的根目录/var/lib/tftpboot。
[roo@localhost ~]# cd /media/cdrom/images/pxeboot
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot
2. 复制引导相关的库文件进入光盘的isolinux目录,将ldlinux.c32和libcom32.c32文件复制到 TFTP 根目录。这两个文件是 SYSLINUX 引导加载程序的重要组成部分,ldlinux.c32负责加载 Linux 内核和初始化文件,libcom32.c32提供底层函数支持。
[root@localhost pxeboot]# cd /media/cdrom/isolinux/
[root@localhost isolinux]# cp ldlinux.c32 libcom32.c32 /var/lib/tftpboot/
一键获取完整项目
2.4 准备 PXE 引导程序
PXE 引导程序pxelinux.0由syslinux软件包提供,该程序是实现 PXE 网络引导的核心文件,具体安装与复制步骤如下:
1. 安装 syslinux 软件包
[root@localhost ~]# dnf -y install syslinux
2. 复制 pxelinux.0 文件到 TFTP 根目录
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/
tftpboot
2.5 安装并启用 DHCP 服务
DHCP 服务器负责为客户机分配 IP 地址,并指定 TFTP 服务器地址和 PXE 引导程序文件名。具体配置步骤如下:
1. 安装 dhcp 软件包
[root@localhost ~]# dnf -y install dhcp
2. 配置 DHCP 服务编辑 DHCP 主配置文件/etc/dhcp/dhcpd.conf,设置 IP 地址池、网关、DNS 服务器等参数,并通过next-server指定 TFTP 服务器地址,filename指定 PXE 引导程序文件名。
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.10.0 netmask 255.255.255.0
option routers 192.168.10.254;
option subnet-mask 255.255.255.0;
option domain-name "bdqn.com";
option domain-name-servers 192.168.10.254,202.106.0.20;
default-lease-time 21600;
max-lease-time 43200
range 192.168.10.200 192.168.10.250;
next-server 192.168.10.101;
filename "pxelinux.0";
3. 启动 DHCP 服务
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl enable dhcpd
三、常见问题排查
1. 客户机无法获取 IP 地址:
• 检查 DHCP 服务是否启动:systemctl status dhcpd。
• 确认 DHCP 配置文件中子网、IP 池与服务器网段一致。
• 关闭防火墙或放行 UDP 67/68 端口(DHCP 默认端口)。
1. 客户机无法下载引导文件:
• 检查 TFTP 服务状态:systemctl status tftp。
• 验证 TFTP 根目录权限:chmod 755 /var/lib/tftpboot。
• 确认 pxelinux.0、vmlinuz 等文件存在且路径正确。
1. 安装过程中提示 “无法访问安装源”:
• 检查 vsftpd 服务是否启动:systemctl status vsftpd。
• 验证 FTP 目录权限:chmod -R 755 /var/ftp/euler。
• 测试服务器本地访问安装源:curl ftp://192.168.10.101/euler。
1. VMware 虚拟机测试报错:
• 内存需≥2GB,否则内核加载失败。
• 禁用 VMware 的 DHCP 服务(编辑→虚拟网络编辑器→取消 “使用本地 DHCP 服务”)。
更多推荐
所有评论(0)