虚拟机怎么开启并配置PXE网络启动,具体步骤是什么?

在虚拟机中开启PXE网络启动的核心答案是:先为虚拟机配置“主机模式”或“桥接模式”网卡并勾选“允许虚拟机从网络启动”,再搭建或连接可用的DHCP/TFTP服务,最后在固件引导界面选择网络启动项即可完成PXE引导。

为什么虚拟机做PXE比物理机更容易踩坑

很多人在物理机上装过PXE,觉得不就是网卡引导嘛,换到虚拟机里,突然就卡在“Intel UNDI, PXE-2.1”或者直接黑屏,问题通常不在PXE服务端,而在虚拟机网卡的固件类型和启动顺序。

PXE网络启动
加载中
PXE网络启动

虚拟机里的PXE和物理机有本质区别:物理机网卡自带PXE Option ROM,而虚拟机的网卡是否支持PXE,取决于虚拟化软件模拟的网卡型号和虚拟机的固件(BIOS还是UEFI),我用VMware Workstation和VirtualBox都实际测过,最典型的现象是:

  • VMware默认的e1000网卡能正常PXE,但如果你手动改成了vmxnet3,某些旧版固件会找不到网卡启动项。
  • VirtualBox的“允许从网络启动”选项藏在系统设置里,不熟悉的人根本找不到。

关键不是装系统,而是先摸清你用的虚拟机软件把PXE开关藏在哪里。

在VMware Workstation中开启PXE网络启动的具体步骤

VMware Workstation是大家最常用的桌面级虚拟机,开启PXE分三步走。

第一步:确认网卡型号和连接模式

打开虚拟机设置,点“网络适配器”,重点看两处:

  • 设备状态:勾选“打开电源时连接”。
  • 网络连接:PXE必须能获取到DHCP地址,通常选“桥接模式”或“仅主机模式”,如果你的PXE服务器在主机的同一局域网内,用桥接模式让虚拟机直接和物理网络通信;如果PXE的DHCP/TFTP服务就跑在宿主机上,用仅主机模式更稳,能避免物理路由器的DHCP干扰。

网卡型号别乱改,默认的e1000对PXE支持最成熟,如果你非要用vmxnet3,请先确认你的镜像和TFTP引导文件支持该网卡驱动。

第二步:修改虚拟机固件类型和启动顺序

这一步最常见的问题是:在BIOS固件里,PXE选项叫“Network boot”,但在UEFI固件里,PXE选项叫“UEFI Network”或”IPv4 PXE”,你需要开机时快速按F2进入虚拟机固件设置。

具体路径:关机后,在虚拟机配置文件中加入firmware = "efi"(或通过界面“虚拟机设置→选项→高级→固件类型”选择UEFI),然后进入固件,找到Boot Order,把“Network”或“PXE”拖到第一项。

业内专家指出,很多虚拟机PXE失败是因为VMware默认把CD-ROM排在了网络启动前面,因为你的虚拟机里挂载了安装镜像,导致它直接跳过PXE去引导ISO了。

第三步:开机测试和排错

设置好后开机,你会看到网卡尝试DHCP获取地址,然后从TFTP下载引导文件,如果卡住不往下走,按顺序检查:

  • DHCP服务是否给虚拟机分配了IP?在VMware的虚拟网络编辑器里,仅主机模式的DHCP默认开启,但桥接模式用的是物理路由器的DHCP,确保你PXE服务端的DHCP和TFTP在同一网段。
  • TFTP根目录路径是否正确?VMware对路径大小写不敏感,但Linux上的TFTP服务对文件名大小写非常敏感。
  • 虚拟机怎么开启并配置PXE网络启动,具体步骤是什么?

在VirtualBox中开启并配置PXE启动

VirtualBox的PXE设置比VMware更“隐蔽”,因为它的网卡高级设置里默认没有网络启动选项。

找到那个不起眼的“网络启动”勾选

VirtualBox没有像VMware那种“启动顺序”和网卡选项直接关联的界面,你需要这样做:

  1. 选中虚拟机,点击“设置”→“系统”→“主板”。
  2. 在“扩展特性”里,勾选“启用I/O APIC”,同时把“启动顺序”里的“网络”勾上,并拖到最前面。
  3. 点击“网络”→“适配器1”,选择“仅主机网络”或“桥接网卡”。
  4. 最关键的一步:在适配器的高级选项里,将“网卡类型”设为“PCnet-FAST III”或“Intel PRO/1000 MT台式机”,VirtualBox对这两种网卡的PXE ROM兼容性最好,默认的“82540EM”在某些版本上反而不触发PXE。

VirtualBox的PXE启动文件名有什么讲究

