可以使用默认脚本对第一个检测到的磁盘执行标准ESXi安装。

在 ESXi 安装过程中,可以使用默认脚本对第一个检测到的磁盘执行标准安装,并使用引导加载程序配置文件指定内核、内核选项以及 mboot.c32 或 mboot.efi 引导加载程序用于安装的引导模块。

关于默认 ks.cfg 安装脚本

ESXi 安装程序包含一个默认安装脚本,该脚本可对第一个检测到的磁盘执行标准安装。

默认 ks.cfg 安装脚本位于 /etc/vmware/weasel/ks.cfg 的初始内存磁盘中。您可以使用 ks=file://etc/vmware/weasel/ks.cfg引导选项指定默认 ks.cfg 文件的位置。请参见输入引导选项以运行安装或升级脚本

使用 ks.cfg 脚本安装 ESXi 时,默认根密码为 myp@ssw0rd

不能在安装介质上修改默认脚本。安装后,可使用 vSphere Client登录到用于管理 ESXi 主机的 vCenter Server 并修改默认设置。

在 vSphere 8.0 中,如果系统具有数据处理单元 (DPU),则还可以使用 ks.cfg 脚本在 DPU 上安装 ESXi。

默认脚本包含以下命令:

#
# Sample scripted installation file
#

# Accept the VMware End User License Agreement
vmaccepteula

# Set the root password for the DCUI and Tech Support Mode
rootpw myp@ssw0rd

# Install on the first local disk available on machine
install --firstdisk --overwritevmfs
 In case you system has DPUs, you also specify a PCI slot:
install --firstdisk --overwritevmfs --dpupcislots=<PCIeSlotID>

# Set the network to DHCP on the first network adapter
network --bootproto=dhcp --device=vmnic0

# A sample post-install script
%post --interpreter=python --ignorefailure=true
import time
stampFile = open('/finished.stamp', mode='w')
stampFile.write( time.asctime() )

关于 boot.cfg 文件

引导加载程序配置文件 boot.cfg 指定 mboot.c32mboot.efi 引导加载程序在 ESXi 安装中使用的内核、内核选项以及引导模块。

ESXi 安装程序中提供了 boot.cfg 文件。您可以修改 boot.cfg 文件的 kernelopt 行,以便指定安装脚本的位置或传递其他引导选项。

boot.cfg 文件的语法如下:
# boot.cfg -- mboot configuration file
#
# Any line preceded with '#' is a comment.

title=STRING
prefix=DIRPATH
kernel=FILEPATH
kernelopt=STRING
modules=FILEPATH1 --- FILEPATH2... --- FILEPATHn

# Any other line must remain unchanged.

boot.cfg 中的命令配置引导加载程序。

表 1. boot.cfg 中的命令。
命令 描述
title=STRING 将引导加载程序标题设置为 STRING
prefix=STRING (可选)在尚未以 / 或 http:// 开头的 kernel=modules= 命令中,在每个 FILEPATH 前面添加 DIRPATH/
kernel=FILEPATH 将内核路径设置为 FILEPATH
kernelopt=STRING STRING 附加到内核引导选项。
modules=FILEPATH1 --- FILEPATH2... --- FILEPATHn 列出要加载的模块,用三个连字符 (---) 分隔。

请参见使用自定义安装或升级脚本创建安装程序 ISO 映像通过网络引导 ESXi 安装程序

安装或升级脚本的路径

可以指定安装或升级脚本的路径。

ks=http://XXX.XXX.XXX.XXX/kickstart/KS.CFGESXi 安装脚本的路径,其中 XXX.XXX.XXX.XXX 是脚本所驻留的计算机的 IP 地址。请参见使用脚本安装 ESXi

要在交互式安装中启动安装脚本,需要手动输入 ks= 选项。请参见输入引导选项以运行安装或升级脚本

安装和升级脚本命令

要修改默认安装或升级脚本或者创建自己的脚本,请使用支持的命令。使用安装脚本中支持的命令,这些命令是在引导安装程序时使用引导命令指定的。

要确定要安装或升级 ESXi 的磁盘,安装脚本需要以下命令之一:installupgradeinstallorupgradeinstall 命令创建默认分区,包括在创建其他分区后占据所有可用空间的 VMFS 数据存储。

