本文說明可用來解決下列 Compute Engine Windows 虛擬機器 (VM) 執行個體啟動問題的方法和工具:
如果連線至 Windows VM 時發生問題,請參閱「RDP 疑難排解」一文。
如有遷移至第三代 VM 的相關問題,請參閱 Windows 已知問題。
事前準備
- 請參閱 Microsoft 進階疑難排解 Windows 啟動問題,瞭解如何排解 Windows 啟動程序的問題。
-
如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
使用「進階啟動選項」選單
如果 Windows 無法正常啟動,請使用「進階啟動選項」選單存取安全模式,或透過線上方式修復作業系統。詳情請參閱「進階啟動選項」。
如要在 Windows VM 上進入「Advanced Boot Options」選單,請完成下列程序:
- 如果尚未為 VM 啟用顯示裝置,請先啟用。
請使用下列任一方法重新啟動 VM:
主控台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
按一下要重新啟動的 VM 名稱。系統會開啟 VM 執行個體詳細資料頁面。
按一下「Reset」按鈕,重新啟動 VM。
gcloud
使用
gcloud compute instances reset
指令重設 VM:gcloud compute instances reset VM_NAME --zone=ZONE --project=PROJECT_ID
更改下列內容:
PROJECT_ID
:含有 VM 的專案 IDZONE
:VM 所在的可用區名稱VM_NAME
:VM 名稱
命令提示字元
連線至互動式序列主控台時,請開啟指令提示字元工作階段並執行下列指令。如要進一步瞭解如何開啟命令提示字元工作階段,請參閱「在 Windows SAC 中開啟命令提示字元」。
shutdown /r /t 0
Windows 開機管理員選單會隨即開啟:
在倒數結束前,請完成下列步驟:
請確認互動式序列主控台是您目前的活動視窗。
按下鍵盤上的
Esc
鍵。按下鍵盤上的
8
鍵。
進階啟動選項選單會隨即開啟:
使用鍵盤上的方向鍵選取所需選項,然後按下 Enter 鍵開啟。
啟用 Windows 啟動管理工具選單
您可以設定 Windows 啟動管理員選單,在重新啟動 Windows VM 執行個體時顯示。如要啟用 Windows 開機管理工具選單,請按照下列步驟操作:
連線至 VM,然後開啟具有管理員存取權的命令提示字元。如果無法連線至 VM,請將後續步驟設為 windows-startup-script-cmd
或 windows-startup-script-ps1
啟動指令碼的值,而非直接執行
命令提示字元
如要在啟動時啟用 Windows 啟動管理工具選單,並新增 15 秒的逾時值,請執行下列指令:
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 15
如要重新啟動 VM,並使用下列指令在序列主控台中顯示 Windows 啟動管理員選單:
shutdown -r -t 0
PowerShell
如要在啟動時啟用 Windows 啟動管理工具選單,並新增 15 秒的逾時值,請執行下列指令:
bcdedit /set '{bootmgr}' displaybootmenu yes
bcdedit /set '{bootmgr}' timeout 15
如要重新啟動 VM,並使用下列指令在序列主控台中顯示 Windows 啟動管理員選單:
shutdown -r -t 0
完成離線修復
如果 VM 無法正確啟動,且使用進階啟動選單無法解決問題,請嘗試使用功能正常的 Windows VM 執行個體,透過有問題的 VM 開機磁碟快照進行離線修復,以便復原。使用快照可讓您取得備份副本,無須變更原始 VM 的狀態即可進行修改。
建立快照,用於有問題的 VM 開機磁碟。
使用該快照建立磁碟。
使用新建立的磁碟建立含有額外非開機磁碟的 VM。復原 VM 應符合下列條件:
- 復原 VM 必須與建立的磁碟位於相同的區域。
- 復原 VM 也應使用 Windows Server 映像檔。
- 復原 VM 開機磁碟的來源映像檔應與發生問題的 VM 開機磁碟的來源映像檔不同。
您現在可以使用 Windows 工具和公用程式,嘗試離線修復額外連接的磁碟。如要進一步瞭解如何完成 VM 的離線修復作業,請參閱下列說明文件:
如果離線修復作業已順利完成,請更新發生問題的 VM 開機磁碟,以便使用新修復的開機磁碟。
選用:不再需要額外資源時,請刪除這些資源:
- 刪除復原 VM
- 刪除原始的損毀開機磁碟
- 刪除原始損毀的開機磁碟快照
排解藍色畫面錯誤
Windows 作業系統可能會發生停止程式碼或藍色畫面錯誤,也稱為藍色當機畫面。如果 VM 發生藍色畫面錯誤,VM 就會停止執行,需要重新啟動才能恢復正常運作。
如果您認為可能發生藍色畫面錯誤,請使用下列一或多種方法確認是否有錯誤:
序列埠 1
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
按一下要查看記錄的 VM 名稱。VM 執行個體詳細資料頁面會隨即開啟。
在「Logs」(記錄) 下方,按一下「Serial port 1」(序列埠 1)。
類似下方的堆疊追蹤傾印可證實藍色畫面錯誤:
ntoskrnl.exe [0xFFFFF802C9606000, 0xFFFFF802C9E23000] netbios.sys [0xFFFFF80E98430000, 0xFFFFF80E98442000] volmgr.sys [0xFFFFF80E97E40000, 0xFFFFF80E97E58000] NTFS.sys [0xFFFFF80E98060000, 0xFFFFF80E98293000] crashdmp.sys [0xFFFFF80E986C0000, 0xFFFFF80E986D9000] pvpanic.sys [0xFFFFF80E99030000, 0xFFFFF80E9903C000] myfault.sys [0xFFFFF80E9A570000, 0xFFFFF80E9A578000] Dumping stack trace: 0xFFFFF80E990317C7 (pvpanic.sys+0x17C7) 0xFFFFF80E990316D3 (pvpanic.sys+0x16D3) 0xFFFFF802C97D9681 (ntoskrnl.exe+0x1D3681) 0xFFFFF802C97D8A1F (ntoskrnl.exe+0x1D2A1F) 0xFFFFF802C97633F4 (ntoskrnl.exe+0x15D3F4) 0xFFFFF802C9773329 (ntoskrnl.exe+0x16D329) 0xFFFFF802C976F152 (ntoskrnl.exe+0x169152) 0xFFFFF80E9A572794 (myfault.sys+0x2794) Current Process: notmyfault64.e
序列埠 2
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
按一下要查看記錄的 VM 名稱。VM 執行個體詳細資料頁面會隨即開啟。
在「Logs」(記錄) 下方,展開「More」(更多),然後按一下「Serial port 2 (console)」(序列埠 2 (主控台))。
查看執行個體的序列埠,並尋找類似下列的輸出內容:
!SAC> Your PC ran into a problem and needs to restart. If you call a support person, give them this info: UNEXPECTED_KERNEL_MODE_TRAP myfault.sys 0x0000000000000008 0xFFFFC6812AB94F70 0xFFFFC6812E38EFF0 0xFFFFF80E9A572794 We're just collecting some error info, and then we'll restart for you. 100% complete
命令提示字元
如要顯示最近的藍色畫面事件,請執行下列指令:
wevtutil qe System "/q:*[System [(EventID=1001)]]" /rd:True /c:1 /f:Text
查看輸出內容,內容會類似以下:
Event[0]: Log Name: System Source: Microsoft-Windows-WER-SystemErrorReporting Date: 2021-04-14T08:53:52.933 Event ID: 1001 Task: N/A Level: Error Opcode: N/A Keyword: Classic User: N/A User Name: N/A Computer: WINDOWS Description: The computer has rebooted from a bugcheck. The bugcheck was: 0x1000007f (0x 0000000000000008, 0xffffc6812ab94f70, 0xffffc6812e38eff0, 0xfffff80e9a572794 ). A dump was saved in: C:\Windows\Minidump\041421-12656-01.dmp. Report Id: a5710c98-a577-4b3e-a3c9-2fc0aa4e5d83.
如要瞭解如何自訂 wetutil
查詢,請參閱 wevtutil
。
磁碟快照
如果 VM 無法運作,或其他方法無法解決問題,您可以使用次要 VM 檢查疑似藍色畫面 VM 的開機磁碟。使用快照可提供備份副本,您可以修改該副本,而不會變更原始 VM 的狀態。
建立快照,用於疑似導致藍色畫面問題的 VM 開機磁碟。
使用該快照建立磁碟。
使用可疑 VM 的新建立磁碟,建立含有額外非開機磁碟的 VM。復原 VM 應符合下列條件:
- 復原 VM 必須與建立的磁碟位於相同的區域。
- 復原 VM 也應使用 Windows Server 映像檔。
- 復原 VM 開機磁碟的來源映像檔應與發生問題的 VM 開機磁碟的來源映像檔不同。
瀏覽其他磁碟,找出下列檔案:
%SystemRoot%\Memory.dmp %SystemRoot%\Minidump\DATE-TIME-NUM.dmp
檔案的日期和時間可協助您比對疑似發生藍色畫面錯誤的執行個體。這些檔案也可用於分析和診斷。
選用:不再需要額外資源時,請刪除這些資源:
取得藍色畫面錯誤資訊後,您可以選擇取得記憶體傾印檔案的存取權,然後按照 Microsoft 提供的診斷步驟和建議操作:
授權問題
Windows 作業系統會連線至 Key Management Service (KMS) 伺服器,每七天更新一次授權。如果您收到授權到期或任何其他 Windows VM 授權相關問題的訊息,請執行下列操作:
確認 Windows 虛擬機器人的虛擬私有雲網路已設定為允許與 KMS 通訊。
確認 Windows 防火牆允許傳出連線至 KMS 伺服器:
- IP 位址:
35.190.247.13
- 通訊埠:
1688
- 通訊協定:
TCP
如要進一步瞭解如何設定 Windows 進階防火牆規則,請參閱「建立傳出埠規則」。
- IP 位址:
執行下列指令,測試連線至 KMS 伺服器是否成功:
powershell.exe Test-NetConnection 35.190.247.13 -Port 1688
執行下列指令,確認授權的目前狀態、設定 KMS 的伺服器 IP 位址,並強制啟用:
cscript \windows\system32\slmgr.vbs /dlv
cscript \windows\system32\slmgr.vbs /skms 35.190.247.13:1688
cscript \windows\system32\slmgr.vbs /ato
排解互動式序列主控台的問題
請確認您符合存取序列控制台的先決條件。
啟用緊急管理服務。如果關閉 EMS,序列主控台就不會接受任何鍵盤輸入,只會顯示空白畫面和閃爍的游標。
命令提示字元
使用遠端桌面協定連線至 VM,並以管理員身分開啟
Command Prompt
。如果無法使用 RDP,請將後續步驟做為值新增至windows-startup-script-cmd
啟動鍵。將全域 EMS 重新導向設定設為使用 COM2、波特率為 115200,並啟用 EMS。
bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200 bcdedit /ems on
重新啟動 VM 即可套用更新的設定。如果您使用中繼資料指令碼,請勿新增關機指令。
shutdown -r -t 0
PowerShell
透過 RDP 連線,並以管理員身分開啟
Powershell
。如果無法使用 RDP,請將後續步驟做為值新增至windows-startup-script-ps1
啟動鍵。將全域 EMS 重新導向設定設為使用 COM2、波特率為 115200,並啟用 EMS。
bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200 bcdedit /ems on
重新啟動 VM 即可套用更新的設定。如果您使用中繼資料指令碼,請勿新增關機指令。
shutdown -r -t 0
後續步驟
瞭解如何從虛擬機收集診斷資訊。
瞭解如何擷取虛擬機器螢幕截圖。
進一步瞭解如何與序列主控台互動。
瞭解如何排解 RDP 連線問題。