VirtualBox自带的PXE ROM是从Intel的Etherboot项目编译的,它请求的引导文件名固定为undionly.kpxe或pxelinux.0,如果你的TFTP服务器上只有bootx64.efi这类UEFI启动文件,VirtualBox的传统BIOS固件会加载失败。

我的建议:在VirtualBox里优先用传统BIOS模式搭配pxelinux.0,别直接上UEFI,因为VirtualBox的UEFI网络栈支持很弱,很多情况下卡在“Press ESC for boot menu”之后就再没反应。

配置PXE服务端的关键:DHCP、TFTP和引导文件

虚拟机这边设置好了,如果PXE服务器没配对,一样白搭,这里只说虚拟机场景下最实用的配置要点。

DHCP的“next-server”和“filename”缺一不可

不论你用dnsmasq还是isc-dhcp-server,必须有这两条参数:

next-server 192.168.1.10;   # TFTP服务器IP
filename "pxelinux.0";      # 引导文件名

如果用的是dnsmasq,对应的写法是:

dhcp-boot=pxelinux.0,192.168.1.10

很多人在虚拟机上调试PXE,喜欢把DHCP和TFTP放在同一个容器或虚拟机里,但忽略了防火墙规则。 我在Ubuntu上测试时,明明服务都启动了,虚拟机就是拿不到IP,最后发现是ufw拦了UDP 67和69端口。

TFTP根目录的目录结构必须和服务端一致

引导文件下载到内存后,会去找同名的配置文件,比如pxelinux.0会加载pxelinux.cfg/default,这个配置里会指定内核和initrd的路径,以及NFS/HTTP的root路径,如果路径不对,会报”File not found”或直接重启。

最稳妥的测试方法:在虚拟机里先加载一个干净的PXE启动菜单,确认能出现菜单界面,再往里填内核参数,我之前栽过跟头:直接写了一个CentOS的抓取安装配置,结果TFTP根目录下忘了放vmlinuz,导致每次都在加载内核时报错。

如何用虚拟机同时模拟PXE客户端和服务端做测试

有一种更灵活的场景:用一台虚拟机当PXE服务器,另一台当客户端,这样不用动宿主机网络。

创建带PXE服务端的精简虚拟机

虚拟机怎么开启并配置PXE网络启动,具体步骤是什么?

装一个最小的Linux虚拟机,分配两张网卡:一张NAT用于上网安装软件包,一张仅主机用于和客户端通信,装好dnsmasq和tftpd-hpa,然后编辑/etc/dnsmasq.conf:

interface=eth1
dhcp-range=192.168.56.100,192.168.56.200,12h
dhcp-boot=pxelinux.0,192.168.56.1
enable-tftp
tftp-root=/srv/tftp

这里有个小技巧:把168.56.1当成TFTP服务器IP,是因为VirtualBox的仅主机网络默认网关就是.1,但你要保证/srv/tftp这个目录对客户端可读。

客户端虚拟机的网络配置要和服务端在同一虚拟网络

把客户端虚拟机的“网络连接”设置为仅主机网络,并确保“接入网线”是勾选状态,开机后就能看到PXE流程跑通。

我反复测试后的结论:这种“双虚拟机互连”的方式最贴近真实物理环境,也最容易排查问题,因为你可以随时在服务端查看DHCP租约和TFTP日志,看到客户端请求了哪个文件,一目了然。

虚拟机PXE启动常见失败现象和修复对照表

失败现象 可能原因 修复方法
开机直接进入系统,不出现PXE提示 启动顺序里根本没有网络选项 进固件把Network/PXE移到第一位
卡在“PXE-E53: No boot filename received” DHCP文件名参数没设置或TFTP服务未启动 检查DHCP的filename选项和TFTP进程状态
加载pxelinux.0后黑屏 引导文件与虚拟机固件类型不匹配 BIOS用pxelinux.0,UEFI用bootx64.efi
能拿到IP但下载文件超时 TFTP根目录文件权限或防火墙拦截 给/srv/tftp加读权限,开放UDP 69端口
VMware桥接模式下无法PXE 物理路由器劫持了DHCP响应 改用仅主机模式,关闭虚拟网络编辑器的DHCP

虚拟机中配置PXE网络启动的价格成本高吗

聊聊实际成本,网上很多人问虚拟机配置PXE网络启动收费贵不贵,其实如果你只是在自己电脑上做实验,成本几乎为零,VMware Workstation Player免费版就支持PXE启动,VirtualBox更是完全开源免费,但如果你要在公司内部搭建带PXE批量装机的自动化平台,可能会涉及正版Windows Server授权和PXE管理软件(比如Fog Project虽然是开源但要服务器硬件),那就要看具体规模了,对于个人学习和中小型IT运维人员,一台普通配置的宿主机加两个开源工具完全够用。

