使用 Azure 虛擬機修復命令修復 Windows VM
適用於:✔️ Windows VM
如果您的 Azure 中的 Windows 虛擬機 (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。
[ 修復程式範例 ] 區段將引導您完成下列程式:
- 啟動 Azure Cloud Shell。
- 執行
az extension add
或az extension update
。 - 執行
az vm repair create
。 - 執行
az vm repair run
或執行風險降低步驟。 - 執行
az vm repair restore
。
注意
若要檢視所有可用的 VM 修復命令和參數,請參閱 az vm repair。
重要
若要執行命令,您需要可在訂用帳戶中建立下列資源類型的角色:
- 資源群組
- 虛擬機器
- 資源標籤
- 虛擬網路
- 網路安全性群組
- 網路介面
- Disks
- 公用IP位址 (選擇性)
修復程式範例
啟動 Azure Cloud Shell
Azure Cloud Shell 是免費的互動式 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 login
az login reference。 若要在與您的帳戶相關聯的訂用帳戶之間切換,您可以使用az account set --subscription
az account set reference。如果這是您第一次使用
az vm repair
命令,請新增 vm-repair CLI 擴充功能。az extension add -n vm-repair
如果您先前已使用
az vm repair
命令,請將任何更新套用至 vm-repair 擴充功能。az extension update -n vm-repair
執行
az vm repair create
。 此命令會建立非功能性 VM 的 OS 磁碟復本、在新的資源群組中建立修復 VM,以及連結 OS 磁碟複本。 修復 VM 的大小和區域會與指定的非功能性 VM 相同。 所有步驟中使用的資源群組和 VM 名稱都將用於非功能性 VM。 如果您的 VM 使用 Azure 磁碟加密,請使用--unlock-encrypted-vm
來解除鎖定加密的磁碟,以便在連結至修復 VM 時存取它。 如需詳細資訊,請參閱 確認磁碟上已啟用 ADE。 如果您需要針對巢狀 Hyper-V 環境中的 VM 進行疑難解答,請使用--enable-nested
,並使用 OS 磁碟復本來建立具有 Hyper-V 角色的修復 VM 以及巢狀 VM。
重要
執行和還原命令會要求使用與建立命令中使用的相同案例來輸入所有輸入,請記下或參考修復 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
執行
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。
執行
az vm repair restore
。 此命令會將修復的OS磁碟與VM的原始OS磁碟交換。 這裡所使用的資源群組和 VM 名稱適用於步驟 3 中使用的非功能性 VM。az vm repair restore -g MyResourceGroup -n MyVM --verbose
確認並啟用開機診斷
下列範例會在名為 myResourceGroup
的資源群組中,myVMDeployed
於名為 的 VM 上啟用診斷擴充功能:
Azure CLI
az vm boot-diagnostics enable --name myVMDeployed --resource-group myResourceGroup --storage https://mystor.blob.core.windows.net/
下一步
- 如果您在連線到 VM 時遇到問題,請參閱 針對 Azure VM 的 RDP 連線進行疑難解答。
- 如需存取 VM 上執行的應用程式的問題,請參閱 針對 Azure 中虛擬機器上的應用程式連線問題進行疑難解答。
- 如需使用 Resource Manager 的詳細資訊,請參閱 Azure Resource Manager 概觀。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。