共用方式為


使用 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_vmbushv_netvschv_storvsc 新增至映像。

Initrd 相關的啟動問題可能會顯示為下列記錄的徵兆。

未同步處理 VFS找不到工作 init

在這兩種情況下,會在記錄錯誤專案之前記錄下列資訊。

解壓縮失敗

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,請遵循下列步驟:

  1. 建立救援 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
    
  2. 在救援 VM 上執行具有其中一個 ALAR 動作的腳本:

    az vm repair run --verbose -g RG-NAME -n VM-NAME --run-id linux-alar2 --parameters ACTION --run-on-repair
    
  3. 交換 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:要執行的腳本工作,例如 initrdfstab

    注意

    您可以傳遞單一或多個復原作業。 針對多個作業,請使用不含空格的逗號來劃定它們,例如 fstab,initrd

限制

不支援傳統 VM。

下一步

如果您遇到 Bug 或想要要求 ALAR 工具的增強功能,請在 GitHub張貼批注。

您也可以在 GitHub找到 ALAR 工具的最新資訊。

與我們連絡,以取得說明

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