Огляд процесу завантаження та усунення несправностей CentOS 7 і RHEL 7

У цій статті описується процес завантаження систем CentOS/RHEL 7.x. Хоча він може залишатися схожим на попередні випуски, з RHEL 7 впроваджується systemd. На додаток до процесу завантаження, я надам поради та підказки щодо усунення несправностей.

Вам потрібно зрозуміти процес завантаження, перш ніж ви зможете активно вирішувати проблему під час завантаження. Перегляньте наведені нижче кроки, поки не ознайомитеся з процесом.

Огляд високого рівня

  • Потужність + пост.
  • Пошук прошивки пристрою.
  • Прошивка читає завантажувач.
  • Завантажувач завантажує конфігурацію (grub2).
  • Завантажувач завантажує ядро ​​та initramfs.
  • Завантажувач передає управління ядру.
  • Ядро ініціалізує обладнання + виконується /sbin/initяк pid 1.
  • Systemd виконує всі цілі initrd (монтує файлову систему на /sysroot).
  • Кореневий FS ядра перейшов з initramfs root ( /sysroot) на rootfs ( /), а systemd повторно виконується як версія системи.
  • Systemd шукає ціль за замовчуванням і запускає/зупиняє одиниці, як налаштовано, при автоматичному вирішенні залежностей і з'являється сторінка входу.

Для отримання додаткової інформації про процес завантаження зверніться до офіційної документації ОС для вашої системи.

Цілі Systemd

Цілі - це в основному перевірки залежностей. Вони мають конфігурацію «до» і «після», які саме послуги потрібні для досягнення цієї мети. Наприклад: arp.ethernet.service, firewalld.service, і так далі потрібно запустити і працювати, перш ніж network.targetможна буде досягти. Якщо він не досягнутий, такі служби, як httpd, nfs, і ldapне можуть бути запущені. У RHEL/CentOS 7 можна встановити 4 цілі.

  • graphical.target (інтерфейс графічного інтерфейсу)
  • multi-user.target (багатокористувацький режим, текстовий вхід)
  • rescue.target (підказка sulogin, базова ініціалізація системи)
  • emergency.target (підказка sulogin, опорна точка initramfs завершена і кореневий корень системи змонтовано на / як тільки для читання)

Щоб переглянути поточну ціль завантаження за замовчуванням, скористайтеся наступним:

systemctl get-default

Майте на увазі, що ви можете змінити це під час виконання, ізолюючи ціль. Це запустить/зупинить усі служби, пов’язані з новою метою, тому будьте обережні (див. systemctl isolate new.target).

Однокористувацький режим

Бувають випадки, коли вам потрібно буде завантажитися в режимі одного користувача, щоб вирішити проблему з операційною системою. Для цього прикладу я покажу вам, як використовувати rescue.target«однокористувацький режим» на RHEL/CentOS 7.

  1. Перервіть меню grub2, натиснувши «e», щоб відредагувати, коли з’явиться запит меню grub.
  2. Знайдіть рядок, який визначає версію ядра ( vmlinuz ) і додайте до нього наступне:systemd.unit=rescue.target
  3. Натисніть «Ctrl+x», щоб почати.
  4. Після цього вам буде запропоновано ввести пароль root для продовження. Після виходу з командної оболонки процес завантаження продовжить завантажувати вашу цільову сторінку за замовчуванням.

Відновлення пароля root

Цей процес трохи відрізняється від того, що ми використовували в попередніх випусках, але це просте завдання і вимагає дуже кількох кроків для цього. Якщо вам потрібно відновити будь-які облікові дані, ви можете використовувати цей метод для отримання доступу до віртуальної машини. Ви все ще можете завантажуватися з живого компакт-диска, монтувати кореневу файлову систему та редагувати пароль, але цей метод застарілий і вимагає більше зусиль.

  1. Перезавантажте систему.
  2. Перервіть меню grub2, натиснувши «e», щоб відредагувати, коли з’явиться запит меню grub.
  3. Перемістіть курсор в кінець рядка, який визначає ядро ​​( vmlinuz ). Ви можете видалити всі інші консолі, крім TTY0, однак цей крок може не знадобитися у вашому середовищі.
  4. Додайте rd.break( без лапок ), який порушить процес завантаження безпосередньо перед тим, як елемент керування буде передано з initramfs до фактичної системи.
  5. Ctrl+x для завантаження.

