虚拟机启动PXE的原理与环境搭建
虚拟机启动PXE(Preboot Execution Environment,预启动执行环境)是一种通过网络从远程服务器自动部署操作系统的方式,无需本地存储介质(如U盘或光盘),本文将详细介绍虚拟机启动PXE的工作原理、环境搭建步骤、常见问题及解决方案,帮助读者全面掌握这一技术。

PXE启动的基本原理
PXE是一种基于Client/Server模式的网络启动协议,其核心流程依赖于DHCP、TFTP和DHCP Option 60等网络协议的协同工作。
-
DHCP服务分配IP与启动文件
当虚拟机设置为网络启动时,首先通过DHCP(动态主机配置协议)获取IP地址,DHCP服务器不仅分配IP,还会通过DHCP Option 60(PXEClient)识别客户端为PXE设备,并返回TFTP服务器的IP地址和启动文件(如pxelinux.0)的路径。 -
TFTP传输引导文件
虚拟机通过TFTP(简单文件传输协议)从服务器下载引导文件,这些文件包括Linux内核(vmlinuz)、初始化镜像(initrd.img)和配置文件(pxelinux.cfg/default),用于启动操作系统安装程序。 -
加载安装程序
引导文件加载后,虚拟机进入操作系统安装界面,此时可通过HTTP、FTP或NFS协议从镜像服务器获取安装文件,完成系统的自动化部署。
虚拟机启动PXE的环境准备
搭建PXE启动环境需要以下组件:
- 虚拟化平台:如VMware Workstation、VirtualBox或KVM。
- PXE服务器:需安装DHCP、TFTP、HTTP(或FTP/NFS)服务,建议使用Linux系统(如CentOS或Ubuntu)。
- 操作系统镜像:如CentOS、Ubuntu的ISO文件,需挂载到HTTP或FTP服务目录。
PXE服务器的配置步骤
-
安装必要的服务
以CentOS为例,执行以下命令安装DHCP、TFTP和HTTP服务:yum install dhcp tftp-server httpd -y
-
配置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; next-server 192.168.1.10; # TFTP服务器IP filename "pxelinux.0"; }启动并设置DHCP服务开机自启:

systemctl enable --now dhcpd
-
配置TFTP服务
将PXE引导文件复制到TFTP根目录(默认为/var/lib/tftpboot):yum install syslinux -y cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ mkdir -p /var/lib/tftpboot/pxelinux.cfg
下载操作系统内核和初始化镜像(以CentOS 7为例):
cp /mnt/CentOS7/isolinux/vmlinuz /var/lib/tftpboot/ cp /mnt/CentOS7/isolinux/initrd.img /var/lib/tftpboot/
创建PXE配置文件
/var/lib/tftpboot/pxelinux.cfg/default:default centos7 label centos7 kernel vmlinuz append initrd=initrd.img inst.ftp=http://192.168.1.10/centos7启动TFTP服务:
systemctl enable --now tftp
-
配置HTTP服务
将操作系统镜像挂载到HTTP目录(默认为/var/www/html):mkdir -p /var/www/html/centos7 mount -o loop /path/to/CentOS7.iso /var/www/html/centos7
启动HTTP服务:
systemctl enable --now httpd
虚拟机的PXE启动配置
-
VMware Workstation配置
- 创建虚拟机时,选择“自定义硬件”,在网络适配器中设置为“桥接模式”。
- 开机进入BIOS设置,将启动顺序的第一项改为“网络启动”。
-
VirtualBox配置

- 在虚拟机设置中,网络适配器选择“桥接网卡”。
- 启动时按F12,选择网络启动设备。
-
KVM配置
- 使用
virt-manager创建虚拟机时,网络模式选择“桥接”。 - 修改虚拟机XML配置,添加
<boot dev='network'/>。
- 使用
常见问题与解决方案
-
虚拟机无法获取IP地址
- 检查DHCP服务是否正常启动,防火墙是否放行67/UDP端口。
- 确认虚拟机网络模式是否为桥接或NAT(需配置端口转发)。
-
TFTP下载失败
- 检查TFTP服务目录权限,确保文件可读。
- 验证
next-server和filename参数是否正确。
-
找不到安装镜像
- 确认HTTP/FTP服务路径是否正确,镜像是否已挂载。
- 检查防火墙是否放行80/TCP(HTTP)或21/TCP(FTP)端口。
虚拟机启动PXE技术通过整合DHCP、TFTP和文件传输服务,实现了操作系统的网络化部署,大幅提升了批量部署效率,在实际操作中,需注意服务配置的准确性和网络环境的兼容性,通过合理规划和调试,PXE启动技术可广泛应用于企业级虚拟化环境,为系统运维提供便捷解决方案。



















