文档首页> 常见问题> Linux 服务器如何配置 PXE 网络安装?

Linux 服务器如何配置 PXE 网络安装?

发布时间:2025-04-23 06:44       

Linux服务器PXE网络安装全攻略:从零开始搭建自动化部署环境

在现代IT运维中,PXE(Preboot eXecution Environment)网络安装技术已经成为批量部署操作系统的标准解决方案。本文将详细介绍如何在Linux服务器上配置PXE服务,实现无人值守的网络安装环境。

一、PXE网络安装原理概述

PXE是一种让计算机通过网络启动而不依赖本地存储设备的技术标准。其工作流程主要包括以下几个关键步骤:

  1. 客户端通过网卡内置的PXE ROM发起DHCP请求
  2. DHCP服务器分配IP地址并提供TFTP服务器位置
  3. 客户端从TFTP服务器下载引导程序
  4. 引导程序加载内核和初始文件系统
  5. 通过网络完成操作系统安装

二、环境准备与服务器配置

1. 硬件和网络要求

  • 服务器:至少2核CPU,4GB内存,100GB存储空间
  • 网络:千兆以太网环境,建议使用独立子网
  • 客户端:支持PXE启动的网卡

2. 软件包安装

# 在CentOS/RHEL系统上
sudo yum install -y dhcp tftp-server syslinux httpd

# 在Ubuntu/Debian系统上
sudo apt-get install -y isc-dhcp-server tftpd-hpa syslinux apache2

三、详细配置步骤

1. DHCP服务器配置

编辑/etc/dhcp/dhcpd.conf配置文件:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8;
    filename "pxelinux.0";
    next-server 192.168.1.10; # 指定TFTP服务器IP
}

2. TFTP服务配置

设置TFTP根目录并复制必要的引导文件:

sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg
sudo cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
sudo cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

3. 创建PXE启动菜单

在/var/lib/tftpboot/pxelinux.cfg/default文件中配置:

DEFAULT menu.c32
PROMPT 0
TIMEOUT 300

LABEL linux
    MENU LABEL Install CentOS 7
    KERNEL images/centos7/vmlinuz
    APPEND initrd=images/centos7/initrd.img ks=http://192.168.1.10/ks.cfg

四、添加操作系统镜像

将ISO镜像内容解压到Web服务器目录:

sudo mkdir -p /var/www/html/centos7
sudo mount -o loop CentOS-7-x86_64-Minimal-2009.iso /mnt
sudo cp -r /mnt/* /var/www/html/centos7/
sudo umount /mnt

五、Kickstart无人值守配置

创建自动应答文件/var/www/html/ks.cfg:

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
install
url --url=http://192.168.1.10/centos7
lang en_US
keyboard us
rootpw --iscrypted $1$salt$hashedpassword
timezone Asia/Shanghai
clearpart --all --initlabel
part /boot --fstype="xfs" --size=500
part swap --size=4096
part / --fstype="xfs" --size=1 --grow
reboot

六、服务启动与测试

sudo systemctl start dhcpd
sudo systemctl start tftp
sudo systemctl start httpd
sudo systemctl enable dhcpd tftp httpd

七、常见问题解决

客户端无法获取IP地址
- 检查DHCP服务是否正常运行
- 确认防火墙未阻止DHCP请求
TFTP传输失败
- 验证TFTP根目录权限设置为755
- 检查SELinux上下文是否正确

通过本文的详细步骤,您已经成功搭建了一个完整的PXE网络安装环境。这套系统可以显著提高批量部署效率,特别适合数据中心、企业IT环境和大规模部署场景。后续可以根据需要添加更多操作系统选项,或进一步优化Kickstart配置文件。