У своїй роботі мені доводилося неодноразово стикатися з проблемою завантаження Linux в аварійному режимі з помилкою Welcome to emergency mode. Найчастіше проблема виникає при аварійному відключенні харчування на сервері, при краше системи або інших подібних впливах. У 90% випадків це помилка пов'язана з пошкодженням файлової системи Linux, яку можна вирішити.
У даній статті ми розглянемо варіанти вирішення подібної проблеми, їх може бути кілька.
зміст:
- Виправляємо помилки файлової системи за допомогою LiveCD
- Проблема з монтування в fstab
- Linux встановлений з USB флешки
- Dualboot конфігурація Windows і Linux
Виправляємо помилки файлової системи за допомогою LiveCD
Розглянемо приклад, коли у вас був якийсь збій на сервері, наприклад, аварійне відключення живлення і при завантаженні Linux сервера в remote console або vnc, ви бачите таку картину:
Welcome to emergency mode! After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or ^ D to try again boot into default mode. Give root password for maintained (or press Control-D to continue).Аварійний режим emergency mode забезпечує мінімально можливу середу Linux для відновлення система, якщо ОС не може увійти в режим відновлення (Rescue mode). В аварійному режимі система монтує кореневу файлову систему на для читання. Інші локальні файлові системи не монтуються, мережеві інтерфейси не піднімаються.
Якщо натиснути клавіші Control + D, то починається завантаження системи, але в кінцевому підсумку все повертається до того ж Emergency mode:
Щоб вирішити дану проблему, вам потрібно завантажитися на сервері з LiveCD або LiveUSB і використовувати утиліту SystemRescueCd. Я завантажив образ з утилітою systemrescuecd:
Тепер запустіть перевірку файлової системи сервера з виправленням всіх знайдених помилок за допомогою команди:
# Fsck -y / dev / sda1
- де sda1 ваш розділ диска.
Перевірку потрібно виконати з усіма розділами, після чого виконати рестарт системи і в більшості випадків, це вирішує вашу проблему.
Проблема з монтування в fstab
Другий варіант, який може статися, це пошкодження або некоректна конфігурація файлу fstab. У моєму випадку, при завантаженні з systemrescuecd і перевірки системи, проблем не було виявлено і це не допомогло. Але при відкритті fstab я побачив, в конфігурації немає розділів диска для монтування, а є тільки запис про завантажувальному диску:
Щоб вирішити питання, потрібно отримати UUID ваших дисків через утиліту blkid:
Після цього потрібно всі дані в fstab, зберегти і перезапустити сервер, якщо все зробили правильно, то сервер запуститися в звичайному режимі.
Linux встановлений з USB флешки
Так само в роботі були моменти, коли установкуLinux виробляли з установочного флеш-накопичувача і після рестарту сервера, ОС завантажувалася з помилкою "Welcome to emergency mode!". при перевірці fstab було виявлено, що цей флеш-накопичувач був прописаний в fstab як робочий розділ. В такому випадку допомагає видалення рядка з монтуванням і перезапуск системи. Як і в першому випадку, вам потрібно завантажитися з systemrescuecd і відкрити fstab. Швидше за все ви відразу побачите, що там є подібний розділ - / mnt / usb1:
Просто видаліть цей рядок, якщо ви тепер не використовуєте флеш-накопичувач.
Dualboot конфігурація Windows і Linux
Ще один з варіантів проблеми, помічений користувачами - це паралельне використання Windows і СentOS на одному комп'ютері. При завантаженні часто виникає помилка emergency mode при монтуванні розділів Windows. Звичайне рішення проблеми полягає у відключенні швидкого запуску Windows.
Щоб відключити швидкий запуск, перейдіть в меню Електроживлення -> Системні параметри і вибрати пункт «Зміна параметрів, які зараз недоступні».
Зніміть галочку в блоці «Включити швидкий запуск».
Збережіть зміни і запустіть ваш сервер. Після виконаних рекомендацій, CentOS повинен запуститися.
Якщо ви використовуєте LVM розділи, дана помилка так само може з'явитися, в цілому рішення проблеми схоже із звичайним розділом, потрібно перевірити fstab і виправити помилки, допущені в ньому.