在 vSphere 8.0 中,如果系统具有受支持的数据处理单元 (DPU),请始终考虑 DPU 上的 ESXi 的安装、重新安装或升级与主机上的 ESXi 一起。交互式或脚本式方法不支持在 DPU 上更新和升级 ESXi,只能使用 vSphere Lifecycle Manager

注: 使用 SD 和 USB 设备存储 ESX-OSData 分区的做法即将弃用。只能使用 SD 和 USB 设备创建引导槽分区、 boot-bank 0boot-bank 1。此外,还可以提供最小 32 GB 的永久磁盘,用于安装 ESX-OSData 分区。可以在 systemDisk 命令中使用参数 install 来定义此类磁盘。

accepteula 或 vmaccepteula(必需)

接受 ESXi 许可协议。

clearpart(可选)

清除磁盘上现有的任何分区。需要指定 install 命令。请小心编辑现有脚本中的 clearpart 命令。

--drives=
移除指定驱动器上的分区。
--alldrives
忽略 --drives= 要求,并允许在每个驱动器上清除分区。
--ignoredrives=
在除指定驱动器以外的所有驱动器上移除分区。除非指定了 --drives=--alldrives 标记,否则需要使用此命令。
--overwritevmfs
允许覆盖指定驱动器上的 VMFS 分区。默认情况下,不允许覆盖 VMFS 分区。
--firstdisk=
disk-type1
[disk-type2,...]
注: 如果 vSphere 系统的版本低于 8.0 Update 3 且具有 DPU,则还需要指定 PCI 插槽: install --firstdisk --overwritevmfs --dpupcislots=<PCIeSlotID>。对于版本 8.0 Update 3 及更高版本的系统,已弃用 dpupcislots 参数。
对最先找到的合格磁盘进行分区。默认情况下,合格磁盘按以下顺序排列:
  1. 本地连接的存储 (local)
  2. 网络存储 (remote)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序。如果提供筛选列表,则会覆盖默认设置。可组合筛选器以指定特定磁盘,包括安装有 ESXi 的第一个磁盘的 esx、型号和供应商信息,或 VMkernel 设备驱动程序的名称。例如,要首选使用型号名称为 ST3120814A 的磁盘,及使用 mptsas 驱动程序的任何磁盘,而非普通本地磁盘,参数为 --firstdisk=ST3120814A,mptsas,local。可以对包含 ESXi 映像的本地存储使用 localesx,或对包含 ESXi 映像的远程存储使用 remoteesx

dryrun(可选)

解析并检查安装脚本。不执行安装。

安装

指定这是全新安装。需要 installupgradeinstallorupgrade 命令来确定要在其上安装或升级 ESXi 的磁盘。

--disk= or --drive=
指定要分区的磁盘。在命令 --disk=diskname 中, diskname 可以是磁盘名称,也可以是 ESXi 中的完整磁盘文件系统路径,例如:
  • 磁盘名称:--disk=naa.6d09466044143600247aee55ca2a6405
  • 设备路径:--disk=/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0

有关可接受的磁盘名称格式,请参见磁盘设备名称

--firstdisk=
disk-type1,
[ disk-type2,...]
注: 如果 vSphere 系统的版本低于 8.0 Update 3 且具有 DPU,则还需要指定 PCI 插槽: install --firstdisk --overwritevmfs --dpupcislots=<PCIeSlotID>。对于版本 8.0 Update 3 及更高版本的系统,已弃用 dpupcislots 参数。
对最先找到的合格磁盘进行分区。默认情况下,合格磁盘按以下顺序排列:
  1. 本地连接的存储 (local)
  2. 网络存储 (remote)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序。如果提供筛选列表,则会覆盖默认设置。可组合使用筛选器以指定特定磁盘,包括安装有 ESX 的第一个磁盘的 esx、型号和供应商信息,或 VMkernel 设备驱动程序的名称。例如,要首选使用型号名称为 ST3120814A 的磁盘,及使用 mptsas 驱动程序的任何磁盘,而非普通本地磁盘,参数为 --firstdisk=ST3120814A,mptsas,local。可以对包含 ESXi 映像的本地存储使用 localesx,或对包含 ESXi 映像的远程存储使用 remoteesx

