Windows VM 疑難排解


本文說明可用來解決下列 Compute Engine Windows 虛擬機器 (VM) 執行個體啟動問題的方法和工具:

  • 您無法使用 RDP 連線至 VM,且疑難排解無法解決連線問題。

  • VM 螢幕截圖中未顯示登入畫面,且 VM 似乎未有進展或執行更新。

  • 您在正常運作期間遇到藍色畫面錯誤、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

    1. 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.

    2. Set a default region and zone.

使用「進階啟動選項」選單

如果 Windows 無法正常啟動,請使用「進階啟動選項」選單存取安全模式,或透過線上方式修復作業系統。詳情請參閱「進階啟動選項」。

如要在 Windows VM 上進入「Advanced Boot Options」選單,請完成下列程序:

  1. 如果尚未為 VM 啟用顯示裝置,請先啟用。
  2. 連線至 VM 的互動式序列主控台

  3. 請使用下列任一方法重新啟動 VM:

    主控台

    1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

      前往 VM 執行個體

    2. 按一下要重新啟動的 VM 名稱。系統會開啟 VM 執行個體詳細資料頁面。

    3. 按一下「Reset」按鈕,重新啟動 VM。

    gcloud

    使用 gcloud compute instances reset 指令重設 VM:

    gcloud compute instances reset VM_NAME --zone=ZONE --project=PROJECT_ID
    

    更改下列內容:

    • PROJECT_ID:含有 VM 的專案 ID
    • ZONE:VM 所在的可用區名稱
    • VM_NAME:VM 名稱

    命令提示字元

    連線至互動式序列主控台時,請開啟指令提示字元工作階段並執行下列指令。如要進一步瞭解如何開啟命令提示字元工作階段,請參閱「在 Windows SAC 中開啟命令提示字元」。

    shutdown /r /t 0
    

    Windows 開機管理員選單會隨即開啟:

    Windows 開機管理員選單

  4. 在倒數結束前,請完成下列步驟:

    1. 請確認互動式序列主控台是您目前的活動視窗。

    2. 按下鍵盤上的 Esc 鍵。

    3. 按下鍵盤上的 8 鍵。

    進階啟動選項選單會隨即開啟:

    「Advanced Boot Options」選單

  5. 使用鍵盤上的方向鍵選取所需選項,然後按下 Enter 鍵開啟。

啟用 Windows 啟動管理工具選單

您可以設定 Windows 啟動管理員選單,在重新啟動 Windows VM 執行個體時顯示。如要啟用 Windows 開機管理工具選單,請按照下列步驟操作:

連線至 VM,然後開啟具有管理員存取權的命令提示字元。如果無法連線至 VM,請將後續步驟設為 windows-startup-script-cmdwindows-startup-script-ps1 啟動指令碼的值,而非直接執行

命令提示字元

  1. 如要在啟動時啟用 Windows 啟動管理工具選單,並新增 15 秒的逾時值,請執行下列指令:

    bcdedit /set {bootmgr} displaybootmenu yes
    
    bcdedit /set {bootmgr} timeout 15
    
  2. 如要重新啟動 VM,並使用下列指令在序列主控台中顯示 Windows 啟動管理員選單:

    shutdown -r -t 0
    

PowerShell

  1. 如要在啟動時啟用 Windows 啟動管理工具選單,並新增 15 秒的逾時值,請執行下列指令:

    bcdedit /set '{bootmgr}' displaybootmenu yes
    
    
    bcdedit /set '{bootmgr}' timeout 15
    
  2. 如要重新啟動 VM,並使用下列指令在序列主控台中顯示 Windows 啟動管理員選單:

    shutdown -r -t 0
    

完成離線修復

如果 VM 無法正確啟動,且使用進階啟動選單無法解決問題,請嘗試使用功能正常的 Windows VM 執行個體,透過有問題的 VM 開機磁碟快照進行離線修復,以便復原。使用快照可讓您取得備份副本,無須變更原始 VM 的狀態即可進行修改。

  1. 建立快照,用於有問題的 VM 開機磁碟。

  2. 使用該快照建立磁碟

  3. 使用新建立的磁碟建立含有額外非開機磁碟的 VM。復原 VM 應符合下列條件:

    • 復原 VM 必須與建立的磁碟位於相同的區域。
    • 復原 VM 也應使用 Windows Server 映像檔
    • 復原 VM 開機磁碟的來源映像檔應與發生問題的 VM 開機磁碟的來源映像檔不同。
  4. 您現在可以使用 Windows 工具和公用程式,嘗試離線修復額外連接的磁碟。如要進一步瞭解如何完成 VM 的離線修復作業,請參閱下列說明文件:

  5. 如果離線修復作業已順利完成,請更新發生問題的 VM 開機磁碟,以便使用新修復的開機磁碟。

  6. 選用:不再需要額外資源時,請刪除這些資源:

