Не удается загрузить виртуальную машину Linux Azure и ввести dracut экстренную оболочку
Область применения: ✔️ виртуальные машины Linux
Примечание.
CentOS, на который ссылается в этой статье, является дистрибутивом Linux и достигнет конца жизни (EOL). Думайте об использовании и планировании соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.
В этой статье приводятся решения проблемы, в которой виртуальная машина Azure Linux не может загружаться, так как файловая система операционной системы (ОС) недоступна из RAMdisk. Виртуальная машина приземляется в аварийной оболочке дрейка.
Предварительные требования
Убедитесь, что последовательная консоль включена и работает на виртуальной машине Linux.
Как определить проблему загрузки dracut
Чтобы определить проблему загрузки dracut, используйте портал Azure для просмотра выходных данных журнала последовательной консоли виртуальной машины в области загрузки диагностика, области последовательной консоли или с помощью AZ CLI.
Все виртуальные машины с проблемой загрузки будут приземляться в аварийной оболочке dracut или initramfs и будут отображаться в конце журнала последовательной консоли:
RHEL/CentOS/SLES/Oracle Linux:
[ 201.935612] dracut-initqueue[455]: Warning: dracut-initqueue timeout - starting timeout scripts [ 201.941153] dracut-initqueue[455]: Warning: Could not boot. Starting Setup Virtual Console... [[0;32m OK [0m] Started Setup Virtual Console. Starting Dracut Emergency Shell... Warning: /dev/mapper/rootvg-rootlv does not exist Generating "/run/initramfs/rdsosreport.txt" Entering emergency mode. Exit the shell to continue. Type "journalctl" to view system logs. You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot after mounting them and attach it to a bug report. dracut:/#
Ubuntu:
mdadm: No arrays found in config file or automatically done. Gave up waiting for root file system device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Missing modules (cat /proc/modules; ls /dev) ALERT! /dev/mapper/osencrypt does not exist. Dropping to a shell! BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.4) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs)
Сетевое устранение неполадок
Совет
Если у вас есть последняя резервная копия виртуальной машины, восстановите виртуальную машину из резервной копии , чтобы устранить проблему загрузки.
Последовательная консоль — это самый быстрый метод для устранения проблем. Это позволяет напрямую устранять проблему без необходимости представить системный диск виртуальной машине восстановления. Убедитесь, что вы соответствуете необходимым предварительным требованиям для распространения. Дополнительные сведения см. в последовательной консоли виртуальной машины для Linux.
Определите, приземляется ли виртуальная машина в аварийной оболочке dracut.
Попробуйте устранить проблему с помощью последовательной консоли Azure.
Примечание.
Не все проблемы можно устранить с помощью последовательной консоли Azure.
- Активируйте перезагрузку виртуальной машины (жесткой) из последовательной консоли.
- Прервать виртуальную машину в меню GRUB с помощью клавиши ESC .
- Выберите E , чтобы изменить первую запись ядра в меню GRUB.
- Перейдите к строке
linux16
, а затем проверьте и исправьте неправильное настройку GRUB следующим образом:- Неправильный путь к корневому устройству в файле конфигурации GRUB, неправильный UUID или имя корневого тома.
- Неправильный путь к устройству в файле конфигурации GRUB.
- Повторяющиеся параметры в файле конфигурации GRUB.
- Любой очевидный опечаток.
После изменения параметров GRUB вручную нажмите клавиши CTRL+X, чтобы загрузить виртуальную машину.
Любые изменения, выполненные на этом этапе, являются непрекращаемыми изменениями. Если виртуальная машина может загрузиться, устраните эту проблему в файле конфигурации GRUB или повторится.
После восстановления виртуальной машины исправьте проблемы конфигурации в
/etc/default/grub
файле конфигурации и обновите конфигурацию GRUB. Для этого см . раздел "Переустановка GRUB" и повторное создание файла конфигурации GRUB.Перезагрузите виртуальную машину, чтобы обеспечить возможность загрузки без вмешательства вручную.
Автономное устранение неполадок
Совет
Если у вас есть последняя резервная копия виртуальной машины, восстановите виртуальную машину из резервной копии , чтобы устранить проблему загрузки.
Если последовательная консоль Azure не работает на конкретной виртуальной машине или не является вариантом в вашей подписке, устраните эту проблему с помощью виртуальной машины спасения и восстановления. Используйте команды восстановления виртуальной машины для создания виртуальной машины с копией подключенного диска операционной системы затронутой виртуальной машины. Подключите копию файловых систем ОС на виртуальной машине восстановления с помощью chroot.
Примечание.
Кроме того, можно создать виртуальную машину спасения вручную с помощью портал Azure. Дополнительные сведения см. в статье "Устранение неполадок виртуальной машины Linux путем подключения диска ОС к виртуальной машине восстановления с помощью портал Azure".
Чтобы устранить определенные проблемы, перейдите к следующим разделам:
- Не удается загрузить зашифрованную виртуальную машину ADE, так как VFAT отключен.
- Отсутствуют драйверы Hyper-V.
- Неправильное настройку GRUB.
- Неправильный путь к корневому устройству в файле конфигурации GRUB.
- Неправильный путь к устройству в файле конфигурации GRUB.
- Повторяющиеся параметры в файле конфигурации GRUB.
- Повреждение корневой файловой системы.
- Проблемы с активацией LVM.
- Корневая секция отсутствует.
- Повреждение initrd или initramfs.
После устранения проблемы загрузки dracut/initramfs выполните следующие действия:
- Выход из chroot.
- Отключите копию файловых систем из виртуальной машины спасения и восстановления.
az vm repair restore
Выполните команду, чтобы переключить восстановленный диск ОС на исходный диск ОС виртуальной машины. Дополнительные сведения см. в шаге 5 в разделе "Восстановление виртуальной машины Linux" с помощью команд восстановления виртуальной машины Azure.- Проверьте, может ли виртуальная машина загрузиться, взглянув на последовательную консоль Azure или попытаясь подключиться к виртуальной машине.
Не удается загрузить зашифрованную виртуальную машину ADE, так как VFAT отключена
Дополнительные сведения см. в статье об ошибке загрузки зашифрованных виртуальных машин ADE.
Отсутствуют драйверы Hyper-V
Если драйверы Hyper-V, включенные в ядро Linux всех современных дистрибутивов Linux, отключены, повторно включите их и повторно создайте образ initramfs/initrd. Дополнительные сведения см. в разделе "Сценарий 3. Другие драйверы Hyper-V отключены".
Если виртуальная машина является Red Hat и перенесена из локальной среды, включите необходимые драйверы Hyper-V в образе initramfs. Дополнительные сведения см. в статье Драйвер Hyper-V не может быть включен в начальный диск ОЗУ при использовании гипервизора, отличного от Hyper-V.
Неправильное настройка GRUB
Параметр rd.break
заставляет виртуальную машину загружаться в аварийной оболочке dracut. Убедитесь, что этот параметр не закодирован в файле конфигурации GRUB.
Неправильный путь к корневому устройству в файле конфигурации GRUB
Проверьте правильность корневого пути root=/dev/***
в файле конфигурации GRUB. Убедитесь, что используется правильный путь устройства.
Если вы находитесь внутри chroot в виртуальной машине восстановления и спасения:
- Выполните шаг 1 в автономном режиме устранения неполадок.
/etc/default/grub
Проверьте файл,GRUB_CMDLINE_LINUX
запись и найдитеroot=
параметр, если он жестко закодирован в файле конфигурации.- Переустановите GRUB и повторно создайте файл конфигурации GRUB.
Если вы находитесь в последовательной консоли Azure:
- Выполните шаг 3 в интернете по устранению неполадок.
linux16
Проверьте строку, а затем найдитеroot=
параметр и исправьте его.- Нажмите клавиши CTRL+X, чтобы загрузить виртуальную машину.
- После успешной загрузки виртуальной машины измените
/etc/default/grub
файл, исправьтеroot
параметр и обновите файл конфигурации GRUB, как описано в разделе "Переустановка GRUB" и повторное создание файла конфигурации GRUB.
Во время этой проверки убедитесь в следующих вещах:
- В виртуальных машинах Ubuntu с шифрованием ОС убедитесь, что имя устройства равно
/dev/mapper/osencrypt
. - В виртуальных машинах с логическим диспетчером томов (LVM) на диске ОС корневой том находится
/dev/mapper/rootvg-rootlv
. Тот же путь используется в виртуальных машинах RHEL с зашифрованным диском ОС ADE. - Убедитесь, что имена устройств в форме
/dev/sdX
используются, так как они изменятся во время перезагрузки, и они не сохраняются в Linux. Дополнительные сведения см. в разделе "Устранение неполадок с именем устройства виртуальной машины Linux". - Если используются идентификаторы UUID, убедитесь, что используется правильный UUID корневой файловой системы и синтаксис.
root=UUID=xxx-yyy-zzz
Неправильный путь к устройству переключения в файле конфигурации GRUB
В этом сценарии виртуальная машина завершает процесс загрузки и вводит оболочку аварийного реагирования dracut с ошибкой, аналогичной следующей:
[ 188.000765] dracut-initqueue[324]: Warning: /dev/VG/SwapVol does not exist
Starting Dracut Emergency Shell...
Warning: /dev/VG/SwapVol does not exist
В этом примере для файла конфигурации GRUB задается загрузка логического тома (LV) в качестве переключения с параметром rd.lvm.lv=VG/SwapVol
. Однако виртуальная машина не может найти этот LV во время загрузки.
Важно отметить, что использование устройства подкачки таким образом на виртуальных машинах Linux в Azure не рекомендуется. Дополнительные сведения см. в статье "Создание ФАЙЛА SWAP" для виртуальной машины Linux Azure.
Чтобы устранить эту проблему, найдите путь rd.lvm.lv=VG/SwapVol
к буферу в файле конфигурации GRUB (/etc/default/grub
) и удалите его. Для этого используйте один из следующих методов.
Если вы находитесь внутри chroot в виртуальной машине восстановления и спасения:
- Выполните шаг 1 в автономном режиме устранения неполадок.
- Измените файл, перейдите
/etc/default/grub
кGRUB_CMDLINE_LINUX
записи, найдитеrd.lvm.lv=VG/SwapVol
параметр и удалите его из конфигурации. - Переустановите GRUB и повторно создайте файл конфигурации GRUB.
Если вы находитесь в последовательной консоли Azure:
- Выполните шаг 3 в интернете по устранению неполадок.
- Перейдите к строке, начиная с
linux
, найдитеrd.lvm.lv=VG/SwapVol
параметр и удалите его. - Нажмите клавиши CTRL+X, чтобы загрузить виртуальную машину.
- После успешной загрузки виртуальной машины измените
/etc/default/grub
файл, удалитеrd.lvm.lv=VG/SwapVol
параметр, а затем обновите файл конфигурации GRUB, как описано в разделе "Переустановка GRUB" и повторное создание файла конфигурации GRUB.
Повторяющиеся параметры в файле конфигурации GRUB
Проверьте наличие повторяющихся параметров в файле конфигурации GRUB:
Если вы находитесь внутри chroot в виртуальной машине восстановления и спасения:
- Выполните шаг 1 в автономном режиме устранения неполадок.
/etc/default/grub
Проверьте файл иGRUB_CMDLINE_LINUX
запись.- Найдите повторяющиеся параметры и удалите их.
- Обновите файл конфигурации GRUB. Дополнительные сведения см. в разделе "Переустановка GRUB" и повторное создание файла конфигурации GRUB.
Если вы находитесь в последовательной консоли Azure:
- Выполните шаг 3 в интернете по устранению неполадок.
linux16
Проверьте строку, найдите повторяющиеся параметры и удалите их.- Нажмите клавиши CTRL+X, чтобы загрузить виртуальную машину.
- После успешной загрузки виртуальной машины измените
/etc/default/grub
файл соответствующим образом, исправьте ранее выявленные проблемы конфигурации и обновите файл конфигурации GRUB, как описано в разделе "Переустановка GRUB" и повторное создание файла конфигурации GRUB.
Повреждение корневой файловой системы
Если корневая файловая система повреждена, не удается подключиться из образа initrd/initramfs.
Чтобы устранить повреждение корневой файловой системы, следуйте инструкциям из-за ошибок загрузки виртуальной машины Linux из-за ошибок файловой системы. Выполните восстановление файловой системы.
Проблемы с активацией LVM
Некоторые проблемы могут возникнуть при доступе к физическому тому LVM (PV), группе томов (VG) и (или) логическому тому (LV). Они не могут быть устранены из консоли Последовательной службы Azure. Чтобы устранить их, используйте виртуальную машину восстановления и спасения.
Выполните шаг 1 в автономном режиме устранения неполадок.
Чтобы определить проблемы, выполните следующие команды и просмотрите выходные данные команды.
Определите, какое устройство соответствует диску ОС, и проверьте, обнаружено ли оно в виде PV:
lsblk pvs
Проверьте, обнаружена ли виртуальная
rootvg
машина:vgs
Проверьте, обнаружен ли lv:
lvs
Устранение следующих распространенных ошибок LVM, которые вызывают проблемы с доступом к корневому тому:
Неизвестный PV, если vG rootvg VG имеет только один PV (это стандартная конфигурация Azure)
Секция, содержащая PV, неправильно удаляется, изменяется или создается. Чтобы устранить эту проблему, см . раздел "Корневой раздел" отсутствует.
Неизвестный PV при изменении и разделения корневой виртуальной машины на нескольких дисках
Наличие 2 PV В VG rootvg не является рекомендуемой конфигурацией. В этом сценарии диск данных может быть отсоединен от виртуальной машины, а логические тома rootvg больше недоступны. Чтобы устранить эту проблему, перезагрузите исходный диск на виртуальную машину и перезапустите его.
Если ПС невосстановлен, выполните восстановление из резервной копии.
Корневая секция отсутствует
Корневая файловая система может быть недоступна из-за некоторых проблем, возникающих на уровне секции во время операций изменения размера секции или других.
В этом сценарии, если вы задокументировали исходный макет таблицы секций с точными начальными и конечными секторами для каждой из исходных секций (и дальнейшие изменения не выполняются в системе, например при создании новых файловых систем), создайте секции с помощью того же исходного макета. Это можно сделать с помощью таких средств, как fdisk
(для таблиц секций MBR) или gdisk
(для таблиц секций GPT), чтобы получить доступ к недоступной файловой системе. Следуйте этой операции восстановления из виртуальной машины восстановления или спасения. Дополнительные сведения см. в разделе "Автономное устранение неполадок ".
Если этот подход не работает, рекомендуется выполнить восстановление из резервной копии.
Повреждение initrd или initramfs
Образ initrd/initramfs имеет некоторый уровень повреждения, что приводит к сбою подключения корневого тома и запуска процесса запуска ОС.
Чтобы устранить эту проблему, выполните следующие действия изнутри chroot в виртуальной машине восстановления и спасения:
- Выполните шаг 1 в автономном режиме устранения неполадок.
- Повторно создайте отсутствующие инициамфы вручную.
- Перезапустите виртуальную машину, чтобы подтвердить возможность загрузки.
Следующие шаги
Если конкретная ошибка загрузки не является проблемой dracut или initramfs, см. статью "Устранение неполадок с Виртуальные машины загрузки Azure Linux" для дальнейших параметров устранения неполадок.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.