5分钟实现 iVentoy 全自动批量安装Linux Ubuntu 系统详细教程

5分钟实现 iVentoy 全自动批量安装Linux Ubuntu 系统详细教程

简单来说,iVentoy 可以看成是一个增强版的 PXE 服务器。 使用iVentoy 你可以通过网络同时给多台机器启动、安装操作系统。iVentoy 用极其简单,无需复杂的配置,直接把 ISO 文件放到指定位置,客户机在启动时根据菜单选择要启动的ISO文件即可。iVentoy 同时支持 x86 Legacy BIOS、IA32 UEFI、x86_64 UEFI 和 ARM64 UEFI 模式。iVentoy 支持 110 多种常见类型的操作系统 (Windows/WinPE/Linux/VMware)的无人值守安装。

1️⃣ 简介

在传统方式下,Ubuntu Server 无人值守安装需要修改 ISO 并嵌入 cloud-init 或 preseed 脚本,操作繁琐。

iVentoy 支持 直接为 ISO 文件指定自动安装脚本,无需修改 ISO 文件,通过变量扩展可以在不同机器上灵活安装。

本教程使用 iVentoy 自动安装 Ubuntu Server 22.04 LTS,实现:

  • 用户 admin 安装完成即可登录
  • 支持本地控制台和 SSH
  • 无人值守,批量部署可用(免费版一次只能安装20台机器,专业版可以多台同时安装)

2️⃣ 准备工作

  1. 下载 Ubuntu Server 22.04 LTS ISO 下载链接:https://cn.ubuntu.com/download/server/step1
  2. 下载并配置 iVentoy 下载链接:https://www.iventoy.com/cn/download.html
  3. 在 iVentoy 中指定 ISO 文件
  4. 修改 cloud-init-user-data 脚本(本教程提供完整示例)


3️⃣ 用户和密码设置

Ubuntu 22.04 使用 Subiquity 安装器:

  • 支持 SHA-512 加密的密码 hash
  • 明文密码需要 iVentoy 新版本才能自动转换

生成 SHA-512 hash(Linux / WSL / macOS):

1
openssl passwd -6 "admin123456"

输出示例:

1
$6$jLq1Oi1qxfDgAb72$FFC.EEpBHavt5n7Wc8ofsi73VS4G63P6R9urX1b1wf0pVY5t97fDsdFEx2BwSaX8VN/UcYP2Gy63LDKgndsy11

将这个值填入脚本的 identity.password


4️⃣ 完整 cloud-init-user-data 脚本示例(\iventoy-1.0.21\user\scripts\example\cloud-init-user-data)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#cloud-config
autoinstall:
version: 1

identity:
hostname: ubuntu
username: admin
password: "$6$jLq1Oi1qxfDgAb72$FFC.EEpBHavt5n7Wc8ofsi73VS4G63P6R9urX1b1wf0pVY5t97fDsdFEx2BwSaX8VN/UcYP2Gy63LDKgndsy11"

locale: en_US.UTF-8
keyboard:
layout: us
timezone: Asia/Shanghai

ssh:
install-server: true
allow-pw: true
authorized-keys: []

network:
version: 2
ethernets:
eth0: # 顶层 key 可以随便写,只要 match 正确即可
match:
macaddress: $$VT_MAC_COLON_LOWER$$
dhcp4: false
addresses:
- 192.168.0.100/24 # 修改成你想分配的具体IP和子网掩码
gateway4: 192.168.0.1
nameservers:
addresses:
- 223.5.5.5
- 8.8.8.8
optional: true

storage:
layout:
name: direct
overwrite: true
config:
- type: disk
id: disk0
ptable: gpt
path: /dev/$$VT_LINUX_DISK_MAX_SIZE$$
wipe: superblock-recursive

- type: partition
id: boot-partition
device: disk0
size: 512M

- type: partition
id: root-partition
device: disk0
size: -1

- type: format
id: boot-fs
fstype: fat32
volume: boot-partition

- type: mount
id: boot-mount
device: boot-fs
path: /boot/efi

- type: format
id: root-fs
fstype: ext4
volume: root-partition

- type: mount
id: root-mount
device: root-fs
path: /

packages:
- openssh-server
- curl
- vim

安装完成后,如需手动配置静态IP地址,需编辑 netplan 配置文件

Ubuntu 22.04 使用 Netplan 管理网络,配置文件通常是:

1
/etc/netplan/50-cloud-init.yaml

用 Vim 打开:

1
sudo vim /etc/netplan/50-cloud-init.yaml

例如,你的静态 IP 配置可能像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
network:
version: 2
ethernets:
eth0: # 网卡名称,根据你的实际网卡名修改
dhcp4: false
addresses:
- 192.168.0.100/24 # 静态 IP 和子网掩码
gateway4: 192.168.0.1
nameservers:
addresses:
- 223.5.5.5
- 8.8.8.8
optional: true

注意:YAML 对缩进非常敏感,使用空格而不是 Tab,每一层缩进 2 个空格。


修改后应用新的网络配置

编辑完成后,执行:

1
2
sudo netplan generate
sudo netplan apply

或者简化:

1
sudo netplan apply
  • generate 会根据 YAML 文件生成实际的网络配置
  • apply 会立即应用修改后的网络配置

最后检查 IP 是否生效

1
2
ip a
ping www.baidu.com
  • ip a:查看网卡是否已改为新 IP
  • ping:测试网络是否可用

额外小技巧

  • 如果网卡名字不是 eth0,先执行:
1
ip link

查看实际网卡名字,并在 YAML 中替换 eth0 为实际名字。

  • 修改 netplan 时,如果想临时测试:
1
sudo netplan try
  • 该命令会在 120 秒内应用配置,如果失败会自动回滚,防止断网。

5️⃣ 脚本解析

部分 说明
identity 用户名 admin,密码用 SHA-512 hash,安装完成即可登录
locale / keyboard / timezone 设置系统语言、键盘布局和时区
ssh 安装 OpenSSH Server 并允许密码登录
network DHCP 自动获取 IP
storage 使用最大磁盘 $$VT_LINUX_DISK_MAX_SIZE$$,自动分区为 EFI + root
packages 自动安装常用工具,可根据需求修改

6️⃣ iVentoy 使用方法

  1. 将 ISO 文件放入 \iventoy-1.0.21\iso 文件夹下
  2. 将 \iventoy-1.0.21\user\scripts\example\cloud-init-user-data 修改如上示例
  3. 在 iVentoy 界面选择 ISO 文件,设置自动安装脚本路径(D:\iventoy-1.0.21\user\scripts\example\cloud-init-user-data)
  4. 启动iVentoy服务,系统将全自动部署


7️⃣ 注意事项

  1. 必须 UTF-8 编码
  2. 用户密码一定要 SHA-512 hash 或确保 iVentoy 不支持明文转换
  3. 不要写重复的 user-data:identity,否则可能覆盖用户
  4. $$VT_LINUX_DISK_MAX_SIZE$$ 变量可自动选择目标磁盘,保证机房部署时无需手动修改
  5. 安装完成后,可直接使用:
1
2
用户名: admin
密码: admin123456

进行本地或 SSH 登录


✅ 这样,你就可以实现 无人值守、批量部署 Ubuntu Server 22.04 LTS,非常适合机房环境。