iVentoy 自动安装

很多操作系统都提供了无人值守、自动安装部署的方案。你只需要提供一个脚本或者模板即可。
比如 Windows 中的 unattend XML、Redhat/CentOS系列中的 Kickstart 脚本、SUSE系列中的 autoYast XML、Debian系列中的preseed脚本等等。
正常情况下,如果你想进行自动安装,你必须重新制作一个新的ISO文件,在里面放入一个自动安装的脚本才可以。

通过 iVentoy 你无需重新制作ISO文件,只需要简单地为一个ISO文件指定一个或者多个自动安装脚本即可。 当有多个自动安装脚本时,在启动时会弹出菜单来让你选择。 你还可以随时更新这些自动安装的脚本。

  • 支持的发行版 (更新中)

下面的示例脚本位于安装包内的 user/scripts/example 目录下。

发行版 脚本格式 示例脚本 说明
Windows Unattend XML unattended.xml Windows系列
Deepin/UOS INI deepin.ini Deepin/UOS 系统
RHEL8/CentOS8 Kickstart script kickstart8.cfg 同时也支持基于这几个派生出来的发行版。比如 OpenAnolis, RockyLinux 等。
RHEL7/CentOS7/Fedora Kickstart script kickstart7.cfg 同时也支持基于这几个派生出来的发行版。比如 Oracle Linux, EuroLinux 等。
RHEL6/CentOS6 Kickstart script kickstart6.cfg 同时也支持基于这几个派生出来的发行版。
openEuler Kickstart script openeuler.cfg openEuler 版本。
Debian Preseed script preseed.cfg Debian 系列的发行版。
Ubuntu Server (< 20.x) Preseed script preseed.cfg 早期 Ubuntu Server 版本
Ubuntu Server (20.x+) cloud-init cloud-init-user-data Ubuntu Server 20.x 以后的版本
SUSE autoYast XML autoYast.xml SLES 和 openSUSE

注意,这里的示例脚本仅供参考,需要根据实际需要修改,尤其是里面磁盘分区设置的部分。否则会造成磁盘被误格式化、数据丢失等问题。

  • 软件配置

直接在 iVentoy 界面上选择对应的ISO文件,设置自动安装脚本路径即可。

  • 脚本变量扩展

在进行自动安装时,在安装脚本中有一些配置是无法固定写死的,必须根据实际环境进行调整。

最常见的就是对于安装盘的指定,比如我们在安装脚本中指定系统安装到 DISK0 或者 /dev/sda
但在有些机器上它对应的那个盘并不是我们想要的那个。 这样可能就把系统安装到错误的盘上了。

针对上述需求,iVentoy 在自动安装脚本中支持 变量扩展,变量使用 $$VT_XXX$$ 的形式,其中 VT_XXX 对应变量名。

注意:
1. 包含变量的自动安装脚本文件必须是 UTF-8 编码格式。
2. 只支持下面表格中列出的变量,不支持自定义变量。
2. 变量名两边必须各用2个$符号包起来,即 $$VT_XXX$$ 的形式。
3. Ventoy 会自动检测自动安装脚本内是否包含变量,对于不包含变量的脚本不会做扩展处理。
4. 变量扩展是在副本中进行的,不会修改脚本源文件。

内置变量 扩展后示例 说明
VT_MAC_COLON_LOWER 11:22:33:aa:bb:cc 客户端PXE网卡的MAC地址。
VT_MAC_COLON_UPPER 11:22:33:AA:BB:CC 客户端PXE网卡的MAC地址。
VT_MAC_DASH_LOWER 11-22-33-aa-bb-cc 客户端PXE网卡的MAC地址。
VT_MAC_DASH_UPPER 11-22-33-AA-BB-CC 客户端PXE网卡的MAC地址。
VT_SERVER_IP 192.168.100.100 iVentoy Server端的IP地址。
VT_LOCAL_IP 192.168.100.200 本机分配的IP地址。
VT_NET_MASK 255.255.255.0 子网掩码。
VT_NET_MASK_LEN 24 子网掩码长度。
VT_GATEWAY 192.168.100.1 网关地址。
VT_HTTP_PORT 16000 iVentoy HTTP服务的端口号。
VT_NBD_PORT 10809 iVentoy NBD服务的端口号。
VT_IMG_ID 2 当前安装的系统镜像 ID。
VT_IMG_PMD5 68c033b63073f1c57ea95a80dacfb887 当前安装的系统镜像的路径MD5。
VT_IMG_ID_HTTP_URL http://192.168.100.100:16000/eiso/id/1 当前安装的ISO镜像的内部 HTTP 路径(镜像ID的形式)。参考 《iVentoy HTTP 路径说明》
VT_IMG_PMD5_HTTP_URL http://192.168.100.100:16000/eiso/
pmd5/68c033b63073f1c57ea95a80dacfb887
当前安装的ISO镜像的内部 HTTP 路径(路径MD5值的形式)。参考 《iVentoy HTTP 路径说明》
VT_WINDOWS_DISK_1ST_NONUSB 1 第一个非 USB 盘。按照 Windows 下的磁盘编号,只能在 Windows unattend.xml 中使用。
VT_WINDOWS_DISK_MAX_SIZE 1 容量最大的盘。按照 Windows 下的磁盘编号,只能在 Windows unattend.xml 中使用。
VT_WINDOWS_DISK_CLOSEST_XXX 2 容量最接近 XXX GB的磁盘。
注意这里使用时 XXX 要换成具体的数值,比如 VT_WINDOWS_DISK_CLOSEST_300 表示容量最接近 300GB 的那个盘。
只能在 Windows unattend.xml 中使用。
VT_LINUX_DISK_SDX_1ST_NONUSB sdb sda sdb sdc ... 中第一个非 USB 盘。只检测 sdX 形式的盘,不检测像 hda/vda/nvme0n1 等形式的盘。只能在 Linux 系统的安装脚本中使用。
VT_LINUX_DISK_MAX_SIZE sdc 容量最大的盘。不仅限于 sdX 形式的盘,包括 hda/vda/nvme0n1 等所有形式。只能在 Linux 系统的安装脚本中使用。
VT_LINUX_DISK_CLOSEST_XXX sda 容量最接近 XXX GB的磁盘。
注意这里使用时 XXX 要换成具体的数值,比如 VT_WINDOWS_DISK_CLOSEST_256 表示容量最接近 256GB 的那个盘。
不仅限于 sdX 形式的盘,包括 hda/vda/nvme0n1 等所有形式。只能在 Linux 系统的安装脚本中使用。


脚本示例:unattend.xml


脚本示例:kickstart.cfg