如何在裸金属服务器上测试虚拟机PXE配置的疑惑

有朋友问,虚拟机里PXE配置好了,能直接拿到物理服务器上用吗?答案是可以复用大部分逻辑,但有三个差异必须注意:物理网卡的PXE Option ROM会多一个“Network Boot”热键(通常是F12),而虚拟机是通过固件菜单来选;物理服务器的BIOS/UEFI网络栈更完整,支持HTTP Boot和iPXE,虚拟机不一定支持;物理机的DHCP广播域内可能有多个PXE服务器,你需要用VLAN隔离,而虚拟机通过虚拟网络本身就已经隔离了。

虚拟机怎么开启并配置PXE网络启动,具体步骤是什么?

提升PXE网络启动速度的三个细节

用虚拟机装系统,PXE引导本身很快,慢的是后续的系统镜像下载,三个提速手段很实用:

  • 把TFTP里的引导文件保持最小化,只放内核和initrd,系统安装源改用HTTP或NFS,别从TFTP拉几百MB的镜像。
  • 用dnsmasq自带的PXE代理功能,配合独立的DHCP服务器,避免TFTP和DHCP抢端口。
  • 在虚拟机里给网卡开启“半分片卸载”和“巨帧”,如果虚拟交换机支持的话,跨主机PXE能快不少。

面向不同虚拟化平台的PXE配置差异总结

VMware ESXi的虚拟机PXE配置和Workstation不一样,ESXi虚拟机可以通过“虚拟机选项→引导选项→网络启动”直接开启,KVM/QEMU虚拟机则需要在命令行加-boot order=n参数,并且使用virtio-net-pci网卡时要注意加载对应PXE ROM,Hyper-V虚拟机默认三代网卡不支持传统PXE,你必须用网络适配器作为启动设备,且固件得是Gen1 BIOS,总体思路清楚了,不管换哪个平台,核心永远是“网卡可PXE ROM + 固件启动顺序 + DHCP/TFTP服务”这三件事。

PXE配置过程中需要养成的三个安全习惯

PXE服务端一旦搭好,局域网内任何机器都可能通过网络启动劫持你的安装流程,在虚拟机实验环境里,三点安全建议值得记住:不要在生产网段随意开DHCP和TFTP,最好用仅主机网络或独立VLAN;虚拟机测试完及时关闭PXE服务,避免下次开机误触发网络安装;如果PXE安装脚本里有root密码或网络密钥,记得在测试结束后清理TFTP记录。

Q&A:虚拟机PXE经常卡在“Intel UNDI”之后怎么办?

卡在“Intel UNDI, PXE-2.1”之后,通常是没收到DHCP响应或DHCP返回了错误信息。 先确认虚拟机的网卡是“桥接”还是“仅主机”模式,并保证该网络内的DHCP服务确实在运行,然后用另一台机器抓包看UDP 67端口有没有请求发出,如果抓包显示有广播但没回应,检查DHCP服务端的next-server和filename是否配置,并确认防火墙允许UDP 67/68/69端口。

Q&A:VMware UEFI模式下PXE启动需要哪个EFI文件?

UEFI模式下,PXE引导文件必须是EFI格式的,例如bootx64.efi或shim.efi。 如果DHCP的filename字段给的是pxelinux.0,UEFI固件会直接拒绝加载,需要把TFTP服务端的引导文件改成ipxe.efi或grubx64.efi,同时确保该EFI文件能在早期验证模式下通过Secure Boot的签名校验,对于CentOS/RHEL系列,用efi/PXEBOOT目录下的PXEBOOT.efi最省心。

Q&A:虚拟机PXE启动可以安装Windows系统吗?

可以,但需要额外的SMB/HTTP共享和Windows PE引导文件。 传统PXE配合Windows的WDS服务是最常见方案,虚拟机网卡驱动最好是标准e1000/VMXNET3,因为Windows PE不一定内置第三方虚拟网卡驱动,如果你不想部署WDS,也可以手动搭TFTP引导,让客户端加载WinPE的wim文件,再从HTTP服务器拉取镜像数据,整个过程比Linux的PXE安装繁琐,但逻辑一致,核心是确保网卡驱动和启动镜像匹配。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/621384.html

赞 (0)
lian.com域名值得买吗,域名怎么选?
上一篇 2026年9月4日 05:23
vbox虚拟机磁盘文件有哪些格式?,如何转换格式?
下一篇 2026年9月4日 05:24