--ignoressd
从有资格进行分区的磁盘中排除固态磁盘。此选项可与 install 命令和 --firstdisk 选项配合使用。此选项优先于 --firstdisk 选项。此选项与 --drive--disk 选项以及 upgradeinstallorupgrade 命令一起使用时无效。有关防止在自动分区期间进行 SSD 格式化的详细信息,请参见 《vSphere 存储》文档。
--overwritevsan
vSAN 磁盘组中的 SSD 或 HDD(磁性)磁盘上安装 ESXi 时,必须使用 --overwritevsan 选项。如果使用此选项,但选定磁盘上不存在 vSAN 分区,安装将失败。在 vSAN 磁盘组中的磁盘上安装 ESXi 时,结果取决于选择的磁盘:
  • 如果选择 SSD,则同一磁盘组中的 SSD 和所有底层 HDD 会被擦除。
  • 如果选择的是 HDD,并且磁盘组有两个以上磁盘,则只有选定的 HDD 才会被清除。
  • 如果选择的是 HDD 磁盘,并且磁盘组的磁盘不超过两个,则 SSD 和选定的 HDD 会被清除。

有关管理 vSAN 磁盘组的详细信息,请参见《《vSphere 存储》》文档。

--overwritevmfs
安装前要覆盖磁盘上的现有 VMFS 数据存储时需要。
--preservevmfs
安装期间保留磁盘上的现有 VMFS 数据存储。
--novmfsondisk
防止在该磁盘上创建 VMFS 分区。如果磁盘上存在 VMFS 分区,则必须与 --overwritevmfs 一起使用。
--systemdisk
如果使用 USB 或 SD 设备, systemDisk 会指定要安装 ESX-OSData 分区的本地永久磁盘。例如, install --firstdisk = usb --systemDisk=<diskID>。因此,引导槽分区放置在 USB 设备上,而 OSData 分区位于 systemDisk 参数中指定的磁盘上。
--repartitionsystemdisk
如果使用 USB 或 SD 设备,并且使用 systemDisk 参数指定的本地磁盘不为空或包含数据存储,则可以使用 repartitionSystemDisk 确保在使用之前对永久磁盘进行重新分区。
注: 如果本地永久磁盘不可用或磁盘大小小于 32 Gb,您会看到警告消息,但将继续安装。
--forceunsupportedinstall

阻止安装已弃用的 CPU。

installorupgrade

需要 installupgradeinstallorupgrade 命令来确定要在其上安装或升级 ESXi 的磁盘。

--disk= or --drive=
指定要分区的磁盘。在命令 --disk=diskname 中, diskname 可以是磁盘名称,也可以是 ESXi 中的完整磁盘文件系统路径,例如:
  • 磁盘名称:--disk=naa.6d09466044143600247aee55ca2a6405
  • 设备路径:--disk=/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0

有关可接受的磁盘名称格式,请参见磁盘设备名称

--firstdisk=
disk-type1,
[ disk-type2,...]
注: 如果 vSphere 系统的版本低于 8.0 Update 3 且具有 DPU,则还需要指定 PCI 插槽: install --firstdisk --overwritevmfs --dpupcislots=<PCIeSlotID>。对于版本 8.0 Update 3 及更高版本的系统,已弃用 dpupcislots 参数。
对最先找到的合格磁盘进行分区。默认情况下,合格磁盘按以下顺序排列:
  1. 本地连接的存储 (local)
  2. 网络存储 (remote)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序。如果提供筛选列表,则会覆盖默认设置。可组合使用筛选器以指定特定磁盘,包括安装有 ESX 的第一个磁盘的 esx、型号和供应商信息,或 VMkernel 设备驱动程序的名称。例如,要首选使用型号名称为 ST3120814A 的磁盘,及使用 mptsas 驱动程序的任何磁盘,而非普通本地磁盘,参数为 --firstdisk=ST3120814A,mptsas,local。可以对包含 ESXi 映像的本地存储使用 localesx,或对包含 ESXi 映像的远程存储使用 remoteesx

--overwritevsan
vSAN 磁盘组中的 SSD 或 HDD(磁性)磁盘上安装 ESXi 时,必须使用 --overwritevsan 选项。如果使用此选项,但选定磁盘上不存在 vSAN 分区,安装将失败。在 vSAN 磁盘组中的磁盘上安装 ESXi 时,结果取决于选择的磁盘:
  • 如果选择 SSD,则同一磁盘组中的 SSD 和所有底层 HDD 会被擦除。
  • 如果选择的是 HDD,并且磁盘组有两个以上磁盘,则只有选定的 HDD 才会被清除。
  • 如果选择的是 HDD 磁盘,并且磁盘组的磁盘不超过两个,则 SSD 和选定的 HDD 会被清除。

