使用 Azure Linux 自動修復 (ALAR) 來修正 Linux VM
適用於:✔️ Linux VM
下次您必須在 Azure Linux 虛擬機 (VM) 上執行修復時,您可以將 Azure Linux 自動修復 (ALAR) 腳本放入您的工作自動化。 您不再需要手動執行作業。 這些腳本會簡化復原程式,並讓甚至沒有經驗的用戶輕鬆地復原其Linux VM。
ALAR 會使用 Azure 虛擬機修復命令修復 Linux VM 中所述 的 VM 修復擴充功能。
ALAR 涵蓋下列修復案例:
- 遺失磁碟格式錯誤的 /etc/fstab 語法錯誤
- 損毀的 initrd 或遺漏 /boot/grub/grub.cfg 中的 initrd 行
- 上次安裝的核心無法開機
- 序列主控台和 GRUB 序列設定不正確或遺失
- GRUB/EFI 安裝或設定損毀
ALAR 動作
fstab
此動作會從 /etc/fstab 檔案中不需要開機系統的任何行移除。 首先,會建立源文件的複本以供參考。 操作系統啟動時,系統管理員可以編輯 fstab,以更正之前不允許重新啟動系統的任何錯誤。
如需格式不正確 /etc/fstab 檔案問題的詳細資訊,請參閱 針對Linux VM啟動問題進行疑難解答,因為 fstab 錯誤。
核心 (kernel)
此動作會變更預設核心。 腳本會將中斷的核心取代為先前安裝的版本。
如需可能針對核心相關啟動事件登入序列控制台之訊息的詳細資訊,請參閱 如何從核心相關的開機問題復原 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 環境或沒有可用的空間,則只會改變組態檔。
重要
此動作會藉由改變稽核精靈設定來變更 VM 的安全性狀態,以便解決 VM 關機問題。 VM 執行且可存取之後,您必須將稽核精靈組態還原為原始狀態。 為此,ALAR 動作會在 /etc/audit 中建立 auditd.conf 檔案的備份。
如何使用 ALAR
ALAR 腳本會使用修復擴充 run
功能命令及其 --run-id
選項。 自動復原linux-alar2
的選項值為 --run-id
。 若要使用 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 意見反應社群提交產品意見反應。