☰
iVentoy 批量装机实战:PXE 网络启动部署与自动化配置指南
2026/9/26 13:56:21 网站建设 项目流程

1. 为什么我最终选择了 iVentoy 做批量装机

机房上架新机器,最烦的从来不是硬件安装,而是装系统。十几台甚至几十台机器,一台一台插U盘、选启动项、点下一步,一天下来人直接废掉。我最早用的是传统 PXE 方案,配 DHCP、TFTP、HTTP 服务,再手写 pxelinux.cfg,光是让不同型号的网卡都能拿到正确的启动文件就折腾了整整两天。后来换成 Windows Deployment Services,又卡在驱动注入和 UEFI 兼容性上。直到用上 iVentoy,我才真正体会到什么叫"一根网线批量装系统"。

iVentoy 是 Ventoy 的作者做的网络启动版本,核心思路非常直接:把 ISO 镜像丢到一个目录里,启动 iVentoy 服务,客户端通过网络启动后会自动列出所有可用的镜像,选一个就能装。它同时支持 BIOS 和 UEFI,支持 x86_64 和 ARM64,支持 Windows、Linux、VMware ESXi 等常见系统的 ISO 直接启动,不需要你手动解包、不需要改配置文件、不需要为每个镜像单独写启动菜单。对于经常要给服务器批量装系统的运维来说,这东西基本就是"增强版 PXE 服务器一键部署"的最优解。

这篇文章我打算把自己从零部署 iVentoy 的完整过程写清楚,包括网络环境怎么规划、服务端怎么配置、客户端怎么引导、批量装机怎么自动化,以及我踩过的那些坑。不管你是第一次接触 PXE 网络启动,还是已经用过传统方案想换更省事的工具,应该都能直接抄作业。

2. 部署前的网络环境规划与准备工作

2.1 理解 PXE 网络启动的基本链路

在动手之前,有必要把 PXE 的整个链路讲清楚,不然出了问题你根本不知道从哪查。PXE 全称 Preboot Execution Environment,简单说就是网卡自带的一个小系统,它在操作系统启动之前就能通过网络从服务器下载启动文件。整个流程大致是这样的:

  1. 客户端开机,网卡发出 DHCP 请求,同时带上 PXE 相关的扩展字段。
  2. DHCP 服务器回应,除了分配 IP,还要告诉客户端"启动文件在哪台服务器上、叫什么名字"。
  3. 客户端根据 DHCP 给的信息,通过 TFTP 或 HTTP 去下载启动文件。
  4. 启动文件运行后,再去服务器拉取完整的镜像或内核。

传统方案里,第 2 步和第 3 步需要你自己搭 DHCP、TFTP、HTTP 三个服务,还要保证它们之间的配置对得上。iVentoy 把这些全部打包进了一个程序里,你只需要运行它,它自己会处理 DHCP 代理、TFTP 传输和 HTTP 分发。这就是它比传统方案省事的地方。

注意:iVentoy 默认会启动自己的 DHCP 服务。如果你的网络里已经有一台 DHCP 服务器在跑,两者会冲突,必须做额外配置。这一点后面会详细讲。

2.2 硬件与网络环境的最低要求

iVentoy 对服务端的要求其实很低,我实测下来,一台普通的办公机就能扛住十几台客户端同时装机。下面是我建议的配置:

项目最低要求推荐配置说明
CPU双核四核及以上并发装机时 CPU 主要消耗在 HTTP 分发
内存2GB4GB 及以上镜像缓存会占用一部分内存
硬盘20GB根据镜像数量定一个 Windows ISO 约 5GB,Linux 约 1-4GB
网卡千兆千兆及以上百兆网卡装 Windows 会非常慢
网络独立交换机独立交换机避免和办公网络混在一起

网络方面,我强烈建议单独拉一个交换机,把服务端和所有待装机的客户端接在这个交换机上,形成一个独立的二层网络。原因有两个:一是 iVentoy 的 DHCP 不会污染你现有的办公网络,二是千兆交换机下装机速度能跑满,装一个 Windows Server 大概十几分钟。

2.3 网线与水晶头的那些细节

