Share via


使用 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_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 環境,或沒有可用空間,則只會更改組態檔。

如何使用 ALAR

ALAR 腳本會使用 repair 擴充 run 功能命令及其 --run-id 選項。 自動化復原選項的 --run-id 值為 linux-alar2。 若要使用 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 意應見反社群