Share via


使用 Azure 虛擬機修復命令修復 Windows VM

如果您的 Windows 虛擬機 (Azure 中的 VM) 發生開機或磁碟錯誤,您可能需要離線修復磁碟。 常見的範例是應用程式更新失敗,導致 VM 無法成功開機。 本文詳細說明如何使用 Azure VM 修復命令,自動將中斷的 OS 磁碟連結至另一個 Windows VM 以進行離線修復。 透過此程式,如果磁碟是使用 Azure 磁碟加密來加密,則第二部 VM 上會自動解除鎖定失敗的 OS 磁碟,稱為修復 VM。 當失敗的磁碟連結至修復 VM 時,您可以修正任何錯誤,然後使用修復的磁碟重建原始 VM。

重要事項

  • 本文中的腳本僅適用於使用 Azure Resource Manager 的 VM。
  • 需要從 VM (埠 443) 的輸出連線,腳本才能執行。
  • 一次只能執行一個腳本。
  • 無法取消執行中的腳稿。
  • 腳本執行的時間上限為90分鐘,之後就會逾時。
  • 請勿修改在修復 VM 上建立的標籤。 必須要有標記,還原命令才能正確運作。
  • 針對使用 Azure 磁碟加密的 VM,僅支援使用具有或不含 KEK) 的單一傳遞加密 (加密的受控磁碟。

修復程式概觀

您現在可以使用 Azure VM 修復命令來變更 VM 的 OS 磁碟,而且不再需要刪除並重新建立 VM。

請遵循下列步驟來針對 VM 問題進行疑難解答:

  1. 啟動 Azure Cloud Shell
  2. 執行 az extension add/update。
  3. 執行 az vm repair create。
  4. 執行 az vm repair run,或執行風險降低步驟。
  5. 執行 az vm repair restore。

若要檢視所有可用的 VM 修復命令和參數,請參閱 az vm repair

若要執行命令,您需要可在訂用帳戶中建立下列資源類型的角色:

  • 資源群組
  • 虛擬機器
  • 資源標籤
  • 虛擬網路
  • 網路安全組
  • 網路介面
  • 磁碟
  • 公用IP位址 (選擇性)

修復程式範例

  1. 啟動 Azure Cloud Shell

    Azure Cloud Shell 是免費的互動式殼層,可用來執行本文中的步驟。 它包含預安裝並設定為與您帳戶搭配使用的一般 Azure 工具。 如果您執行的腳本需要超過 20 分鐘的時間 (例如: win-sfc-sf-corruption 腳本) ,建議您在本機執行命令。 若要在本機執行命令,需要 Azure CLI 2.0.67 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級 Azure CLI,請參閱 安裝 Azure CLI

    若要開啟 Cloud Shell,請從程式代碼區塊的右上角選取 [試試看]。 您也可以造訪 https://shell.azure.com,在個別的瀏覽器索引標籤中開啟 Cloud Shell。

    選取 [複製] 以複製程式代碼區塊,然後將程式代碼貼到 Cloud Shell 中,然後選取 Enter 來執行它。

    如果您想要在本機安裝和使用 CLI,本快速入門需要 Azure CLI 2.0.67 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級 Azure CLI,請參閱 安裝 Azure CLI

    如果您需要使用與目前登入 Azure 入口網站 不同的帳戶登入 Cloud Shell,您可以使用 az loginaz login 參考。 若要在與帳戶相關聯的訂用帳戶之間切換,您可以使用 az account set --subscriptionaz account set reference

  2. 如果這是您第一次使用 az vm repair 命令,請新增 vm-repair CLI 擴充功能。

    az extension add -n vm-repair
    

    如果您先前已使用 az vm repair 命令,請將任何更新套用至 vm-repair 擴充功能。

    az extension update -n vm-repair
    
  3. 執行 az vm repair create。 此命令會建立非功能性 VM 的 OS 磁碟復本、在新的資源群組中建立修復 VM,以及連結 OS 磁碟複本。 修復 VM 的大小和區域會與指定的非功能性 VM 相同。 所有步驟中使用的資源群組和 VM 名稱將會用於非功能性 VM。 如果您的 VM 使用 Azure 磁碟加密,請使用 --unlock-encrypted-vm 來解除鎖定加密的磁碟,以便在連結至修復 VM 時可存取它。 如需詳細資訊,請 參閱確認已在磁碟上啟用 ADE。 如果您需要針對巢狀 Hyper-V 環境中的 VM 進行疑難解答,請使用 --enable-nested 和修復 VM,並使用 OS 磁碟複製來啟用 Hyper-V 角色以及巢狀 VM。

重要事項

執行和還原命令將需要使用與 create 命令中使用的相同案例輸入所有輸入、記下或參照修復 VM 上的標籤,以查看所使用的專案。

修復 VM 範例

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --verbose

使用巢狀 Hyper-V 修復 VM 範例

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --enable-nested --verbose
  1. 執行 az vm repair run。 此命令會透過修復 VM 在連結的磁碟上執行指定的修復腳本。 如果您使用的疑難解答指南指定了 run-id,請在這裡使用它。 否則,您可以使用 az vm repair list-scripts 查看可用的修復腳本。 此處使用的資源群組和 VM 名稱適用於步驟 3 中使用的非功能性 VM。 如需修復腳本的其他資訊,請參閱 修復腳本連結庫

    az vm repair run -g MyResourceGroup -n MyVM --run-on-repair --run-id win-hello-world --verbose
    

    您可以選擇性地使用修復 VM 執行任何必要的手動防護步驟,然後繼續進行步驟 5。

  2. 執行 az vm repair restore。 此命令會將修復的OS磁碟與VM的原始OS磁碟交換。 此處使用的資源群組和 VM 名稱適用於步驟 3 中使用的非功能性 VM。

    az vm repair restore -g MyResourceGroup -n MyVM --verbose
    

驗證並啟用開機診斷

下列範例會在名為 的資源群組中,於名為 的 myVMDeployed VM 上啟用診斷擴充功能 myResourceGroup

Azure CLI

az vm boot-diagnostics enable --name myVMDeployed --resource-group myResourceGroup --storage https://mystor.blob.core.windows.net/

後續步驟

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群