热词里出现了"网线制作""网线水晶头定义",说明很多人是自己压网线的。这里我多说两句,因为装机过程中网络不稳定,十有八九是网线的问题。

现在千兆网络必须用超五类(Cat5e)以上的网线,而且八根线全部要接通。很多人压线只压了 1、2、3、6 四根,百兆能用,千兆直接掉到百兆甚至不通。T568B 的线序是:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕。两头都用 T568B 就是直通线,服务端到交换机、客户端到交换机都用直通线。

压好之后一定要用测线仪测一遍,八灯依次亮起才算合格。我遇到过一根线七灯亮一灯不亮,装机装到一半客户端掉线,排查了半天才发现是水晶头没压紧。这种问题在批量装机时特别致命,因为你会以为是服务端配置有问题。

实操心得:批量装机前,把所有要用的网线全部测一遍,别省这几分钟。装机过程中掉线重来,浪费的时间是测线时间的几十倍。

3. iVentoy 服务端的下载与核心配置

3.1 下载与目录结构说明

iVentoy 官方提供 Windows 和 Linux 两个版本。Windows 版直接下载压缩包解压就能用,Linux 版是一个可执行文件加一个目录。我两种都用过,Windows 版适合临时用,Linux 版适合长期跑在服务器上。

解压后的目录结构大致是这样:

iventoy/ ├── iventoy # Linux 主程序 / Windows 下是 iventoy.exe ├── iso/ # 放 ISO 镜像的目录 ├── lib/ # 依赖库 ├── data/ # 运行时数据 └── log/ # 日志目录

你只需要把要装的 ISO 全部丢进iso/目录,iVentoy 启动时会自动扫描并生成启动菜单。这一点比传统 PXE 强太多,传统方案每加一个镜像都要改配置文件,iVentoy 是即放即用。

3.2 启动参数与关键配置项

Linux 下启动命令很简单:

sudo ./iventoy.sh start

Windows 下直接双击iventoy.exe,会弹出一个图形界面。但真正要配置的东西在图形界面或者配置文件里。下面是我认为最关键的几个配置项:

网络模式选择。iVentoy 有两种网络模式:一种是"外部 DHCP 模式",也就是网络里已经有 DHCP 服务器,iVentoy 只负责 TFTP 和 HTTP;另一种是"iVentoy DHCP 模式",iVentoy 自己当 DHCP 服务器。独立网络环境下用后者最省事,直接选 iVentoy DHCP 模式即可。

DHCP 地址池。默认是192.168.1.100到192.168.1.200,如果你的网络不是这个网段,要改成和服务端同网段的地址。比如服务端是10.0.0.1,地址池就设成10.0.0.100到10.0.0.200。

HTTP 端口。默认 16000,一般不用改。但如果你的服务端上跑了别的 Web 服务占用了端口,就要换一个。

启动模式。iVentoy 支持 BIOS、UEFI、以及两者同时支持。建议选"Both",这样不管客户端是老机器还是新机器都能启动。

配置改完之后,点"启动"按钮,服务端就开始工作了。日志里会显示 DHCP、TFTP、HTTP 三个服务的启动状态,三个都显示 OK 才算正常。

3.3 镜像目录的组织技巧

iVentoy 支持子目录,这一点很实用。我一般这样组织:

iso/ ├── windows/ │ ├── Win11_23H2.iso │ ├── WinServer2022.iso │ └── Win10_22H2.iso ├── linux/ │ ├── ubuntu-22.04.iso │ ├── centos-7.iso │ └── debian-12.iso └── tools/ └── memtest86.iso

客户端启动后,菜单会按目录层级展示,找起来很清楚。如果你镜像特别多,还可以用 iVentoy 的"镜像过滤"功能,只显示匹配特定关键字的镜像。

注意:ISO 文件名不要用中文和特殊字符,虽然 iVentoy 支持,但某些客户端在 UEFI 模式下加载中文路径会出问题。我吃过这个亏,后来全部改成英文加数字。

4. 客户端网络启动与批量装机实操

4.1 客户端 BIOS 设置要点

