Преглед на процеса на зареждане на CentOS 7 и RHEL 7 и отстраняване на неизправности

Тази статия описва процеса на зареждане за системи CentOS/RHEL 7.x. Въпреки че може да остане подобен на предишните версии, с RHEL 7 се въвежда systemd. В допълнение към процеса на зареждане, ще предоставя съвети и трикове за отстраняване на неизправности по пътя.

Трябва да разберете процеса на зареждане, преди да можете активно да отстранявате проблем при зареждане. Прегледайте стъпките по-долу, докато не се запознаете с процеса.

Преглед на високо ниво

  • Мощност + пост.
  • Търсене на устройство за фърмуер.
  • Фърмуерът чете bootloader.
  • Зареждащото устройство зарежда конфигурацията (grub2).
  • Зареждащото устройство зарежда ядрото и initramfs.
  • Boot loader предава контрола на ядрото.
  • Ядрото инициализира хардуера + се изпълнява /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не могат да бъдат стартирани. Има 4 цели, които могат да бъдат зададени в RHEL/CentOS 7.

  • graphical.target (GUI интерфейс)
  • 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 паролата

Този процес е малко по-различен от този, който сме използвали в предишни издания, но е проста задача и изисква много малко стъпки за това. Ако трябва да възстановите идентификационни данни, можете да използвате този метод за получаване на достъп до виртуална машина. Все още можете да стартирате от CD на живо, да монтирате главната файлова система и да редактирате паролата, но този метод е остарял и изисква повече усилия.

  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, които да бъдат заредени. По време на интерактивно редактиране при стартиране, за намиране на тези редове се използва tab.
  • Редовете "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, трябва да можете да рестартирате, без да имате проблеми.


Увеличете производителността със Z и Zsh на CentOS

Увеличете производителността със Z и Zsh на CentOS

Въведение Работата в Linux системи означава, че човек използва командния ред по-често, отколкото не. Трябва да въвеждате дълги имена на директории отново и отново

Настройте RethinkDB Cluster на CentOS 7

Настройте RethinkDB Cluster на 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 системи

Управлението на потребителите може да бъде трудна задача: от ежедневна поддръжка, рискове за сигурността и липса на задълбочена онлайн документация. Тази статия ще ви помогне да започнете

Първоначална настройка на сървър 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

Въведение За администраторите на сървъри е важно да задават и поддържат правилно времето на сървърите. Неправилно конфигурирано време ще предизвика хаос в рамките на th

Как да инсталирате Foreman на CentOS 7

Как да инсталирате Foreman на CentOS 7

Използване на различна система? Foreman е безплатен инструмент с отворен код, който ви помага с конфигурирането и управлението на физически и виртуални сървъри. Forema

Осигуряване и втвърдяване на ядрото на 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, но всички те имаха един проблем, който наистина не ми хареса. Когато получавам

Как да инсталирате и конфигурирате Concourse CI на CentOS 7

Как да инсталирате и конфигурирате Concourse CI на CentOS 7

Използване на различна система? Въведение Непрекъснатата интеграция е практика за разработка на софтуер DevOps, която позволява на разработчиците често да обединяват

Внедряване на Glowing Bear Backend сървър на CentOS 7

Внедряване на Glowing Bear Backend сървър на CentOS 7

Glowing Bear е уеб интерфейс за WeeChat IRC клиента и се стреми да бъде модерен интерфейс. Със своите функции като щракване за споменаване, заместване на емоджита

Как да надстроите CentOS 6 до CentOS 7

Как да надстроите CentOS 6 до CentOS 7

Как да надстроите CentOS 6 до CentOS 7

Защитете TMP и TMPFS на CentOS 6

Защитете TMP и TMPFS на CentOS 6

Временни директории като /tmp, /var/tmp и /dev/shm предлагат платформа за хакери да изпълняват скриптове и програми. Тези злонамерени изпълними файлове се използват t

Активирайте EPEL на CentOS

Активирайте EPEL на CentOS

Фон Fedoras Extra Packages for Enterprise Linux (EPEL) хранилище предоставя възможност за инсталиране на софтуерни пакети, които не са включени в

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

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 машини. Прочетете тази статия, за да научите повече