1. 项目说明
2. 项目背景知识
2.1. 需求
2.2. 常见系统批量安装方式
2.2.1. 使用商业化软件
2.2.2. 使用开源软件
2.2.3. 结论
2.3. iventoy介绍
iVentoyhttps://www.iventoy.com/cn/index.html1.iVentoy 是一款增强版的 PXE 服务器工具,主要用于通过网络同时给多台机器启动和安装操作系统。
2.iVentoy 可以看成是一个增强版的 PXE 服务器,使用iVentoy 你可以通过网络同时给多台机器启动、安装操作系统。

2.3.1.核心功能
-
网络启动与安装:iVentoy 可以通过网络同时为多台机器启动和安装操作系统,无需逐台制作启动盘。
-
支持多种操作系统:支持 110 多种常见类型的操作系统,包括 Windows、WinPE、Linux、VMware 等。
-
多种启动模式支持:同时支持 x86 Legacy BIOS、IA32 UEFI、x86_64 UEFI 和 ARM64 UEFI 模式。
2.4PEX介绍
-
PXE,预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。
-
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
3.项目环境
3.1.项目拓扑结构
安装win10/11 笔记本一台、服务器若干、交换机一台
3.2. 软硬件环境清单
主机名 | IP地址 | 硬件 | 软件 |
---|---|---|---|
pxe-control | windows本机分配IP | Windows本机 | iventoy-1.0.20-win64-free.zip |
node1 | 192.168.88.162 | cpu:1颗2核 内 存:4GB HDD:20GB 网 络:NAT | VmWare17 Centos7.9 |
node2 | 192.168.88.163 | cpu:1颗2核 内 存:4GB HDD:20GB 网 络:NAT | VmWare17 OpenEuler22.03 SP4 |
4. 任务清单
4.1. 系统平台部署
4.2.Windows下安装iventoy
前置处理
解压缩部署
4.3.配置iventoy
配置网卡信息
配置vmware
4.4.测试安装
安装centos7.9
安装openeuler
4.5. 自动化脚本安装
5. 实验步骤
5.1安装下载
下载地址:https://www.iventoy.com/cn/download.html
注意:

各个目录作用如下:
目录 | 说明 |
---|---|
data | 存放 License、配置文件等 |
doc | 存放软件相关说明文档 |
iso | 放ISO文件的地方,可以在里面创建子目录 |
lib | 存放 iVentoy 运行所需的 LIB 文件,用户不要动这个目录 |
log | 存放 iVentoy 运行日志 |
user | 存放用户文件、第三方软件包、自动安装脚本等文件 |
5.2. 配置iventoy
5.2.1. 拷贝ISO文件
将需要安装的系统ISO文件都拷贝到D:\iventoy-1.0.20-win64-free\iventoy-1.0.20\iso目录下
可以在此目录下任意创建子目录来归类存放各种不同类型系统的ISO文件。
注意:
1.目录名和ISO文件名中不能有中文或空格
2.也可以管理员身份打开cmd,使用命令创建iso快捷方式(软连接),即不需要将ISO文件从别的位置拷贝到这个 iso
目录下 ( Linux 系统中你可以使用 ln -s
命令)
# 在 Windows 系统中你可以使用 mklink 目标 源 命令创建
C:\Users\Administrator>mklink D:\iventoy-1.0.20-win64-free\iventoy-1.0.20\iso\CentOS-7-x86_64-DVD-2207-02.iso D:\Linux\Linux_app\ISO\CentOS-7-x86_64-DVD-2207-02.iso
为 D:\iventoy-1.0.20-win64-free\iventoy-1.0.20\iso\CentOS-7-x86_64-DVD-2207-02.iso <<===>> D:\Linux\Linux_app\ISO\CentOS-7-x86_64-DVD-2207-02.iso 创建的符号链接
我没有使用快捷方式,直接复制粘贴过去。
5.2.2.运行软件
Windows 系统中直接双击运行 exe 文件即可
Linux 系统下在终端中执行 sudo bash iventoy.sh start
命令。
注意:windows 注意需要关闭防火墙或放行相关端口。本文采用关闭所有防火墙,如图:
管理员身份启动iventoy,如图:
iVentoy 界面是基于 WEB 的,因此软件运行起来以后,需要打开浏览器访问 http://127.0.0.1:26000来打开 iVentoy 的软件界面。
Windows 系统中打开软件之后,会自动打开浏览器,如果没有自动打开,则需要手动点击 `打开链接` 按钮,如图:
注意:请使用新版本的 Google Chrome 或 FireFox 浏览器访问 iVentoy 界面,其他浏览器未做测试,不保证没有问题。
分析客户端IP地址设置:打开vmware17->编辑菜单->虚拟网络编辑器->VMnet8 NAT 网卡查看网段,点击NAT设置查看网关地址,注意:需要关闭VMware nat模式的dhcp服务,如图:
5.2.3.启动PXE服务
在 iVentoy 主界面上选择本机 IP 地址,根据之前的分析设置好 IP 地址池,然后点击绿色的开始按钮即可,如图:
启动成功后:
5.2.4自动启动PXE服务
Windows 版本可以执行 iVentoy_64.exe -R
Linux 版本中可以执行 sudo bash iventoy.sh -R start
其中 -R
选项的意思是按照上一次运行时的参数自动启动 PXE 服务。 这样就不需要再手动点击绿色的开始按钮了,当然前提是之前必须手动设置完参数,启动过一次。在此之后运行时设置的参数会被保存下来,才可以使用 -R
选项。
5.3.系统安装