相关推荐

  • 越南哪里好玩?越南旅游必去景点推荐

    越南机房位于胡志明市核心数据中心,网络直连东南亚骨干节点,针对国内南方地区及东南亚跨境业务具有显著的低延迟优势,本次测评基于实机测试,深度解析该节点的计算性能、网络质量及稳定性表现,并为用户梳理当前限时促销活动详情, 计算性能与硬件基准测试服务器底层硬件配置直接决定了业务承载能力与并发处理效率,本次测试机型标配……

    2026年4月29日
    5700
  • 三星产品开发流程是什么,三星产品开发策略怎么样

    三星产品开发的核心在于构建硬件与软件深度协同的垂直整合体系,通过标准化的敏捷开发流程与定制化的底层架构优化,实现高性能与高稳定性的统一,这种开发模式不仅要求对Android内核有极深的理解,还需要建立一套跨越芯片、传感器、操作系统及云服务的全链路自动化测试机制,以确保最终交付的产品在用户体验上达到极致的一致性……

    2026年2月20日
    12800
  • Nginx add_header怎么配置?Nginx添加响应头失效怎么解决

    Nginx add_header响应头在高性能Web服务器架构中,Nginx不仅是反向代理和负载均衡的核心组件,更是控制HTTP响应行为的关键节点,add_header指令作为Nginx配置中最常用且最具影响力的响应头管理工具,直接决定了网站的安全性、缓存策略以及SEO表现,对于服务器运维人员、网站开发者以及寻……

    2026年7月10日
    11700
  • Win CE开发是什么?Win CE开发前景怎么样

    Windows CE开发在当前物联网与工业自动化领域依然占据不可替代的市场地位,尽管微软已停止主流支持,但其内核的稳定性、实时性以及硬件层面的广泛兼容性,使其成为众多嵌入式设备的首选方案,核心结论在于:现代Windows CE开发的价值已从通用消费电子转向高可靠性的垂直行业应用,成功的关键在于驾驭遗留系统迁移……

    2026年3月27日
    9200
  • 天翼云服务器个人中心怎么登录,天翼云个人中心入口在哪里?

    天翼云服务器个人中心是你购买、管理、维护云服务器的统一操作台,域名登录入口与账号密码管理均在其完成,所有实例的续费、监控、配置调整也离不开这个页面,对个人开发者、中小站长来说,控制台功能不算复杂,但入口藏得较深,初次使用容易绕弯,这篇文章会把天翼云服务器个人中心的登录路径、高频操作、费用查询和常见问题一次性讲透……

    2026年9月27日
    000
  • java语音开发如何实现?java语音识别开发教程

    Java语音开发的核心在于高效处理音频流与精准调用语音识别接口,其本质是利用Java强大的跨平台能力与丰富的第三方库生态,构建稳定、低延迟的语音交互系统,掌握音频流处理、API对接以及异步通信机制,是构建高质量语音应用的关键路径, 相比于Python在AI模型训练领域的优势,Java在企业级应用落地、高并发处理……

    2026年3月4日
    11700
  • 安卓开发二维码怎么实现?安卓二维码生成与扫描教程

    在安卓平台实现高效的二维码功能,核心在于合理选择技术方案与精准控制生命周期,原生的CameraX API结合ZXing或ML Kit解码库,是目前兼顾性能与兼容性的最佳实践,这一方案不仅解决了传统Camera API回调复杂、内存泄漏风险高的问题,还能通过硬件加速提升解码速度,确保用户获得“即扫即得”的流畅体验……

    2026年3月28日
    10700
  • Android开发者app有哪些,安卓开发工具哪个好用?

    构建高性能、高稳定性的Android应用,核心在于熟练掌握官方集成开发环境Android Studio及其配套的开发者工具链,Android Studio不仅是代码编辑器,更是提升开发效率、优化应用性能的一站式解决方案,通过深度配置环境、掌握调试技巧及利用性能分析工具,开发者能够显著缩短开发周期,并确保应用在各……

    2026年2月23日
    14600
  • 软件开发入门视频怎么选?零基础学软件开发看什么视频好

    对于零基础学习者而言,选择高质量的软件开发入门视频并配合科学的实践方法,是跨越理论鸿沟、快速构建编程思维的最高效路径,视频教程以其直观的代码演示和即时的逻辑解析,能够将抽象的编程概念具象化,大幅降低初学者的认知门槛,单纯观看无法替代动手实践,只有遵循“观看-模仿-独立复现”的闭环学习模式,才能真正掌握软件开发技……

    2026年3月12日
    11300
  • 腾讯应用宝开发者,如何提升应用下载量和用户活跃度?

    腾讯应用宝开发的核心在于精准把握平台特性、规范适配与运营策略的深度结合, 作为国内领先的安卓应用分发平台,应用宝汇聚了海量用户,是开发者触达市场、实现增长的关键渠道,成功在此平台发布并运营应用,远不止于简单的上传,更涉及对平台规则的理解、技术细节的把控以及持续的优化投入,本教程将系统性地引导你完成从准备到上线再……

    2026年2月6日
    13800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注