На цьому етапі представлена ​​коренева оболонка з кореневою файловою системою, змонтованою в режимі лише для читання на /sysroot. Нам потрібно буде перемонтувати його з привілеями на запис.

Перемонтуйте /sysroot.

# mount -oremount,rw /sysroot

Перейти до в'язниці chroot.

# chroot /sysroot

Змініть пароль для користувача, у якого є застарілі облікові дані.

# passwd <username>

Якщо ви використовуєте SElinux, вам слід розглянути можливість перемаркування всіх файлів перед продовженням процесу завантаження. Цю частину можна пропустити, якщо ви не використовуєте SElinux.

# touch /.autorelabel

Двічі вийдіть, і система завантажиться з точки, коли ми її перервали.

Перегляд журналів попередніх завантажень

Може бути корисним переглядати журнали попередніх невдалих спроб завантаження. Якщо журнали були зроблені постійними (як правило, зберігаються в пам’яті та вивільняються під час завантаження), це можна зробити за допомогою journalctlінструмента. Виконайте ці дії, якщо вам потрібно налаштувати постійний журнал завантаження.

Як root створіть файл журналу для збереження цієї інформації.

# mkdir -p 2775 /var/log/journal && chown :systemd-journal /var/log/journal
# systemctl restart systemd-journald

Щоб перевірити журнали попереднього завантаження, використовуйте -bпараметр з journalctl. Без будь-яких аргументів -bфільтруватиме вихід лише до повідомлень, що стосуються останнього завантаження. Від’ємне число для цього аргументу буде відфільтровано під час попередніх завантажень. Наприклад:

# journalctl -b-1 -p err

Це покаже вам журнали помилок під час завантаження, які виникли до останнього. Вам слід змінити числове значення, щоб відображати завантаження, яке потрібно переглянути.

Виправлення помилок диска та файлової системи

Однією з найпоширеніших помилок під час завантаження є неправильно налаштований /etc/fstabфайл. Ви НЕ МОЖЕТЕ використовувати rescue.targetдля виправлення /etc/fstabпомилки. Більшість із цих проблем вимагатиме від нас використання, emergency.targetоскільки «порятунок» вимагає більш функціональної системи.

Нижче наведено приклади проблем, які вимагають emergency.target:

  1. Пошкоджена файлова система.
  2. Неіснуючий UUID у /etc/fstab.
  3. Неіснуюча точка монтування в /etc/fstab.
  4. Неправильний варіант монтування в /etc/fstab.

Важливо : Після редагування /etc/fstabфайлу в екстреному режимі ви повинні виконати наступне для заходів безпеки:

# systemctl daemon-reload

Ось покроковий приклад. Ми збираємося завантажитися в аварійний режим, щоб видалити помилковий запис у /etc/fstab.

  1. Перервіть меню grub2, натиснувши «e», щоб відредагувати, коли з’явиться запит меню grub.
  2. Знайдіть рядок, який визначає версію ядра ( vmlinuz ) і додайте до нього наступне:systemd.unit=emergency.target
  3. Натисніть «Ctrl+x», щоб завантажитися.
  4. Вам буде запропоновано ввести пароль root для продовження.
  5. Перемонтуйте, /щоб ми могли внести зміни до fstabфайлу:# mount -oremount,rw /
  6. Ми можемо використовувати mountкоманду, щоб побачити, який запис викликає помилку:# mount -a
  7. Видаліть з fstabфайлу порушний запис .
  8. Скористайтеся mount -aще раз, щоб переконатися, що помилку вирішено.
  9. Використовуйте, systemctl daemon-reloadяк я згадував раніше, для перезавантаження всіх файлів модулів і відтворення всього дерева залежностей.

Після того, як ви вийдете з аварійної оболонки, система завершить завантаження з аварійної цілі, після чого ви зможете продовжити як зазвичай з цього моменту. Цей приклад був просто використаний, щоб показати вам процес використання аварійної цілі для внесення постійних змін до файлів у системі.

Проблеми із завантажувачем Grub 2

Цей /boot/grub2/grub.cfgфайл є основним файлом конфігурації. НЕ редагуйте цей файл вручну. Замість цього використовуйте grub2-mkconfigдля створення нової конфігурації grub2, використовуючи набір різних файлів конфігурації та список встановлених ядер. grub2-mkconfigКоманда буде дивитися на /etc/default/grubваріанти , такі як тайм - аут меню по замовчуванням і ядра командного рядка для використання, а потім використовувати набір скриптів в /etc/grub.d/для створення результуючого файлу конфігурації.

