使用 Azure Linux 自動修復 (ALAR) 來修正 Linux VM
下次您必須在 Azure Linux 虛擬機 (VM) 上執行修復時,您可以將 Azure Linux 自動修復 (ALAR) 腳本來為您運作,藉此將作業自動化。 您不再需要手動執行作業。 這些腳本可簡化復原程式,甚至讓沒有經驗的用戶輕鬆復原其Linux VM。
ALAR 利用 使用 Azure 虛擬機修復命令修復 Linux VM 中所述的 VM 修復延伸模組。
ALAR 涵蓋下列修復案例:
- 磁碟的格式錯誤 /etc/fstab 語法錯誤
- /boot/grub/grub.cfg 中的 initrd 或遺失 initrd 行損毀
- 上次安裝的核心無法開機
- 序列主控台和 GRUB 序列設定不正確或遺失
- GRUB/EFI 安裝或設定損毀
ALAR 動作
fstab
此動作會去除 /etc/fstab 檔案中任何不需要開機系統的行。 首先,會建立原始檔案的復本供參考。 當 OS 啟動時,系統管理員可以編輯 fstab,以更正之前不允許重新啟動系統的任何錯誤。
如需格式不正確 /etc/fstab 檔案問題的詳細資訊,請參閱 針對Linux VM啟動問題進行疑難解答,因為發生 fstab 錯誤。
內核
此動作會變更預設核心。 腳本會將中斷的核心取代為先前安裝的版本。
如需可能記錄在序列控制臺上以進行核心相關啟動事件之訊息的詳細資訊,請參閱 如何從核心相關開機問題復原 Azure Linux 虛擬機。
Initrd
此動作可用來修正損毀或不正確建立的 initrd 或 initramfs。
若要正確建立 initrd 或 initramfs,請將模組 hv_vmbus
、 hv_netvsc
和 hv_storvsc
新增至映像。
與 Initrd 相關的啟動問題可能會顯示為下列記錄的徵兆。
在這兩種情況下,會在記錄錯誤專案之前記錄下列資訊。
serialconsole
此動作會更正 Linux 核心或 GRUB 的不正確或格式不正確的序列主控台設定。 建議您在下列情況下執行此動作:
- VM 啟動時不會顯示任何 GRUB 功能表。
- 不會將任何操作系統相關信息寫入序列主控台。
grubfix
此動作可用來重新安裝 GRUB 並重新產生 grub.cfg 檔案。
efifix
此動作可用來重新安裝從 GEN2 VM 開機所需的軟體。 grub.cfg 檔案也會重新產生。
auditd
如果您的 VM 在啟動時因為稽核精靈設定而立即關閉,請使用此動作。 此動作會將針對任何action
參數SYSLOG
所設定的值變更HALT
為 ,以修改 /etc/audit/auditd.conf 檔案) 中的稽核精靈設定 (,這不會強制系統關閉。 在邏輯磁碟區管理員 (LVM) 環境中,如果包含稽核記錄的邏輯磁碟區已滿,而且磁碟區群組中有可用的空間,邏輯磁碟區也會擴充目前大小的 10%。 不過,如果您不是使用 LVM 環境,或沒有可用空間,則只會更改組態檔。
如何使用 ALAR
ALAR 腳本會使用 repair 擴充 run
功能命令及其 --run-id
選項。 自動化復原選項的 --run-id
值為 linux-alar2
。 若要使用 ALAR 腳本來修正 Linux VM,請遵循下列步驟:
建立救援 VM:
az vm repair create --verbose -g RG-NAME -n VM-NAME --repair-username RESCUE-UID --repair-password RESCUE-PASS --copy-disk-name DISK-COPY
在救援 VM 上執行具有其中一個 ALAR 動作的腳本:
az vm repair run --verbose -g RG-NAME -n VM-NAME --run-id linux-alar2 --parameters ACTION --run-on-repair
交換 OS 磁碟並刪除暫存資源:
az vm repair restore --verbose -g RG-NAME -n VM-NAME
注意事項
不會刪除原始和新的磁碟。
以下是上述命令中參數的說明:
RG-NAME
:包含損毀 VM 的資源組名。VM-NAME
:損毀 VM 的名稱。RESCUE-UID
:在修復 VM 上建立以進行登入的使用者。 這相當於在 Azure 入口網站 的新 VM 上建立的使用者。RESCUE-PASS
:的密碼RESCUE-UID
,以單引弧括住。 例如:'password!234'
。DISK-COPY
:將從中斷的 VM 建立的 OS 磁碟復本名稱。ACTION
:要執行的腳本工作,例如initrd
或fstab
。注意事項
您可以傳遞單一或多個復原作業。 針對多個作業,請使用不含空格的逗號來描述它們,例如
fstab,initrd
。
限制
不支援傳統 VM。
後續步驟
如果您遇到 Bug 或想要要求 ALAR 工具的增強功能,請在 GitHub 上張貼批注。
您也可以在 GitHub 上找到 ALAR 工具的最新資訊。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應