有关管理 vSAN 磁盘组的详细信息,请参见《《vSphere 存储》》文档。

--overwritevmfs

安装 ESXi(如果磁盘上存在 VMFS 分区,但不存在 ESX 或 ESXi 安装)。除非存在该选项,否则当磁盘上存在 VMFS 分区但 ESX 或 ESXi 安装缺失时,安装程序会失败。

keyboard(可选)

设置系统的键盘类型。

keyboardType
指定所选键盘类型的键盘映射。 keyboardType 必须为以下类型之一。
  • 比利时语
  • 葡萄牙语 (巴西)
  • 克罗地亚语
  • 捷克斯洛伐克语
  • 丹麦语
  • 爱沙尼亚语
  • 芬兰语
  • 法语
  • 德语
  • 希腊语
  • 冰岛语
  • 意大利语
  • 日语
  • 拉丁美洲语
  • 挪威语
  • 波兰语
  • 葡萄牙语
  • 俄语
  • 斯洛文尼亚语
  • 西班牙语
  • 瑞典语
  • 瑞士法语
  • 瑞士德语
  • 土耳其语
  • 乌克兰语
  • 英式英语
  • 美式英语 (默认)
  • 美式英语 Dvorak

serialnum 或 vmserialnum(可选)

ESXi 版本 5.1 及更高版本支持该命令。配置许可。如果不包括此命令,ESXi 将以评估模式安装。

--esx=<license-key>

指定要使用的 vSphere 许可证密钥。格式为 5 个组,每个组包含五个字符 (XXXXX-XXXXX-XXXXX-XXXXX-XXXXX)。

network(可选)

指定系统的网络地址。

--bootproto=[dhcp|static]

指定是从 DHCP 获得网络设置还是手动对其进行设置。

--device=
vmnicNN 形式(如 vmnic0)指定网卡的 MAC 地址或设备名称。该选项指的是虚拟交换机的上行链路设备。
--ip=
xxx.xxx.xxx.xxx 形式为要安装的计算机设置 IP 地址。需要与 --bootproto=static 选项配合使用,否则将被忽略。
--gateway=
xxx.xxx.xxx.xxx 形式将默认网关指定为 IP 地址。与 --bootproto=static 选项配合使用。
--nameserver=
将主名称服务器指定为 IP 地址。与 --bootproto=static 选项配合使用。如果不打算使用 DNS,请忽略此选项。

--nameserver 选项可以接受两个 IP 地址。例如:--nameserver="10.126.87.104[,10.126.87.120]"

--netmask=
255.xxx.xxx.xxx 形式指定所安装系统的子网掩码。与 --bootproto=static 选项配合使用。
--hostname=
指定所安装系统的主机名。
--vlanid= vlanid
指定系统所处的 VLAN。与 --bootproto=dhcp--bootproto=static 选项配合使用。设置为 1 到 4096 的一个整数。
--addvmportgroup=(0|1)
指定是否添加虚拟机使用的虚拟机网络端口组。默认值为 1。

paranoid(可选)

引发警告消息从而中断安装。如果省略此命令,则系统会记录警告消息。

part 或 partition(可选)

在系统上创建额外的 VMFS 数据存储。每个磁盘只能创建一个数据存储。不能与 install 命令在同一个磁盘上使用。一个磁盘只能指定一个分区,并且只能是 VMFS 分区。

datastore name
指定分区的挂载位置。
--ondisk= or --ondrive=
指定创建分区的磁盘或驱动器。
--onfirstdisk=
disk-type1,
[ disk-type2,...]
注: 如果 vSphere 系统的版本低于 8.0 Update 3 且具有 DPU,则还需要指定 PCI 插槽: install --firstdisk --overwritevmfs --dpupcislots=<PCIeSlotID>。对于版本 8.0 Update 3 及更高版本的系统,已弃用 dpupcislots 参数。
对最先找到的合格磁盘进行分区。默认情况下,合格磁盘按以下顺序排列:
  1. 本地连接的存储 (local)
  2. 网络存储 (remote)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序。如果提供筛选列表,则会覆盖默认设置。可组合使用筛选器以指定特定磁盘,包括安装有 ESX 的第一个磁盘的 esx、型号和供应商信息,或 VMkernel 设备驱动程序的名称。例如,要首选使用型号名称为 ST3120814A 的磁盘,及使用 mptsas 驱动程序的任何磁盘,而非普通本地磁盘,参数为 --onfirstdisk=ST3120814A,mptsas,local。可以对包含 ESXi 映像的本地存储使用 localesx,或对包含 ESXi 映像的远程存储使用 remoteesx

