Устранение неполадок с загрузкой виртуальной машины Linux из-за ошибок fstab
Примечание.
CentOS, упоминаемая в этой статье, является дистрибутивом Linux и достигнет конца жизненного срока (EOL). Рассмотрите возможность использования и спланируйте соответствующие планы. Дополнительные сведения см. в руководстве по окончании жизненного циклов CentOS.
Таблица файловой системы Linux fstab — это таблица конфигурации, которая предназначена для настройки правил, в которых определенные файловые системы обнаруживаются и подключаются упорядоченным образом во время загрузки системы. В этой статье рассматривается несколько условий, при которых неправильная конфигурация fstab может привести к проблеме с загрузкой, и приводятся рекомендации по устранению неполадок.
Ниже перечислены некоторые распространенные причины, которые могут привести к проблемам с загрузкой виртуальной машины из-за неправильной настройки fstab:
- Вместо универсального уникального идентификатора (UUID) файловой системы используется традиционное имя файловой системы.
- Используется неправильный UUID.
- Запись существует для неподключаемого устройства без
nofail
параметра в конфигурации fstab. - Неправильная запись в конфигурации fstab.
Выявление проблем с fstab
Проверьте текущее состояние загрузки виртуальной машины в последовательном журнале в колонке [Boot диагностика] (/azure/virtual-machines/boot-диагностика#boot-диагностика-view) в портал Azure. Виртуальная машина будет находиться в аварийном режиме. Вы увидите записи журнала, похожие на следующий пример, что приводит к состоянию режима чрезвычайной ситуации:
[K[[1;31m TIME [0m] Timed out waiting for device dev-incorrect.device.
[[1;33mDEPEND[0m] Dependency failed for /data.
[[1;33mDEPEND[0m] Dependency failed for Local File Systems.
…
Welcome to emergency mode! After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again to boot into default mode.
Give root password for maintenance
(or type Control-D to continue)
Примечание.
"/data" — это пример используемой точки подключения. Сбой зависимостей для точки подключения файловой системы будет отличаться в зависимости от используемых имен.
Решение
Существует 2 способа решения проблемы:
- Восстановление виртуальной машины в сети
- Восстановление виртуальной машины в автономном режиме
Восстановление виртуальной машины в сети
Использование последовательной консоли
- Подключитесь к последовательной консоли виртуальной машины из портал Azure.
- Для перенастройки fstab требуется ручной доступ к однопользовательским режиму. Действия могут отличаться в зависимости от типа используемой ОС Linux и доступа к корневой учетной записи. Следуйте документации по однопользовательским режимам , чтобы получить доступ к одному пользовательскому режиму для каждого поддерживаемого образа партнера Linux.
Действия по устранению неполадок с Fstab
После загрузки виртуальной машины в однопользовательском режиме. Используйте избранный текстовый редактор, чтобы открыть файл fstab.
vi /etc/fstab
Просмотрите перечисленные файловые системы в
/etc/fstab
. Каждая строка в файле fstab указывает файловую систему, подключенную при запуске виртуальной машины. Чтобы получить дополнительные сведения о синтаксисе файла fstab, выполнитеman fstab
команду . Чтобы устранить сбой загрузки, просмотрите запись для файловой системы, которая не удалось подключиться. Рекомендуется проверить каждую строку, чтобы убедиться, что она правильна как в структуре, так и в содержимом. Для правильного администрирования файла fstab следует учитывать несколько моментов:Поля в каждой строке разделяются вкладками или пробелами. Пустые строки игнорируются. Строки с номерным знаком (#) в качестве первого символа являются комментариями. Закомментированные строки могут оставаться в fstab-файле, но они не будут обработаны. Вместо удаления строк рекомендуется комментировать строки fstab, о которых вы не знаете.
Подключите диски данных на виртуальных машинах Azure с помощью UUID раздела файловой системы. Чтобы определить UUID файловой системы, выполните
blkid
команду . Для получения дополнительных сведений о синтаксисеman blkid
выполните команду . Пример записи UUID в fstab-файле:UUID=<UUID number here> /data xfs defaults,nofail 0 0
nofail
Используйте параметр в записях файловой системы (дисках данных), чтобы разрешить запуск даже после возникновения ошибок в разделах для соответствующих записей. Этотnofail
параметр позволяет убедиться, что виртуальная машина запускается, даже если файловая система повреждена или если она не существует при запуске.
Сохраните изменения в fstab-файле.
Рекомендуется использовать
mount -a
после внесения изменений в записи fstab. Это приведет к повторному запуску конфигурации fstab и уведомлению пользователей о любых существующих синтаксических или входных ошибках.После проверки синтаксиса и записей перезагрузите виртуальную машину с помощью приведенной ниже команды.
reboot -f
Если комментарий или исправление записей прошло успешно, система должна обратиться к запросу bash на портале. Проверьте, можно ли подключиться к виртуальной машине.
Примечание.
Вы также можете использовать команду CTRL+X, которая также перезагрузит виртуальную машину.
Восстановление виртуальной машины в автономном режиме
Если доступ к последовательной консоли виртуальной машины недоступен, альтернативным решением является восстановление виртуальной машины в автономном режиме. Существует два способа использовать автономный подход:
Использование автоматического восстановления Linux в Azure (ALAR)
Скрипты автоматического восстановления Linux Azure (ALAR) являются частью расширения для восстановления виртуальной машины, описанного в разделе Восстановление виртуальной машины Linux с помощью команд восстановления виртуальной машины Azure. ALAR описывает автоматизацию нескольких сценариев восстановления, включая /etc/fstab
проблемы.
Скрипты ALAR используют команду repair extension run
и ее --run-id
параметр. Идентификатор скрипта для автоматического восстановления: linux-alar2. Выполните следующие действия для автоматизации ошибок fstab с помощью автономного подхода ALAR:
az vm repair create --verbose -g centos7 -n cent7 --repair-username rescue --repair-password 'password!234' --copy-disk-name repairdiskcopy
az vm repair run --verbose -g centos7 -n cent7 --run-id linux-alar2 --parameters fstab --run-on-repair
az vm repair restore --verbose -g centos7 -n cent7
Примечание.
Имя группы ресурсов "centos7", имя виртуальной машины "cent7" и --copy-disk-name "repairdiskcopy" являются примерами, значения которых необходимо изменить соответствующим образом.
Скрипт восстановления fstab создает резервную копию исходного файла и удаляет все строки в файле /etc/fstab, которые не требуются для загрузки системы. После успешного запуска ОС снова измените fstab и исправьте ошибки, которые не позволяли перезагрузить систему.
Кроме того, после создания виртуальной машины восстановления изменения также можно реализовать, выполнив вход в виртуальную машину восстановления вручную, подключив подключенную копию диска ОС и внося изменения в файл fstab. Выполните действия, описанные в следующей статье:
- Создайте виртуальную машину восстановления с помощью
az vm repair create
команды . - Чтобы подключиться к файловой системе подключенного диска ОС на виртуальной машине спасения, следуйте подробным инструкциям по chroot.
- Затем выполните те же действия по устранению неполадок fstab , что и выше.
- После применения изменений можно использовать команду для
az vm repair restore
автоматического переключения диска ОС с исходной виртуальной машиной.
Использование ручного метода
Если и последовательная консоль, и подход ALAR невозможен или завершается сбоем, восстановление необходимо выполнить вручную. Выполните приведенные здесь действия, чтобы вручную подключить диск ОС к виртуальной машине восстановления и переключить диск ОС обратно на исходную виртуальную машину.
- Подключите диск ОС к виртуальной машине восстановления с помощью портал Azure
- Подключение диска ОС к виртуальной машине восстановления с помощью Azure CLI
После успешного подключения диска ОС к виртуальной машине восстановления следуйте подробным инструкциям по подключению к файловой системе подключенного диска ОС. Затем выполните действия по устранению неполадок fstab , чтобы внести соответствующие изменения в файл fstab проблемного диска ОС.
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по