排解藍色畫面錯誤

Windows 作業系統可能會發生停止程式碼或藍色畫面錯誤,也稱為藍色當機畫面。如果 VM 發生藍色畫面錯誤,VM 就會停止執行,需要重新啟動才能恢復正常運作。

如果您認為可能發生藍色畫面錯誤,請使用下列一或多種方法確認是否有錯誤:

序列埠 1

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 按一下要查看記錄的 VM 名稱。VM 執行個體詳細資料頁面會隨即開啟。

  3. 在「Logs」(記錄) 下方,按一下「Serial port 1」(序列埠 1)

  4. 類似下方的堆疊追蹤傾印可證實藍色畫面錯誤:

    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

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 按一下要查看記錄的 VM 名稱。VM 執行個體詳細資料頁面會隨即開啟。

  3. 在「Logs」(記錄) 下方,展開「More」(更多),然後按一下「Serial port 2 (console)」(序列埠 2 (主控台))

  4. 查看執行個體的序列埠,並尋找類似下列的輸出內容:

    !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
    

命令提示字元

  1. 連線至執行個體,然後開啟具有管理存取權的命令提示字元。

  2. 如要顯示最近的藍色畫面事件,請執行下列指令:

    wevtutil qe System "/q:*[System [(EventID=1001)]]" /rd:True /c:1 /f:Text
    
  3. 查看輸出內容,內容會類似以下:

    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 的狀態。

  1. 建立快照,用於疑似導致藍色畫面問題的 VM 開機磁碟。

  2. 使用該快照建立磁碟

  3. 使用可疑 VM 的新建立磁碟,建立含有額外非開機磁碟的 VM。復原 VM 應符合下列條件:

    • 復原 VM 必須與建立的磁碟位於相同的區域。
    • 復原 VM 也應使用 Windows Server 映像檔
    • 復原 VM 開機磁碟的來源映像檔應與發生問題的 VM 開機磁碟的來源映像檔不同。
  4. 瀏覽其他磁碟,找出下列檔案:

    %SystemRoot%\Memory.dmp
    %SystemRoot%\Minidump\DATE-TIME-NUM.dmp
    

    檔案的日期和時間可協助您比對疑似發生藍色畫面錯誤的執行個體。這些檔案也可用於分析和診斷。

  5. 選用:不再需要額外資源時,請刪除這些資源:

取得藍色畫面錯誤資訊後,您可以選擇取得記憶體傾印檔案的存取權,然後按照 Microsoft 提供的診斷步驟和建議操作:

授權問題

Windows 作業系統會連線至 Key Management Service (KMS) 伺服器,每七天更新一次授權。如果您收到授權到期或任何其他 Windows VM 授權相關問題的訊息,請執行下列操作:

  1. 確認 Windows 虛擬機器人的虛擬私有雲網路已設定為允許與 KMS 通訊

  2. 確認 Windows 防火牆允許傳出連線至 KMS 伺服器:

    • IP 位址:35.190.247.13
    • 通訊埠:1688
    • 通訊協定:TCP

    如要進一步瞭解如何設定 Windows 進階防火牆規則,請參閱「建立傳出埠規則」。

  3. 執行下列指令,測試連線至 KMS 伺服器是否成功:

    powershell.exe Test-NetConnection 35.190.247.13 -Port 1688
    
  4. 執行下列指令,確認授權的目前狀態、設定 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
    

排解互動式序列主控台的問題

  1. 請確認您符合存取序列控制台的先決條件

  2. 啟用緊急管理服務。如果關閉 EMS,序列主控台就不會接受任何鍵盤輸入,只會顯示空白畫面和閃爍的游標。

    命令提示字元

    1. 使用遠端桌面協定連線至 VM,並以管理員身分開啟 Command Prompt。如果無法使用 RDP,請將後續步驟做為值新增至 windows-startup-script-cmd 啟動鍵。

    2. 將全域 EMS 重新導向設定設為使用 COM2、波特率為 115200,並啟用 EMS。

      bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
      bcdedit /ems on
      
    3. 重新啟動 VM 即可套用更新的設定。如果您使用中繼資料指令碼,請勿新增關機指令。

      shutdown -r -t 0
      

    PowerShell

    1. 透過 RDP 連線,並以管理員身分開啟 Powershell。如果無法使用 RDP,請將後續步驟做為值新增至 windows-startup-script-ps1 啟動鍵。

    2. 將全域 EMS 重新導向設定設為使用 COM2、波特率為 115200,並啟用 EMS。

      bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
      bcdedit /ems on
      
    3. 重新啟動 VM 即可套用更新的設定。如果您使用中繼資料指令碼,請勿新增關機指令。

      shutdown -r -t 0
      

後續步驟