Windows執行個體是通過Vminit組件來控制執行個體的啟動行為。在執行個體初次開機或者每次啟動時自動執行一系列配置任務,用來完成執行個體初始化或其他配置。2023年09月份及之後的Windows公用鏡像以及基於公用鏡像建立的自訂鏡像,預設預置Vminit且支援禁用單個外掛程式以滿足您的個人化配置訴求。本文介紹Vminit組件包含的外掛程式以及如何禁用外掛程式。
Vminit的外掛程式說明
Vminit本質上是順序執行了一系列外掛程式來完成系統初始化配置,有些外掛程式僅在建立執行個體後初次開機時執行一次,有些外掛程式會在每次執行個體啟動時都會執行。Vminit當前包含了10個外掛程式,具體說明如下表所示。
外掛程式名稱 | 執行頻率 | 外掛程式功能 | 說明 |
Plugin_Main_StartDepend | 僅在執行個體初次開機時執行。 | 啟動Windows作業系統的IP Helper服務、DHCP用戶端和Windows時間服務(W32Time) 。 | Windows鏡像預設開啟這些系統服務,但是您可能在自訂鏡像中禁用了這些服務,該外掛程式會開啟這些服務,避免因禁用系統服務導致網路和NTP設定異常。 |
Plugin_Main_OpenRDP | 允許通過遠端桌面連線服務RDP串連執行個體。 | Windows系統預設開啟RDP服務,對于禁用RDP服務的鏡像,該外掛程式會開啟RDP。 | |
Plugin_Main_NetworkClean | 初始化網路設定,系統會使用DHCP方式自動擷取執行個體中所有網卡的IP地址和DNS伺服器設定。 | 如果執行個體中的IP Helper和DHCP服務未正確開啟,可能導致該外掛程式執行失敗,從而無法通過內網訪問執行個體中繼資料。 | |
Plugin_Main_ConfigDisk | 將隨執行個體建立的資料盤進行初始化,包括建立分區、分配盤符等,且分區格式預設為GPT。 |
| |
Plugin_Main_ExtendVolume | 自動檢測Windows系統硬碟的空閑空間,並在空間不足的情況下(<5 GB),利用 | 無。 | |
Plugin_Main_CloudinitUserData | 該外掛程式會從阿里雲的中繼資料中擷取您配置的自訂資料,並使用系統的system賬戶執行自訂資料指令碼。 |
| |
Plugin_Main_ConfigHostname | 執行個體每次啟動時都會執行。 | 設定執行個體的主機名稱。在執行個體建立階段,阿里雲會為每個執行個體分配一個主機名稱。如果您在建立執行個體時指定了主機名稱,系統將根據您設定的主機名稱進行配置。否則,阿里雲將自動分配一個隨機的主機名稱。 |
|
Plugin_Main_ConfigWsus | 該外掛程式會從阿里雲的中繼資料中擷取WSUS地址,並配置到執行個體中。如果執行個體的WSUS地址已經配置成阿里雲的WSUS地址,則不會重複配置。 | 該外掛程式依賴內網訪問能力。 | |
Plugin_Main_ConfigKms | 該外掛程式會從阿里雲的中繼資料中擷取KMS地址,配置到執行個體後會進行KMS啟用。如果執行個體KMS已經啟用且KMS相同,則不會重複配置。 | 該外掛程式依賴內網訪問能力。 | |
Plugin_Main_ConfigNtp | 配置NTP時鐘源,用於時間同步。該外掛程式會從阿里雲的中繼資料中擷取NTP伺服器位址,並配置到執行個體中。如果執行個體已經配置了相同的NTP地址,則不會重複配置。 |
|
禁用Vminit的外掛程式
Vminit的所有外掛程式預設開啟,如果您是通過自訂鏡像去建立執行個體,且希望在執行個體啟動過程中不自動執行某些操作,可以在製作鏡像過程中禁用對應的外掛程式。
在
C:\ProgramData\aliyun\vminit
目錄下建立一個檔案。該檔案有如下要求:檔案名稱必須為
customized_config
。檔案不能添加任何尾碼。
給檔案新增內容時,必須是JSON格式。
說明ProgramData
通常是隱藏目錄,請確保啟用了顯示隱藏的檔案、檔案夾和磁碟機選項,以便您能看到並正確操作隱藏專案。在該檔案中進行配置,禁用外掛程式。例如:
如果您不需要阿里雲自動設定執行個體主機名稱,希望自訂主機名稱,您可以禁用Plugin_Main_ConfigHostname外掛程式。在
customized_config
檔案中複製如下資訊(JSON格式)並儲存檔案。{ "disabledPlugins": ["Plugin_Main_ConfigHostname"] }
如果您不需要阿里雲自動設定執行個體主機名稱以及初始化資料盤,您可以同時禁用Plugin_Main_ConfigHostname和Plugin_Main_ConfigDisk外掛程式。在
customized_config
檔案中複製如下資訊(JSON格式)並儲存檔案。{ "disabledPlugins": ["Plugin_Main_ConfigHostname", "Plugin_Main_ConfigDisk"] }
說明如果您後續需要重新啟用某個外掛程式,可以在
customized_config
檔案中刪除對應外掛程式的配置內容。
Vminit版本資訊
Vminit版本 | 發布內容 | 發布日期 |
2.0.1.0 | 首次發布,支援外掛程式化可配置。 | 2023年09月 |
2.0.1.2 |
| 2024年01月 |
您可以通過C:\ProgramData\aliyun\vminit\vminit.exe
檔案查看Vminit版本資訊。
常見問題
建立ECS執行個體時為什麼會有一次重啟動作?
原因:在建立ECS執行個體過程中,即使您沒有指定主機名稱,系統也會預設分配一個主機名稱,而主機名稱需要系統重啟生效,因此在建立階段,會有一個重啟過程。
解決方案:如果您不希望在建立階段有這個重啟動作,可以通過禁用Plugin_Main_ConfigHostname外掛程式來解決。
自訂鏡像中包含了開機執行修改主機名稱指令碼的內容,建立執行個體時為什麼會無限重啟?
原因:阿里雲建立執行個體時會預設為執行個體分配一個主機名稱,與外掛程式自動修改主機名稱邏輯衝突。
解決方案:可以通過禁用Plugin_Main_ConfigHostname外掛程式來解決。
為什麼通過公用鏡像建立ECS執行個體時會重啟兩次?
公用鏡像相比自訂鏡像,會多一個系統準備(Sysprep)階段,這個階段會使系統重啟。