Исправление виртуальной машины Linux с помощью автоматического восстановления Linux (ALAR)

В следующий раз, когда вам потребуется выполнить восстановление на виртуальной машине Linux Azure, вы можете автоматизировать задание, поместив скрипты автоматического восстановления Azure Linux (ALAR) для работы. Вам больше не нужно запускать задание вручную. Эти скрипты упрощают процесс восстановления и позволяют даже неопытным пользователям легко восстанавливать свою виртуальную машину Linux.

ALAR использует расширение для восстановления виртуальной машины, описанное в разделе Восстановление виртуальной машины Linux с помощью команд восстановления виртуальной машины Azure.

ALAR охватывает следующие сценарии восстановления:

  • Ошибка синтаксиса /etc/fstab неправильного формата при отсутствии диска
  • Повреждена инициативная строка или отсутствует строка инициативов в /boot/grub.cfg
  • Последнее установленное ядро не загружается
  • Последовательная консоль и последовательный интерфейс GRUB настроены неправильно или отсутствуют
  • Повреждена установка GRUB/EFI или конфигурация

Действия ALAR

Fstab

Это действие удаляет все строки в файле /etc/fstab , которые не требуются для загрузки системы. Во-первых, для справки создается копия исходного файла. При запуске ОС администратор может изменить fstab, чтобы исправить ошибки, которые ранее не позволяли перезагрузке системы.

Дополнительные сведения о проблемах с неправильным файлом /etc/fstab см. в статье Устранение неполадок при запуске виртуальной машины Linux из-за ошибок fstab.

Ядра

Это действие изменяет ядро по умолчанию. Скрипт заменяет неработаемое ядро ранее установленной версией.

Дополнительные сведения о сообщениях, которые могут быть зарегистрированы в последовательной консоли для событий запуска, связанных с ядром, см. в статье Восстановление виртуальной машины Linux Azure после проблем, связанных с загрузкой ядра.

Initrd

Это действие можно использовать для исправления initrd или initramfs, которые либо повреждены, либо созданы неправильно.

Чтобы правильно получить initrd или initramfs, добавьте модули hv_vmbus, hv_netvscи hv_storvsc в образ.

Проблемы, связанные с запуском Initrd, могут выглядеть как следующие зарегистрированные симптомы.

Не синхронизация VFSНе найден рабочий инициализация

В обоих случаях следующие сведения регистрируются перед записью ошибок.

Сбой распаковки

serialconsole

Это действие исправляет неправильную или неправильно сформированную конфигурацию последовательной консоли для ядра Linux или GRUB. Рекомендуется выполнять это действие в следующих случаях:

  • Меню GRUB не отображается при запуске виртуальной машины.
  • Сведения об операционной системе не записываются в последовательную консоль.

grubfix

Это действие можно использовать для переустановки GRUB и повторного создания файла grub.cfg .

efifix

Это действие можно использовать для переустановки необходимого программного обеспечения для загрузки с виртуальной машины 2-го поколения. Файл grub.cfg также повторно создается.

auditd

Если виртуальная машина завершает работу сразу после запуска из-за конфигурации управляющей программы аудита, используйте это действие. Это действие изменяет конфигурацию управляющей программы аудита (в файле /etc/audit/auditd.conf ), изменяя HALT значение, настроенное для любых action параметров, на SYSLOG, что не приводит к принудительному завершению работы системы. Если в среде диспетчера логических томов (LVM) логический том, содержащий журналы аудита, заполнен и в группе томов есть свободное место, логический том также будет увеличен на 10 % от текущего размера. Однако если вы не используете среду LVM или свободного места нет, изменяется только файл конфигурации.

Использование ALAR

Скрипты ALAR используют команду repair extension run и ее --run-id параметр. Значение параметра --run-id для автоматического восстановления равно linux-alar2. Чтобы исправить виртуальную машину Linux с помощью скрипта ALAR, выполните следующие действия.

  1. Создайте виртуальную машину для спасения:

    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. Запустите скрипт с одним из действий ALAR на виртуальной машине спасения:

    az vm repair run --verbose -g RG-NAME -n VM-NAME --run-id linux-alar2 --parameters ACTION --run-on-repair
    
  3. Переключите диски ОС и удалите временные ресурсы:

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

    Примечание.

    Исходный и новый диски не будут удалены.

Ниже приведены объяснения параметров в приведенных выше командах.

  • RG-NAME: имя группы ресурсов, содержащей неработающую виртуальную машину.

  • VM-NAME: имя неработаемой виртуальной машины.

  • RESCUE-UID: пользователь, созданный на виртуальной машине восстановления для входа. Это эквивалент пользователя, созданного на новой виртуальной машине в портал Azure.

  • RESCUE-PASS: пароль для RESCUE-UID, заключенный в одинарные кавычки. Пример: 'password!234'.

  • DISK-COPY: имя копии диска ОС, которая будет создана из неработающей виртуальной машины.

  • ACTION: задача, выполняемая с помощью скрипта, например initrd или fstab.

    Примечание.

    Можно передать одну или несколько операций восстановления. Для нескольких операций разграничьте их с помощью запятых без пробелов, например fstab,initrd.

Ограничение

Классические виртуальные машины не поддерживаются.

Дальнейшие действия

Если вы испытываете ошибку или хотите запросить улучшение средства ALAR, опубликуйте комментарий на GitHub.

Последние сведения о средстве ALAR также можно найти на сайте GitHub.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.