在IT运维和系统部署中,PXE网络安装Linux能大幅提升批量装机效率。通过VMware虚拟化平台搭建测试环境,可以避免物理机反复重启、损坏硬件的风险,是学习和验证PXE技术的理想选择。本文将从零开始,带你完整走通VMware下PXE安装Linux的全过程,涵盖环境准备、服务配置、故障排错等关键环节。
PXE安装Linux需要准备哪些东西
要成功实现PXE安装,首先得备齐软硬件环境。硬件层面,一台性能尚可的PC或服务器即可,建议内存不低于8GB,因为要同时运行VMware虚拟机、DHCP/TFTP服务和Linux安装源。软件层面,你需要安装VMware Workstation或ESXi,并下载一个Linux发行版的ISO镜像,比如CentOS 7/8、Ubuntu Server或Rocky Linux。

除了这些基础物料,还得准备好一台充当“安装服务器”的虚拟机。这台服务器负责提供DHCP分配IP、TFTP传输引导文件以及HTTP/FTP/NFS分发安装源。你可以用任意Linux发行版搭建,甚至用Windows下的Tftpd32工具。建议使用CentOS或Ubuntu Server作为服务端,因为相关开源软件包齐全,社区文档丰富,遇到问题容易找到解决方案。
VMware虚拟机如何开启PXE启动
在VMware中创建待安装的客户机时,关键一步是确保虚拟网卡支持PXE。创建虚拟机时选择“典型”配置即可,但必须手动将网络适配器类型设为“VMXNET3”或“E1000E”,这两款虚拟网卡原生支持PXE引导。如果选用了旧版“E1000”,部分Linux发行版的PXE启动可能会出现兼容性问题。

启动虚拟机后,按F2进入BIOS设置。在“Boot”菜单中,将“Network boot from Intel E1000”或类似选项移到最顶部,确保网络引导优先于硬盘。保存退出后,虚拟机就会尝试从DHCP服务器获取IP并下载引导文件。如果看到“Client MAC Address”和“DHCP…/”提示,说明PXE启动已正常触发。若始终跳过网络启动,请检查虚拟机“选项”中的“引导延迟”是否设置足够长的时间。
DHCP和TFTP服务器怎么配置
PXE启动依赖DHCP服务器给客户端分配IP并告知TFTP服务器地址。DHCP配置文件中需要添加“next-server”和“filename”参数。例如在isc-dhcp-server的/etc/dhcp/dhcpd.conf里,subnet网段内设置“next-server 192.168.1.10;”和“filename pxelinux.0;”。注意确保DHCP服务与待安装虚拟机在同一虚拟网络(如VMnet8 NAT或仅主机模式)。

TFTP服务器负责传输pxelinux.0、菜单配置文件及内核vmlinuz等小文件。在服务端安装tftp-server并启动服务,将引导文件放入/var/lib/tftpboot目录。同时需要复制syslinux包里的pxelinux.0、menu.c32等文件到此目录红帽子linux,并创建pxelinux.cfg/default菜单文件。配置菜单时需指定安装源位置,可以使用HTTP服务器(如nginx或Apache)共享ISO解压后的全部内容,通过标签引导自动启动安装。
引导文件与安装源如何获取
引导文件主要来自Linux发行版的ISO镜像。挂载ISO后,将images/pxeboot/目录下的vmlinuz和initrd.img复制到TFTP根目录。另外还需要从ISO的isolinux/目录拷贝vesamenu.c32、splash.png等辅助文件。pxelinux.0则从syslinux软件包获取,版本必须与发行版兼容vmware pxe 安装linux,否则可能出现菜单无法加载或内核崩溃的问题。
安装源是指完整的系统软件包仓库。最简单的方法是把ISO镜像全部内容解压到HTTP服务器的某个目录,比如/var/www/html/centos8。然后在PXE菜单的append行加上“inst.repo=”。注意不同发行版的参数名称有差异:RHEL/CentOS使用“inst.repo”,Ubuntu使用“url=”,Debian使用“mirror/”。确保服务端防火墙开放了69/UDP(TFTP)和80/TCP(HTTP),否则客户端无法拉取文件。

常见PXE启动失败原因及解决
现象一:客户端收到IP后卡在“TFTP open timeout”。这通常是TFTP服务未运行或防火墙阻挡了UDP 69端口。检查systemctl status tftp,并确认服务端iptables或firewalld已放行。另外,虚拟机网络模式若用了NAT,务必检查VMware的虚拟网络编辑器是否启用了DHCP服务,避免与外部DHCP冲突。
现象二:成功下载pxelinux.0但显示“Missing operating system”或无法加载菜单。多数是因为pxelinux.cfg/default文件缺失或路径错误。检查TFTP根目录下是否有pxelinux.cfg文件夹,以及default文件语法是否正确。还有可能是vmlinuz和initrd.img文件损坏或版本不匹配linux 安装,建议重新从ISO复制替换。如果菜单出现但安装中途报错找不到repo,请确认HTTP源路径能被虚拟机访问,并且索引文件repodata完整。
实际案例演示CentOS网络安装

我们以VMware Workstation 17为例,宿主机Windows 11,服务端使用CentOS 7虚拟机(IP 192.168.100.10)。首先在服务端安装dhcp、tftp-server、httpd和syslinux。配置DHCP子网192.168.100.0/24,next-server指向自身。将CentOS 8 Stream的ISO挂载,复制pxeboot内容到/var/lib/tftpboot,复制全部光盘文件到/var/www/html/centos8。编写pxelinux.cfg/default,设置默认启动标签,append参数包含“inst.repo=”。
然后创建一台新的虚拟机,网络适配器选用VMnet2(自定义仅主机模式),并在VMware虚拟网络编辑器中将VMnet2的DHCP服务关闭。启动新虚拟机,按下F2进入BIOS把网络启动调到第一项。保存重启后vmware pxe 安装linux,屏幕很快显示DHCP获取IP,接着弹出CentOS的图形安装菜单。选择“Install CentOS 8 Stream”即可进入正常的图形化安装界面,分区、设置root密码等操作与光盘安装完全一致,全程无需本地介质。
看完这篇教程,你在VMware中用PXE安装Linux时遇到过最诡异的报错是什么?欢迎在评论区分享你的踩坑经历,点赞让更多运维同行少走弯路。
