本文說明如何找出 Windows Server Compute Engine 執行個體無法開機的原因,並修正常見問題。
無法啟動的 Windows 運算執行個體通常會出現下列徵狀:
- 運算執行個體處於
RUNNING狀態,但您無法使用 RDP 連線至該執行個體。 - 序列埠 1 只會顯示韌體和訪客代理程式行,且訪客代理程式不會回報已準備就緒。
- 序列埠 2 顯示 Windows 開機管理工具錯誤畫面或 STOP 錯誤。
如果運算執行個體完成啟動,但您無法連線至該執行個體,請參閱「排解 RDP 問題」。
事前準備
- 確認運算執行個體會將輸出內容寫入序列埠 1 和 2。 運算執行個體運作時,您可以使用序列埠輸出功能。如要在運算執行個體停止後保留輸出內容,請啟用 Cloud Logging 的序列埠記錄功能。詳情請參閱「查看序列埠輸出內容」。
-
如果尚未設定驗證,請先完成設定。驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以選取下列其中一個選項,向 Compute Engine 進行驗證:
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- 設定預設區域和可用區。
-
自動偵測原因
執行啟動診斷指令。如果是 Windows Compute 執行個體,則會讀取序列埠 2,回報最可能的原因,並連結至本文件中的相符章節:
如要使用這個指令,請確認您已安裝 alpha 指令元件。
gcloud alpha compute diagnose boot INSTANCE_NAME --zone=ZONE
更改下列內容:
INSTANCE_NAME:運算執行個體的名稱。ZONE:包含運算執行個體的可用區。
讀取序列控制台輸出內容
如要自行讀取開機管理員畫面或 STOP 錯誤,請讀取序列埠 2:
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選取要查看序列埠輸出內容的運算執行個體。
在「記錄」下方,點選「序列埠 2 (控制台)」。
gcloud
gcloud compute instances get-serial-port-output INSTANCE_NAME --zone=ZONE --port=2
更改下列內容:
INSTANCE_NAME:運算執行個體的名稱。ZONE:包含運算執行個體的可用區。
「Boot Manager」畫面包含 Status: 行,其中有 0xc000000e 等程式碼,以及說明失敗原因的 Info: 行。STOP 錯誤包含 STOP 代碼和名稱,例如 INACCESSIBLE_BOOT_DEVICE。
如要在下次啟動時開啟 Windows 開機管理員選單或進階開機選項選單,請參閱「排解 Windows VM 問題」。
常見的啟動問題
以下各節列出 Windows Compute 執行個體常見的啟動失敗情形、序列埠 2 簽章,以及解決方法。大多數解決方案都需要您將開機磁碟連接至復原 VM,如「修正磁碟離線問題」一節所述。
Windows 開機管理程式無法啟動 Windows
症狀:序列埠 2 顯示 Windows Boot Manager 錯誤畫面:
Windows failed to start. A recent hardware or software change might be the cause.
Status: 0xc000000e
Info: A required device isn't connected or can't be accessed.
狀態碼會指出具體原因:
| 狀態 | 意義 |
|---|---|
0xc000000e、0xc0000001 |
開機設定資料 (BCD) 指向韌體無法連線的開機裝置。通常發生於磁碟還原、磁碟複製或磁碟設定變更後。 |
0xc0000225、0xc000000f |
開機載入程式或其 BCD 項目遺失或無效。 |
0xc000014c、0xc0000034、0xc0000098、0xc0000102 |
BCD 存放區缺漏、不完整或損毀。 |
原因:已載入開機管理員,但 BCD 未說明可開機的 Windows 安裝程序。
解決方法:將磁碟連結至復原 VM,然後使用 Windows 啟動修復工具修復啟動設定,並按照 Microsoft 的「Advanced troubleshooting for Windows startup issues」(Windows 啟動問題進階疑難排解) 說明文件,針對顯示的狀態碼進行操作。請參閱「離線修正磁碟問題」。如果無法重建開機設定,請改用快照還原磁碟。
BOOTMGR 遺失
症狀:序列埠 2 顯示 BOOTMGR is missing. Press Ctrl+Alt+Del to
restart。只有使用 BIOS 開機的 OS 映像檔才會顯示這則訊息。
原因:系統分區缺少開機管理員檔案。
解決方法:將磁碟附加至復原 VM,然後按照 Microsoft 的「Advanced troubleshooting for Windows startup issues」(Windows 啟動問題進階疑難排解) 說明文件,使用 Windows 啟動修復工具還原開機檔案。請參閱「修正磁碟離線問題」。
STOP 0x7B INACCESSIBLE_BOOT_DEVICE
症狀:序列埠 2 顯示 STOP 錯誤,並指出 INACCESSIBLE_BOOT_DEVICE。
原因:Windows 找到開機磁碟區,但由於磁碟控制器的儲存空間驅動程式遺失或已停用,因此無法存取該磁碟區。變更磁碟介面 (例如從 SCSI 改為 NVMe)、更新儲存空間驅動程式,或是從其他運算執行個體還原時,通常會發生這項錯誤。
解決方法:重設運算執行個體一次,暫時性故障通常會清除。如果錯誤再次發生,請將磁碟連接至復原 VM,並在離線安裝中,為運算執行個體的磁碟介面啟用或重新安裝儲存空間驅動程式。如需在離線安裝中尋找及移除或更新驅動程式的步驟,請參閱「停止碼或藍色畫面錯誤的進階疑難排解」。
STOP 0xED UNMOUNTABLE_BOOT_VOLUME
症狀:序列埠 2 顯示 STOP 錯誤,並指出 UNMOUNTABLE_BOOT_VOLUME。
原因:開機磁碟區上的 NTFS 中繼資料損毀,或無法讀取磁碟。
解決方法:將磁碟連接至復原 VM,然後按照「完成離線修復」一文的說明,檢查及修復磁碟區。如果無法修復磁碟區,請改以快照還原磁碟。
其他 STOP 錯誤
症狀:序列埠 2 顯示 STOP 錯誤,例如 CRITICAL_PROCESS_DIED、SYSTEM_THREAD_EXCEPTION_NOT_HANDLED 或 STOP 程式碼 (如 *** STOP: 0x0000007E)。
原因:必要的系統程序已終止、驅動程式引發核心無法處理的例外狀況,或是發生其他核心錯誤。STOP 行通常會指出負責的 .sys 驅動程式檔案。
解決方法:重設運算執行個體一次。如果錯誤再次發生,請按照「排解藍色畫面錯誤」一文所述,完整讀取堆疊追蹤記錄,然後按照「完成離線修復」一文所述,從復原 VM 修復系統檔案,或移除 STOP 行中提及的驅動程式或更新。
修正磁碟離線問題
大多數 Windows 啟動問題都能修復,只要將開機磁碟做為資料磁碟附加至復原 VM,並對其執行 Windows 修復工具即可。如需相關程序,請參閱「完成離線維修」。
本文中的解決方法假設原始開機磁碟已連結至復原 VM。變更磁碟前,請先建立快照,以便在修復失敗時還原。如需相關程序,請參閱「建立封存和標準磁碟快照」。
如果無法修復磁碟,請還原運算執行個體
如果上述解決方法都無效,請從快照還原開機磁碟,或是從快照或自訂 OS 映像檔建立新的運算執行個體,然後將資料移至該執行個體。