使用 Azure 虛擬機修復命令修復 Linux VM
如果您的 Linux 虛擬機器 (Azure 中的 VM) 發生開機或磁碟錯誤,您可能需要在磁碟本身執行緩和措施。 常見的範例是應用程式更新失敗,導致 VM 無法成功開機。 本文詳細說明如何使用 Azure 虛擬機修復命令,將磁碟連線到另一個 Linux VM 以修正任何錯誤,然後重建原始 VM。
重要事項
- 本文中的腳本僅適用於使用 Azure Resource Manager 的 VM。
- 需要從 VM (埠 443) 的輸出連線,腳本才能執行。
- 一次只能執行一個腳本。
- 無法取消執行中的腳稿。
- 腳本執行的時間上限為90分鐘,之後就會逾時。
- 請勿修改在修復 VM 上建立的標籤。 必須要有標記,還原命令才能正確運作。
- 針對使用 Azure 磁碟加密的 VM,僅支援使用具有或不含 KEK) 的單一傳遞加密 (加密的受控磁碟。
修復程式概觀
您現在可以使用 Azure 虛擬機修復命令來變更 VM 的 OS 磁碟,而且不再需要刪除和重新建立 VM。
請遵循下列步驟來針對 VM 問題進行疑難解答:
- 啟動 Azure Cloud Shell
- 執行 az extension add/update
- 執行 az vm repair create
- 執行 az vm repair run,或執行風險降低步驟。
- 執行 az vm repair restore
若要檢視所有可用的 VM 修復命令和參數,請參閱 az vm repair。
若要執行命令,您需要可在訂用帳戶中建立下列資源類型的角色:
- 資源群組
- 虛擬機器
- 資源標籤
- 虛擬網路
- 網路安全組
- 網路介面
- 磁碟
- 公用IP位址 (選擇性)
修復程式範例
啟動 Azure Cloud Shell
Azure Cloud Shell 是免費的互動式殼層,可用來執行本文中的步驟。 它包含預安裝並設定為與您帳戶搭配使用的一般 Azure 工具。 如果您執行的修復腳本需要超過 20 分鐘的時間,建議您在本機執行命令。 若要在本機執行命令,需要 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。
重要事項
執行和還原命令將需要使用與 create 命令中使用的相同案例輸入所有輸入、記下或參照修復 VM 上的標籤,以查看所使用的專案。
修復 VM 範例
az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password password1234 --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 lin-hello-world --verbose
您可以選擇性地使用修復 VM 執行任何必要的手動防護步驟,然後繼續進行步驟 5。
執行
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/
後續步驟
- 如果您在連線到 VM 時遇到問題,請參閱 針對 Azure 虛擬機器的 RDP 連線進行疑難解答。
- 如需存取在 VM 上執行之應用程式的問題,請參閱 針對 Azure 中虛擬機上的應用程式連線問題進行疑難解答。
- 如需使用 Resource Manager 的詳細資訊,請參閱 Azure Resource Manager 概觀。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應