客户端要能从网络启动,需要在 BIOS 里做几件事:

  1. 开启网卡的 PXE 启动选项。一般在 Boot 菜单里,把"Network Boot"或"PXE Boot"调到启动顺序第一位。
  2. 关闭 Secure Boot。虽然 iVentoy 支持 Secure Boot,但某些老网卡的 PXE 固件和 Secure Boot 配合有问题,关掉最稳。
  3. 确认启动模式。UEFI 机器选 UEFI PXE,老机器选 Legacy PXE。如果 BIOS 里同时有"UEFI"和"Legacy"两个网络启动项,选 UEFI 那个。

不同品牌的服务器进入 PXE 的快捷键不一样,我整理了一个常用对照表:

品牌快捷键备注
DellF12选择一次性启动菜单
HPF9启动菜单
LenovoF12启动菜单
华硕主板F8启动菜单
技嘉主板F12启动菜单
微星主板F11启动菜单

4.2 从网络启动到选择镜像的完整过程

客户端设置好之后,开机应该能看到网卡在搜索 DHCP,然后出现 iVentoy 的启动菜单。菜单里会列出iso/目录下所有的镜像,用方向键选择,回车确认。

这里有个细节:iVentoy 的菜单支持两种模式,一种是"直接启动 ISO",另一种是"注入自动安装脚本"。前者就是普通的启动安装程序,需要你手动点下一步;后者可以配合应答文件实现全自动安装。批量装机肯定要用后者。

选择镜像后,iVentoy 会通过 HTTP 把镜像传输到客户端内存里,然后启动。Windows ISO 大概 5GB,千兆网络下传输时间约 1 分钟,加上安装过程,一台机器从启动到装完大概 15 到 20 分钟。如果你同时装 10 台,总时间不会变成 200 分钟,因为传输是并行的,瓶颈在服务端的网卡和硬盘读取速度。

4.3 批量装机的并发控制与性能调优

iVentoy 默认没有限制并发数,但服务端的网卡带宽是有限的。千兆网卡理论带宽 125MB/s,如果同时给 10 台客户端传输,每台只能分到 12.5MB/s,传输时间会拉长到 7 分钟左右。所以并发数不是越多越好。

我的经验是:千兆网络下,同时装 5 到 8 台比较合适。如果服务端是万兆网卡,可以同时装 20 台以上。另外,把 ISO 放在 SSD 上比放在机械硬盘上快很多,因为多客户端并发读取时,机械硬盘的随机读取会成为瓶颈。

如果你要装的机器特别多,可以考虑用 iVentoy 的"多网卡"功能,服务端插多张网卡,每张网卡接一个交换机,分担流量。这个功能在专业版里支持,免费版单网卡也够用。

实操心得:装机前先把所有 ISO 在服务端本地读一遍,让文件进入系统缓存。这样客户端来拉的时候,直接从内存读,速度会快很多。Linux 下可以用cat *.iso > /dev/null预热。

5. 自动应答文件与全自动装机配置

5.1 Windows 自动安装应答文件

手动点下一步装一台机器还行,装十台就是折磨。Windows 的自动安装靠的是autounattend.xml应答文件。iVentoy 支持在启动时自动注入这个文件。

制作应答文件可以用 Windows ADK 里的 Windows System Image Manager,也可以直接手写。核心要配置的几项:

  • 磁盘分区方案(自动清空磁盘、创建分区)
  • 语言和时区
  • 产品密钥(可选,也可以装完再激活)
  • 计算机名(可以用随机名或从 DHCP 获取)
  • 管理员密码
  • 首次登录后要执行的脚本

把autounattend.xml放在 ISO 根目录,或者放在 iVentoy 的data/目录下,启动时选择"注入应答文件"即可。这样客户端启动后全自动完成安装,中间不需要任何人工干预。

5.2 Linux 自动安装配置

Linux 这边,Ubuntu 用 autoinstall,CentOS 用 kickstart。以 Ubuntu 22.04 为例,你需要准备一个user-data文件:

#cloud-config autoinstall: version: 1 identity: hostname: ubuntu-server username: admin password: "$6$rounds=4096$..." storage: layout: name: direct packages: - openssh-server - vim