reboot(可选)

脚本式安装完成后重新引导计算机。

<--noeject>
安装完成后不弹出 CD。

rootpw(必需)

设置系统的 root 密码。

--iscrypted
指定加密该密码。
password
指定密码值。

升级

需要 installupgradeinstallorupgrade 命令来确定要在其上安装或升级 ESXi 的磁盘。

--disk= or --drive=
指定要分区的磁盘。在命令 --disk=diskname 中, diskname 可以是磁盘名称,也可以是 ESXi 中的完整磁盘文件系统路径,例如:
  • 磁盘名称:--disk=naa.6d09466044143600247aee55ca2a6405
  • 设备路径:--disk=/vmfs/devices/disks/mpx.vmhba1:C0:T0:L0

有关可接受的磁盘名称格式,请参见磁盘设备名称

--firstdisk=
disk-type1,
[ disk-type2,...]
对最先找到的合格磁盘进行分区。默认情况下,合格磁盘按以下顺序排列:
  1. 本地连接的存储 (local)
  2. 网络存储 (remote)

可以使用附加到参数的逗号分隔列表更改磁盘的顺序。如果提供筛选列表,则会覆盖默认设置。可组合使用筛选器以指定特定磁盘,包括安装有 ESX 的第一个磁盘的 esx、型号和供应商信息,或 VMkernel 设备驱动程序的名称。例如,要首选使用型号名称为 ST3120814A 的磁盘,及使用 mptsas 驱动程序的任何磁盘,而非普通本地磁盘,参数为 --firstdisk=ST3120814A,mptsas,local。可以对包含 ESXi 映像的本地存储使用 localesx,或对包含 ESXi 映像的远程存储使用 remoteesx

%include 或 include(可选)

指定要解析的另一个安装脚本。该命令的处理方式类似于多行命令,但仅使用一个参数。

filename
例如: %include part.cfg

%pre(可选)

指定在评估 kickstart 配置之前要运行的脚本。例如,可使用其生成 kickstart 文件要包含的文件。

--interpreter
=[python|busybox]
指定要使用的解释程序。默认为 busybox。

%post(可选)

软件包安装完成后,运行指定的脚本。如果指定多个 %post 部分,则它们将按照在安装脚本中显示的顺序依次运行。

--interpreter
=[python|busybox]
指定要使用的解释程序。默认为 busybox。
--timeout=secs
指定用于运行脚本的超时时间。如果超时时间到达后脚本仍未完成,则会强制停止脚本。
--ignorefailure
=[true|false]
如果值为 true,则即使 %post 脚本停止并显示错误,安装仍将视为成功。

%firstboot

创建仅在首次引导期间运行的 init 脚本。该脚本不会对后续引导造成影响。如果指定多个 %firstboot 部分,则它们将按照在 kickstart 文件中显示的顺序依次运行。

注: 在系统首次引导之前,无法检查 %firstboot 脚本的语义。安装完成之前, %firstboot 脚本可能包含未公开的潜在灾难性错误。
重要说明: 如果在 ESXi 主机上启用安全引导, %firstboot 脚本不会运行。
--interpreter
=[python|busybox]
指定要使用的解释程序。默认为 busybox。
注: 在系统首次引导之前,无法检查 %firstboot 脚本的语义。如果该脚本包含错误,则直到安装完成才会显示这些错误。

磁盘设备名称

installupgradeinstallorupgrade 安装脚本命令需要使用磁盘设备名称。

表 2. 磁盘设备名称
格式 示例 描述
NAA naa.6d09466044143600247aee55ca2a6405 SCSI INQUIRY 标识符
EUI eui.3966623838646463 SCSI INQUIRY 标识符
T10 t10.SanDisk00Cruzer_Blade000000004C530001171118101244 SCSI INQUIRY 标识符
VML vml.00025261 旧版 VMkernel 标识符
MPX mpx.vmhba0:C0:T0:L0 基于路径的标识符

有关存储设备名称的详细信息,请参见《vSphere 存储》文档中的存储设备名称和标识符