Устранение ошибок загрузки виртуальной машины Azure Linux из-за изменений файловой системы

Опубликовано: 1 Марта, 2023
Устранение ошибок загрузки виртуальной машины Azure Linux из-за изменений файловой системы

В этой статье мы рассмотрим некоторые шаги, необходимые для исправления ошибки загрузки на виртуальной машине Azure Linux из-за ошибки подключения файловой системы. Мы рассмотрим некоторые из доступных вариантов, чтобы избежать этой проблемы. Содержимое этой статьи может помочь вам в изучении сертификации Linux (Red Hat или LCFS), а также облачным администраторам, которые управляют виртуальными машинами Linux в Microsoft Azure.

Мы можем использовать простой сценарий. Наша корпорация AP6 Enterprises планирует начать с инфраструктуры для поддержки Linux в Microsoft Azure. У нас высокая степень использования томов, которые добавляются, изменяются и удаляются из наших виртуальных машин Linux.

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

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

Текущая виртуальная машина Linux называется srv001, и мы добавили диск емкостью 32 ГБ, и этот диск был помечен disk000 (из-за отсутствия лучшего воображения).

После добавления нового диска с помощью портала Azure мы выполнили следующие шаги, чтобы создать новый раздел. Во-первых, мы перечисляем все текущие диски в операционной системе (пункт 1), и мы заметили, что новый диск — (пункт 2).

Мы выполнили утилиту , используя в качестве параметра новый диск (пункт 3). Мы начали создание нового раздела (пункт 4), определяемого как основной раздел (пункт 5), так как это первый раздел, который мы обозначили как таковой (пункт 6), в первом разделе мы оставили значения по умолчанию (пункт 7) и мы определили размер 10Gb (пункт 8). Мы написали все эти изменения (пункт 9).

Следующим шагом в устранении неполадок при загрузке виртуальной машины Azure Linux является форматирование только что созданного раздела (элемент 1) и создание папки, в которую мы будем подключать раздел (элемент 2) и куда приложение будет ссылаться для хранения данных.

Простой тест — смонтировать раздел перед фиксацией изменений в файле /etc/fstab. Следует помнить одно важное замечание: (где X — буква, связанная с диском) может сместиться при перемещении дисков. Настоятельно рекомендуется использовать UUID дисков вместо их адреса /dev/<disk/partition>.

После монтирования диска запустите blkid (элемент 1) и скопируйте UUID (элемент 2) нужных дисков и используйте эту информацию в файле /etc/fstab.

Результат суммирован на картинке ниже. Начнем с проверки содержимого файла (пункт 1), и мы заметим только что добавленную строку в файл (пункт 2). Поскольку машина перезагрузилась, мы можем проверить все смонтированные файловые системы с помощью df -h (пункт 3). Действительно, мы видим, что диск смонтирован на .

Мы вносим хаос!

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

Решение 1. Исправление /etc/fstab

По умолчанию, когда диск не может быть смонтирован, выдается ошибка, и система автоматически переходит в режим восстановления. Если вы проверите консоль сервера Linux, для продолжения будет запрошен пароль root.

Если у вас нет пароля root, ознакомьтесь с моей предыдущей статьей, в которой рассматривается именно этот сценарий на виртуальных машинах Azure Linux.

После аутентификации в качестве root отредактируйте файл и устраните проблему. Есть несколько способов решить эту проблему. Во-первых, если диск больше не существует, например, отключенный диск, то удалите или закомментируйте строку. Во-вторых, если диск существует и есть опечатка, исправьте ее и сохраните файл.

После внесения изменений запустите systemctl reboot, чтобы перезапустить сервер Linux. Если в файле нет дополнительных ошибок, система запустится нормально.

Решение 2. Как избежать проблемы с параметром nofail

Возможно, вы захотите избежать проблемы еще до того, как она станет реальной проблемой. Если вы используете Red Hat или любой другой дистрибутив, который поддерживает или что-то подобное, мы можем принять этот метод в качестве стандартного при добавлении записей в файл .

В Red Hat добавьте nofail через запятую, кроме столбца . На изображении ниже мы добавили X к UUID и перезапустили сервер Linux. Linux-сервер перезагрузился без проблем, единственная проблема, по понятным причинам, в том, что файловая система не смонтировалась.

Этот обходной путь не решает проблему, из-за которой приложение не сможет использовать данные. Однако это всего лишь вопрос исправления файла в работающей системе. Этот подход намного проще с точки зрения эксплуатации.

После исправления файла /etc/fstab просто запустите mount -a. Система перечитает файл и смонтирует любой отсутствующий раздел. Эта процедура гарантирует, что у вас не будет такой же проблемы при следующем перезапуске.

Итак, как видите, исправить ошибки загрузки на виртуальной машине Azure Linux, вызванные изменениями файловой системы, не так уж и сложно.