PEX自动识别:
后续就和正常装机一样,过程省略。
注意:
安装RHEL9/OpenEuler系统时需要上4G内存,否则无法加载设备,某些系统自定义分区时需要增加biosboot分区或/boot/efi分区,大小100m即可
5.4.定制安装
5.4.1.作用:
通过 iVentoy 你无需重新制作ISO文件,只需要简单地为一个ISO文件指定一个或者多个自动安装脚本来实现无人值守、自动安装部署系统的方案。
可以使用 Windows 中的 unattend XML、Redhat/CentOS系列中的 Kickstart 脚本、SUSE系列中的 autoYast XML、Debian系列中的preseed脚本等等。
下面的示例模版脚本位于安装包内的 user/scripts/example
目录下,如图:
注意:这里的示例脚本仅供参考,需要根据实际需要修改,尤其是里面磁盘分区设置的部分。否则会造成磁盘被误格式化、数据丢失等问题。
5.4.2.脚本变量扩展
在进行自动安装时,在安装脚本中有一些配置是无法固定写死的,必须根据实际环境进行调整。
最常见的就是对于安装盘的指定,比如我们在安装脚本中指定系统安装到 `DISK0` 或者 `/dev/sda`
但在有些机器上它对应的那个盘并不是我们想要的那个。 这样可能就把系统安装到错误的盘上了。
针对上述需求,iVentoy 在自动安装脚本中支持 `变量扩展`,变量使用 `$$VT_XXX$$` 的形式,其中 VT_XXX 对应变量名。
注意:
包含变量的自动安装脚本文件必须是 UTF-8 编码格式。
只支持下面表格中列出的变量,不支持自定义变量。
变量名两边必须各用2个$$ 符号包起来
ventoy 会自动检测自动安装脚本内是否包含变量,对于不包含变量的脚本不会做扩展处理。
变量扩展是在副本中进行的,不会修改脚本源文件。
5.4.3.定制CentOS7

脚本:
install
lang en_US.UTF-8
keyboard us
rootpw 123456
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disable
timezone --utc Asia/Shanghai
#network --onboot=yes --device=$$VT_MAC_COLON_LOWER$$ --bootproto=static --ip=$$VT_LOCAL_IP$$ --netmask=$$VT_NET_MASK$$ --gateway=$$VT_GATEWAY$$ --noipv6
eula --agreed
firstboot --disable
%include /tmp/partation.ks
zerombr
autopart --type=plain
#packages configuration
%packages
@core
%end
reboot
%pre
#Select install disk
disk_short_name=$$VT_LINUX_DISK_MAX_SIZE$$
echo bootloader --location=mbr --driveorder=$disk_short_name >> /tmp/partation.ks
echo ignoredisk --only-use=$disk_short_name >> /tmp/partation.ks
echo clearpart --all --initlabel --drives=$disk_short_name >> /tmp/partation.ks
%end
#Download third part software
%post
# wget $$VT_IMG_ID_HTTP_URL$$/Packages/kernel-tools-3.10.0-957.el7.x86_64.rpm -O /root/kernel-tools.rpm
# wget http://$$VT_SERVER_IP$$:$$VT_HTTP_PORT$$/user/xxx.zip -O /root/xxx.zip
%end
关闭PEX服务:
将设置好的自动部署脚本和镜像关联
5.4.4测试效果


由于网络安装加载较慢,需要等待一段时间,安装按预先设定脚本执行
安装完毕后,登录系统检查
1.分区检查
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 1G 0 part [SWAP]
└─sda3 8:3 0 18G 0 part /
sr0 11:0 1 1024M 0 rom
2.软件包检查
[root@localhost ~]# rpm -aq | egrep "vim|wget|tree|bash-completion|lrzsz"
vim-filesystem-7.4.629-7.el7.x86_64
3.检查防火墙和SELinux。
[root@localhost ~]# firewall-cmd --state
running
[root@localhost ~]# getenforce
Disabled
6.问题总结
需要关闭Windows的所有防火墙及杀毒等安全软件
iVentoy_64.exe执行文件需要以管理员身份打开
iVentoy exe文件双击运行若无反应,需要下载所有运行库: VS2019,下载链接:最新受支持的 Visual C++ 可再发行程序包下载 | Microsoft Learn
本项目是在虚拟机中模拟的,若安装某些系统时卡死,一般都是虚拟机分配的内存不足造成的,建议分配4096m内存,要不然可能会造成死机。
本项目实验需要使用vmnet8网卡,若无法使用则无法完成,需要在设备管理器中检查vmnet8网卡驱动是否安装,若有问题则在虚拟网络编辑器中进行还原默认值设置,如图:
若网络引导到系统安装界面花屏(一般为Windows系列),需要更改iventoy的分辨率,由默认的1024*768修改为较高分辨率
以上就是我对这个项目的过程以及总结!