可以使用預設指令碼對第一個偵測到的磁碟執行標準 ESXi 安裝。

在 ESXi 安裝期間,可以使用預設指令碼對第一個偵測到的磁碟執行標準安裝,並使用開機載入器組態檔指定核心、核心選項以及 mboot.c32 或 mboot.efi 開機載入器用於安裝的開機模組。

關於預設 ks.cfg 安裝指令碼

ESXi 安裝程式包含一個預設安裝指令碼,該指令碼可對第一個偵測到的磁碟執行標準安裝。

預設 ks.cfg 安裝指令碼位於初始 RAM 磁碟中的 /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.c32 mboot.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 (選用) 在 kernel=modules= 命令 (尚未起始於或包含 http://) 的每個 FILEPATH 前面新增 DIRPATH/
kernel=FILEPATH 將核心路徑設定為 FILEPATH
kernelopt=STRING STRING 附加到核心開機選項。
modules=FILEPATH1 --- FILEPATH2... --- FILEPATHn 列出要載入的模組,以三個連字號 (---) 分隔。

請參閱使用自訂安裝或升級指令碼建立安裝程式 ISO 映像對 ESXi 安裝程式進行網路開機

支援安裝或升級指令碼的位置

在指令碼式安裝和升級中,ESXi 安裝程式可以從數個位置存取安裝或升級指令碼 (也稱為 kickstart 檔案)。

下列是可存取安裝或升級指令碼的受支援位置:

安裝或升級指令碼的路徑

您可以指定安裝或升級指令碼的路徑。

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 磁碟分割。可以在 install 命令中使用參數 systemDisk 來定義此類磁碟。

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 組字元,每組 5 個字元 (XXXXX-XXXXX-XXXXX-XXXXX-XXXXX)。

network (選用)

指定系統的網路位址。

--bootproto=[dhcp|static]

指定是從 DHCP 取得網路設定還是手動進行設定。

--device=
指定網路卡的 MAC 位址或指定裝置名稱 (採用 vmnicNN 格式,如 vmnic0)。此選項是指虛擬交換器的上行裝置。
--ip=
設定要安裝之機器的 IP 位址,採用 xxx.xxx.xxx.xxx 格式。需要與 --bootproto=static選項搭配使用,否則將被忽略。
--gateway=
將預設閘道指定為 IP 位址,採用 xxx.xxx.xxx.xxx 格式。與 --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 (必要)

設定系統的根密碼。

--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 儲存區》說明文件中的〈儲存裝置名稱和識別碼〉