这个文件放在 ISO 的nocloud目录下,或者通过 iVentoy 的注入功能传入。Ubuntu 22.04 的服务器版安装程序会自动读取这个配置,实现无人值守安装。

CentOS 的 kickstart 文件类似,核心是配置分区、网络、软件包和用户。iVentoy 支持把 kickstart 文件通过 HTTP 提供给客户端,你只需要在启动参数里加上inst.ks=http://服务端IP:16000/ks.cfg即可。

5.3 装机后的初始化脚本

系统装完只是第一步,后面还有一堆事情:改主机名、配 IP、装监控 agent、加入域或集群。这些可以写成一个初始化脚本,在应答文件里配置首次登录自动执行。

我一般会准备一个post-install.sh,放在服务端的 HTTP 目录下,客户端装完后用 curl 拉下来执行。脚本内容大致包括:

#!/bin/bash # 设置主机名 hostnamectl set-hostname $(cat /etc/hostname) # 配置静态 IP # 安装常用工具 apt install -y vim curl wget htop # 安装监控 agent # 配置时间同步 timedatectl set-ntp true

这样一套流程下来,从裸机到可用状态,全程不需要人工介入。我最多的一次同时装了 12 台,坐在旁边喝咖啡,半小时后全部装完。

6. 常见故障排查与避坑经验

6.1 客户端拿不到 IP 或启动失败

这是最常见的问题,排查思路按顺序来:

现象可能原因排查方法
客户端一直显示 DHCP...DHCP 没响应检查服务端 DHCP 是否启动,网线是否通
拿到 IP 但无法下载启动文件TFTP/HTTP 不通检查防火墙,确认 69 和 16000 端口开放
启动文件下载后黑屏启动模式不匹配UEFI 机器选了 Legacy 启动,或反之
菜单出现但选镜像后报错ISO 损坏校验 ISO 的 MD5,重新下载

我遇到最多的是防火墙问题。Linux 服务端上如果开了 firewalld 或 ufw,默认会挡掉 TFTP 和 HTTP 端口。临时关闭防火墙测试:

sudo systemctl stop firewalld # 或者 sudo ufw disable

确认是防火墙问题后,再按需开放端口,而不是一直关着。

6.2 iVentoy 服务端崩溃或重启

热词里有"iventoy 总是重启""无法设置""崩溃了",说明不少人遇到了稳定性问题。我总结下来主要有几个原因:

一是端口冲突。iVentoy 默认用 16000 端口,如果这个端口被别的程序占了,服务启动会失败。用netstat -tlnp | grep 16000查一下,有冲突就改端口。

二是权限问题。Linux 下 iVentoy 需要 root 权限才能操作网络接口和绑定 69 端口。如果你用普通用户启动,DHCP 和 TFTP 会起不来。一定要用sudo。

三是网卡选择错误。服务端有多张网卡时,iVentoy 可能绑到了错误的网卡上。在配置界面里明确指定要用的网卡,别用"自动"。

四是 ISO 目录里有损坏的文件。iVentoy 启动时会扫描所有 ISO,如果某个文件损坏或格式不对,可能导致扫描过程崩溃。把可疑的 ISO 移出去再试。

6.3 装机速度慢的优化思路

装机慢通常不是 iVentoy 的问题,而是网络或存储的问题。按这个顺序排查:

  1. 确认客户端和服务端都是千兆连接。看交换机的指示灯,千兆是绿色,百兆是橙色。如果客户端显示百兆,换网线或换交换机端口。
  2. 确认 ISO 存放在 SSD 上。机械硬盘并发读取时,磁头来回寻道,速度会掉得很厉害。
  3. 减少并发数。同时装的机器越多,每台分到的带宽越少。
  4. 关闭服务端上其他占带宽的程序。比如正在跑备份、正在同步文件,都会抢带宽。

避坑技巧:如果你的交换机支持链路聚合,把服务端的两张网卡做 bond,带宽翻倍,并发装机能力直接提升一倍。这个在批量装机场景下效果非常明显。

6.4 特殊场景:只有一根网线怎么连服务器管理口