Ось текстова діаграма цього зв’язку.

/boot/grub2/grub.cfg
               |
               |__________________
               |                  |
         /etc/default/grub         /etc/grub.d/*

Важливо: щоб відредагувати основний файл grub.cfg, вам потрібно буде внести потрібні зміни /etc/default/grubу файли та у файли, /etc/grub.d/а потім створити новий, grub.cfgвиконавши:

# grub2-mkconfig > /boot/grub2/grub.cfg

Усунення несправностей grub

Важливо зрозуміти синтаксис /boot/grub2/grub.cfgфайлу перед усуненням несправностей.

  • По-перше, записи для завантаження кодуються всередині блоків «menuentry». У цих блоках linux16і initrd16рядки вказують на ядро, яке потрібно завантажити з диска (разом з командним рядком ядра), і initramfs, які потрібно завантажити. Під час інтерактивного редагування під час завантаження для пошуку цих рядків використовується вкладка.
  • Рядки «set root» всередині цих блоків не вказують на кореневу файлову систему для системи RHEL/CentOS 7, а натомість вказують на файлову систему, з якої grub2 має завантажувати файли ядра та initramfs. Синтаксис , harddrive.partitionде hd0перший жорсткий диск в системі і hd1є другим. Розділи вказуються як msdos1для першого розділу MBR або gpt1для першого розділу GPT.

Приклад з /boot/grub2/grub.cfg:

### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (3.10.0-514.26.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-514.el7.x86_64-advanced-a2531d12-46f8-4a0f-8a5c-b48d6ef71275' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1'  123455ae-46f8-4a0f-8a5c-b48d6ef71275
    else
      search --no-floppy --fs-uuid --set=root 123455ae-46f8-4a0f-8a5c-b48d6ef71275
    fi

Якщо вам потрібно повторно встановити завантажувач на пристрої, скористайтеся такою командою.

# grub2-install <device>

Виправлення зламаної установки grub

Для випадків, коли система не завантажиться після переходу до меню grub2.

  • Ви повинні почати з редагування меню grub і пошуку синтаксичних помилок. Якщо ви знайдете його, виправте його та запустіть систему, щоб постійно вносити зміни, щоб усунути проблему.
  • Якщо ви не можете знайти жодних помилок, зверніться до розділу вище, де ми завантажуємо аварійну ціль. Вам потрібно буде знову перемонтувати root ( /).
  • Перегляньте поточну конфігурацію grub2 за допомогою такої команди: # grub2-mkconfig
  • Якщо ви не бачите жодних помилок, ймовірно, хтось редагував /boot/grub2/grub.cfgфайл. Не змінюйте цей файл. Перебудуйте конфігурацію за допомогою такої команди:# grub2-mkconfig > /boot/grub2/grub.cfg

Після того, як ви перебудували конфігурацію grub, ви зможете перезавантажитися без будь-яких проблем.


Створення мережі серверів Minecraft за допомогою BungeeCord на Debian 8, Debian 9 або CentOS 7

Створення мережі серверів Minecraft за допомогою BungeeCord на Debian 8, Debian 9 або CentOS 7

Що вам знадобиться Vultr VPS з принаймні 1 Гб оперативної пам’яті. Доступ по SSH (з правами root/адміністратора). Крок 1: Встановлення BungeeCord Перш за все

Підвищте продуктивність за допомогою Z і Zsh на CentOS

Підвищте продуктивність за допомогою Z і Zsh на CentOS

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

Налаштуйте кластер RethinkDB на CentOS 7

Налаштуйте кластер RethinkDB на CentOS 7

Вступ RethinkDB — це база даних NoSQL, яка зберігає дані як документи JSON. Він має надзвичайно інтуїтивно зрозумілу мову запитів і має загальнодоступні функції i

Встановіть DirectAdmin на CentOS 6 або 7

Встановіть DirectAdmin на CentOS 6 або 7

DirectAdmin — це запатентована веб-панель керування, яку можна встановити на своєму сервері, яка пропонує різноманітні функції системного адміністрування. У цьому

Огляд процесу завантаження та усунення несправностей CentOS 7 і RHEL 7

Огляд процесу завантаження та усунення несправностей CentOS 7 і RHEL 7

У цій статті описується процес завантаження систем CentOS/RHEL 7.x. Хоча він може залишатися схожим на попередні випуски, з RHEL 7, systemd є

Встановіть PostgreSQL на CentOS 7

Встановіть PostgreSQL на CentOS 7

Вступ PostgreSQL — це найдосконаліша у світі система управління реляційними базами даних (RDBMS) з відкритим кодом. Він відповідає стандартам ANSI SQL:2008

Основи керування користувачами в системах CentOS

Основи керування користувачами в системах CentOS

Керування користувачами може бути складним завданням: від щоденного обслуговування, ризиків безпеки та відсутності ретельної онлайн-документації. Ця стаття допоможе вам почати

Налаштуйте медіасервер Red5 на CentOS 7

Налаштуйте медіасервер Red5 на CentOS 7

Використання іншої системи? Red5 — це медіасервер із відкритим вихідним кодом, реалізований на Java, який дозволяє запускати багатокористувацькі програми Flash, такі як прямі трансляції

Початкове налаштування сервера CentOS 7

Початкове налаштування сервера CentOS 7

Вступ Нещодавно активований сервер CentOS 7 має бути налаштований, перш ніж його можна буде використовувати як робочу систему. У цій статті найголовніше

Перевірте швидкість Інтернету за допомогою Speedtest-cli на CentOS

Перевірте швидкість Інтернету за допомогою Speedtest-cli на CentOS

Вступ У цьому підручнику встановіть Speedtest-cli, щоб перевірити швидкість мережі вашого сервера. Speedtest-cli — це інтерфейс командного рядка для th

Установіть середовище GUI на CentOS 6

Установіть середовище GUI на CentOS 6

Управління сервером лише за допомогою SSH може бути страшним. Добре для нас те, що у Vultr є параметр View Console. Щоб повністю використовувати консоль Vultrs VNC

Налаштувати часовий пояс і NTP на CentOS 6

Налаштувати часовий пояс і NTP на CentOS 6

Вступ Для адміністраторів серверів важливо правильно встановити та підтримувати час на серверах. Неправильно налаштований час спричинить хаос усередині

Як встановити Foreman на CentOS 7

Як встановити Foreman на CentOS 7

Використання іншої системи? Foreman — це безкоштовний інструмент з відкритим вихідним кодом, який допоможе вам налаштувати та керувати фізичними та віртуальними серверами. Предварня

Захист і зміцнення ядра CentOS 7 за допомогою Sysctl

Захист і зміцнення ядра CentOS 7 за допомогою Sysctl

Вступ Sysctl дозволяє користувачеві точно налаштувати ядро ​​без необхідності перебудовувати ядро. Він також негайно застосує зміни, таким чином сервер виграв

Використовуйте Nethogs для моніторингу використання пропускної здатності мережі

Використовуйте Nethogs для моніторингу використання пропускної здатності мережі

У цьому підручнику ми розглянемо процес встановлення та використання nethogs на CentOS 6x x64. nethogs — це інструмент моніторингу мережі, який дозволяє Networ

Встановіть CentOS Web Panel (CWP) на CentOS 6

Встановіть CentOS Web Panel (CWP) на CentOS 6

CentOS Web Panel або CWP — це панель керування хостингом з відкритим кодом, яка призначена для швидкого та легкого керування сервером. Він включає в себе всі функції o

Налаштуйте Zarafa і Yaffas на CentOS 6

Налаштуйте Zarafa і Yaffas на CentOS 6

Існує багато рішень, які замінюють Microsoft Exchange рішенням для Linux, але в усіх була одна проблема, яка мені дуже не сподобалася. Коли отримаю

Як встановити Apache Maven 3.5 на CentOS 7

Як встановити Apache Maven 3.5 на CentOS 7

Apache Maven — це безкоштовний інструмент управління проектами програмного забезпечення з відкритим вихідним кодом, який широко використовується для розгортання програм на основі Java. Передумови A newl

Як встановити та налаштувати Concourse CI на CentOS 7

Як встановити та налаштувати Concourse CI на CentOS 7

Використання іншої системи? Вступ Постійна інтеграція – це практика розробки програмного забезпечення DevOps, яка дозволяє розробникам часто об’єднувати

Розгортання серверного сервера Glowing Bear на CentOS 7

Розгортання серверного сервера Glowing Bear на CentOS 7

Glowing Bear — це веб-інтерфейс для клієнта WeeChat IRC і прагне бути сучасним інтерфейсом. Завдяки таким функціям, як клік, щоб згадати, замінити смайли

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

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

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше