Naprawianie maszyny wirtualnej z systemem Linux przy użyciu usługi Azure Linux Auto Repair (ALAR)

Przy następnym uruchomieniu naprawy maszyny wirtualnej platformy Azure z systemem Linux można zautomatyzować zadanie, umieszczając skrypty automatycznej naprawy systemu Azure Linux (ALAR). Nie trzeba już uruchamiać zadania ręcznie. Te skrypty upraszczają proces odzyskiwania i umożliwiają nawet niedoświadczonym użytkownikom łatwe odzyskiwanie maszyny wirtualnej z systemem Linux.

Usługa ALAR korzysta z rozszerzenia naprawy maszyny wirtualnej opisanego w artykule Naprawianie maszyny wirtualnej z systemem Linux przy użyciu poleceń naprawy maszyny wirtualnej platformy Azure.

ALAR obejmuje następujące scenariusze naprawy:

  • Źle sformułowany błąd składni /etc/fstab brakuje dysku
  • Uszkodzony initrd lub brak linii initrd w /boot/grub/grub.cfg
  • Ostatnio zainstalowane jądro nie jest możliwe do rozruchu
  • Konsola szeregowa i serial GRUB są niepoprawnie skonfigurowane lub brakuje ich
  • Instalacja lub konfiguracja PROGRAMU GRUB/EFI została uszkodzona

Akcje ALAR

Fstab

Ta akcja usuwa wszelkie wiersze w pliku /etc/fstab , które nie są potrzebne do rozruchu systemu. Najpierw do odwołania jest wykonywana kopia oryginalnego pliku. Po uruchomieniu systemu operacyjnego administrator może edytować kartę fstab, aby naprawić wszelkie błędy, które wcześniej nie zezwalają na ponowne uruchomienie systemu.

Aby uzyskać więcej informacji o problemach z źle sformułowanym plikiem /etc/fstab , zobacz Rozwiązywanie problemów z uruchamianiem maszyny wirtualnej z systemem Linux z powodu błędów fstab.

Jądra

Ta akcja zmienia domyślne jądro. Skrypt zastępuje uszkodzone jądro poprzednio zainstalowaną wersją.

Aby uzyskać więcej informacji o komunikatach, które mogą być rejestrowane w konsoli szeregowej w przypadku zdarzeń uruchamiania związanych z jądrem, zobacz Jak odzyskać maszynę wirtualną platformy Azure z systemem Linux z powodu problemów z rozruchem związanym z jądrem.

Initrd

Ta akcja może służyć do naprawy initrd lub initramfs, który jest uszkodzony lub niepoprawnie utworzony.

Aby poprawnie utworzyć initrd lub initramfs, dodaj moduły hv_vmbus, hv_netvsci hv_storvsc do obrazu.

Problemy z uruchamianiem związane z initrdem mogą być wyświetlane jako następujące zarejestrowane objawy.

Nie można zsynchronizować systemu plików VFSNie znaleziono działającego init

W obu przypadkach następujące informacje są rejestrowane przed zarejestrowaniem wpisów błędu.

Rozpakowywanie nie powiodło się

serialconsole

Ta akcja poprawia nieprawidłową lub źle sformułowaną konfigurację konsoli szeregowej dla jądra systemu Linux lub narzędzia GRUB. Zalecamy uruchomienie tej akcji w następujących przypadkach:

  • Podczas uruchamiania maszyny wirtualnej nie jest wyświetlane menu GRUB.
  • Żadne informacje dotyczące systemu operacyjnego nie są zapisywane w konsoli szeregowej.

grubfix

Tej akcji można użyć do ponownego zainstalowania narzędzia GRUB i ponownego wygenerowania pliku grub.cfg .

efifix

Tej akcji można użyć do ponownego zainstalowania wymaganego oprogramowania do rozruchu z maszyny wirtualnej GEN2. Plik grub.cfg również jest ponownie generowany.

z inspekcją

Jeśli maszyna wirtualna zostanie zamknięta natychmiast po uruchomieniu z powodu konfiguracji demona inspekcji, użyj tej akcji. Ta akcja modyfikuje konfigurację demona inspekcji (w pliku /etc/audit/auditd.conf ), zmieniając HALT wartość skonfigurowaną dla żadnych action parametrów na SYSLOG, co nie wymusza zamknięcia systemu. Jeśli w środowisku Menedżera woluminów logicznych (LVM) wolumin logiczny zawierający dzienniki inspekcji jest pełny i w grupie woluminów jest dostępne miejsce, wolumin logiczny zostanie również rozszerzony o 10% bieżącego rozmiaru. Jeśli jednak nie używasz środowiska LVM lub nie ma dostępnego miejsca, zmieniany jest tylko plik konfiguracji.

Jak używać usługi ALAR

Skrypty ALAR używają polecenia rozszerzenia run naprawy i jego --run-id opcji. Wartość opcji automatycznego --run-id odzyskiwania to linux-alar2. Aby naprawić maszynę wirtualną z systemem Linux przy użyciu skryptu ALAR, wykonaj następujące kroki:

  1. Tworzenie maszyny wirtualnej ratowniczej:

    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. Uruchom skrypt z jedną z akcji ALAR na maszynie wirtualnej ratunkowej:

    az vm repair run --verbose -g RG-NAME -n VM-NAME --run-id linux-alar2 --parameters ACTION --run-on-repair
    
  3. Zamień dyski systemu operacyjnego i usuń zasoby tymczasowe:

    az vm repair restore --verbose -g RG-NAME -n VM-NAME 
    

    Uwaga

    Oryginalne i nowe dyski nie zostaną usunięte.

Poniżej przedstawiono wyjaśnienia parametrów w powyższych poleceniach:

  • RG-NAME: nazwa grupy zasobów zawierającej uszkodzoną maszynę wirtualną.

  • VM-NAME: nazwa uszkodzonej maszyny wirtualnej.

  • RESCUE-UID: użytkownik utworzony na maszynie wirtualnej naprawy na potrzeby logowania. Jest to odpowiednik użytkownika utworzonego na nowej maszynie wirtualnej w Azure Portal.

  • RESCUE-PASS: hasło dla RESCUE-UIDelementu , ujęte w pojedyncze cudzysłowy. Przykład: 'password!234'.

  • DISK-COPY: nazwa kopii dysku systemu operacyjnego, która zostanie utworzona z uszkodzonej maszyny wirtualnej.

  • ACTION: zadanie skryptowe do uruchomienia, takie jak initrd lub fstab.

    Uwaga

    Możesz przekazać pojedyncze lub wiele operacji odzyskiwania. W przypadku wielu operacji wytycz je przy użyciu przecinków bez spacji, takich jak fstab,initrd.

Ograniczenie

Klasyczne maszyny wirtualne nie są obsługiwane.

Następne kroki

Jeśli wystąpi usterka lub chcesz zażądać rozszerzenia narzędzia ALAR, opublikuj komentarz w witrynie GitHub.

Najnowsze informacje o narzędziu ALAR można również znaleźć w witrynie GitHub.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.