热词里有人问"只有一条网线,怎么通过本地电脑连服务器管理口"。这个场景和 iVentoy 相关,因为很多人是在管理口上做网络启动的。服务器一般有独立的 IPMI 管理口,用一根网线把笔记本和管理口直连,笔记本设一个同网段的静态 IP,就能通过浏览器访问管理界面,然后在管理界面里挂载 ISO 或配置 PXE 启动。

具体操作:笔记本网卡设成192.168.1.100/24,服务器管理口默认通常是192.168.1.1或192.168.0.1,浏览器访问这个地址,登录后就能看到远程控制台。在远程控制台里可以挂载本地 ISO,也可以配置从网络启动。这样你不需要跑到机房,坐在工位上就能给服务器装系统。

7. 进阶玩法与扩展思路

7.1 在虚拟化环境中部署 iVentoy

如果你没有物理机做测试,完全可以在 VMware 或 Proxmox 里跑 iVentoy。虚拟机装一个 Linux,把 iVentoy 跑起来,然后创建几个测试虚拟机,网卡设成和 iVentoy 同一个虚拟网络,就能模拟批量装机。这个方式特别适合学习和验证配置,不用担心搞坏物理机。

在 Proxmox 里,创建一个 Linux 虚拟机,网卡桥接到vmbr0,然后在这个虚拟机上跑 iVentoy。再创建几个待装机的虚拟机,网卡也桥接到vmbr0,启动时选网络启动,就能看到 iVentoy 的菜单。整个过程不需要任何物理网线和交换机。

7.2 结合自动化运维工具做集群部署

iVentoy 解决的是"装系统"这一步,装完之后的事情可以交给 Ansible、SaltStack 这类工具。我的做法是:iVentoy 装完系统后,初始化脚本自动把机器的主机名和 IP 注册到 Ansible 的 inventory 里,然后 Ansible 统一推送配置、安装软件、部署服务。这样从裸机到集群就绪,全程自动化。

如果你要部署的是 Kubernetes 集群,也可以用类似思路:iVentoy 装好基础系统,初始化脚本安装 containerd、kubelet、kubeadm,然后由一个 master 节点执行kubeadm join把其他节点拉进来。整个过程可以做到无人值守。

7.3 镜像更新与版本管理

ISO 镜像会不断更新,Ubuntu 每半年一个新版本,Windows 每年一个大版本。建议在服务端上建一个版本管理目录,保留最近两三个版本,旧的及时清理,避免磁盘占满。

我一般用日期加版本号命名,比如ubuntu-22.04.3-20240115.iso,这样一眼就能看出是哪个版本、什么时候下载的。iVentoy 的菜单会按文件名排序,最新的版本放在最前面,选起来也方便。

另外,下载完 ISO 后一定要校验哈希值。Ubuntu 和 CentOS 官网都提供 SHA256,Windows 可以用微软官网的哈希工具。校验通过再放进iso/目录,避免装机装到一半发现镜像损坏。

8. 我个人的一些实操体会

iVentoy 这个工具,我从早期版本用到现在,最大的感受就是"省心"。传统 PXE 方案你要懂 DHCP、TFTP、HTTP、pxelinux、grub,还要为每个镜像单独配置,门槛不低。iVentoy 把这些全部封装了,你只需要放 ISO、点启动,剩下的它自己搞定。对于不是专门做网络启动的运维来说,这个工具能省下大量时间。

但它也不是万能的。如果你的网络环境特别复杂,比如有多个 VLAN、有现有的 DHCP 服务器不能动、有安全策略限制,那还是需要花时间做适配。另外,iVentoy 的免费版和专业版在功能上有差异,批量装机场景下免费版基本够用,但如果需要多网卡、更细的权限控制,可以考虑专业版。

最后分享一个小技巧:装机前把服务端的系统时间校准一下。我遇到过因为服务端时间不对,导致 Windows 客户端装完后系统时间错乱,域认证失败。用timedatectl或chrony同步一下时间,几秒钟的事,能避免很多莫名其妙的认证问题。这个细节很少有人提,但实际运维中确实会碰到。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询