Преглед високог нивоа
Системд циљеви
Режим једног корисника
Опоравак роот лозинке
Прегледање дневника из претходних покретања
Поправљање грешака диска и система датотека
Проблеми са покретањем система са Груб 2
Отклањање проблема груб
Поправљање покварене инсталације грубе
Овај чланак описује процес покретања система ЦентОС/РХЕЛ 7.к. Иако може остати сличан претходним издањима, са РХЕЛ 7 се уводи системд. Поред процеса покретања, успут ћу вам пружити савете и трикове за решавање проблема.
Морате да разумете процес покретања пре него што можете активно да решите проблем при покретању. Прегледајте доле наведене кораке док се не упознате са процесом.
Преглед високог нивоа
- Снага + пост.
- Претрага уређаја за фирмвер.
- Фирмвер чита боотлоадер.
- Боот лоадер учитава конфигурацију (груб2).
- Боот лоадер учитава кернел и инитрамфс.
- Боот лоадер преноси контролу на кернел.
- Кернел иницијализује хардвер + извршава се
/sbin/initкао пид 1.
- Системд извршава све инитрд циљеве (монтира систем датотека на
/sysroot).
/sysrootКоренски ФС кернела је прешао са инитрамфс роот ( ) на систем роотфс ( /) и системд се поново извршава као верзија система.
- Системд тражи подразумевани циљ и покреће/зауставља јединице како су конфигурисане док се аутоматски решавају зависности и појављује се страница за пријаву.
За више информација о процесу покретања, погледајте званичну документацију ОС-а за ваш систем.
Системд циљеви
Циљеви су у основи провере зависности. Имају конфигурацију „пре“ и „после“ за тачно које услуге су потребне да би се испунио тај циљ. На пример: arp.ethernet.service, firewalld.service, и тако даље морају се покренути и радити пре него што network.targetсе до њих дође. Ако се не постигне, услуге као што су httpd, nfs, и ldapне могу се покренути. Постоје 4 циља која се могу подесити у РХЕЛ/ЦентОС 7.
- грапхицал.таргет (ГУИ интерфејс)
- мулти-усер.таргет (режим за више корисника, пријављивање засновано на тексту)
- ресцуе.таргет (сулогин промпт, основна иницијализација система)
- емергенци.таргет (сулогин промпт, инитрамфс пивот је завршен и роот система монтиран на / само за читање)
Да бисте видели тренутни подразумевани циљ покретања, користите следеће:
systemctl get-default
Имајте на уму да ово можете да промените током рада тако што ћете изоловати циљ. Ово ће покренути/зауставити све услуге повезане са новим циљем, зато будите опрезни (погледајте systemctl isolate new.target).
Режим једног корисника
Постоје тренуци када ћете морати да се покренете у режиму једног корисника да бисте решили проблем са оперативним системом. За овај пример, показаћу вам како да користите rescue.target„режим једног корисника“ на РХЕЛ/ЦентОС 7.
- Прекините груб2 мени притиском на "е" за уређивање када се од вас затражи груб мени.
- Пронађите линију која наводи верзију кернела ( вмлинуз ) и додајте јој следеће:
systemd.unit=rescue.target
- Притисните „Цтрл+к“ да бисте започели.
- Тада ће вам бити затражено да унесете роот лозинку да наставите, након што изађете из љуске за спасавање, процес покретања ће наставити да учитава ваш подразумевани циљ.
Опоравак роот лозинке
Овај процес је мало другачији од оног који смо користили у прошлим издањима, али је једноставан задатак и захтева врло мало корака да се то уради. Ако треба да повратите било какве акредитиве, можете користити овај метод за приступ ВМ-у. Још увек можете да покренете систем са ливе ЦД-а, монтирате основни систем датотека и уредите лозинку, али тај метод је застарео и захтева више труда.
- Поново покрените систем.
- Прекините груб2 мени притиском на "е" за уређивање када се од вас затражи груб мени.
- Померите курсор на крај реда који одређује језгро ( вмлинуз ). Можда ћете желети да уклоните све друге конзоле осим ТТИ0, али овај корак можда неће бити неопходан у вашем окружењу.
- Додати
rd.break( без наводника ) који ће прекинути процес покретања непосредно пре него што се контрола преда са инитрамфс-а на стварни систем.
- Цтрл+к за покретање.
У овом тренутку, приказана је основна љуска са основним системом датотека монтираним у режиму само за читање на /sysroot. Мораћемо да га поново монтирамо са привилегијама писања.
Ремоунт /sysroot.
# mount -oremount,rw /sysroot
Пребаците се у цхроот затвор.
# chroot /sysroot
Промените лозинку за корисника код кога имамо застареле акредитиве.
# passwd <username>
Ако користите СЕлинук, требало би да размислите о поновном означавању свих датотека пре него што наставите са процесом покретања. Овај део се може прескочити ако не користите СЕлинук.
# touch /.autorelabel
Изађите двапут и систем ће се чисто покренути од тачке на којој смо га прекинули.
Прегледање дневника из претходних покретања
Може бити корисно прегледати евиденцију претходних неуспешних покушаја покретања. Ако су евиденције дневника упорне (обично се чувају у меморији и ослобађају при покретању), то се може урадити помоћу journalctlалата. Следите ове кораке ако треба да подесите трајно евидентирање покретања.
Као роот, направите датотеку евиденције за чување ових информација.
# 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:
- Оштећен систем датотека.
- Непостојећи УУИД у
/etc/fstab.
- Непостојећа тачка монтирања у
/etc/fstab.
- Нетачна опција монтирања у
/etc/fstab.
Важно : Након уређивања /etc/fstabдатотеке у хитном режиму, морате да покренете следеће ради безбедносних мера:
# systemctl daemon-reload
Ево малог примера. Покренућемо се у хитни режим да уклонимо лажни унос у /etc/fstab.
- Прекините груб2 мени притиском на "е" за уређивање када се од вас затражи груб мени.
- Пронађите линију која наводи верзију кернела ( вмлинуз ) и додајте јој следеће:
systemd.unit=emergency.target
- Притисните "Цтрл+к" за покретање.
- Од вас ће бити затражено да унесете роот лозинку да наставите.
- Поново монтирајте
/да бисмо могли да унесемо измене у fstabдатотеку:# mount -oremount,rw /
- Можемо користити
mountкоманду да видимо који унос узрокује грешку:# mount -a
- Уклоните увредљиви унос из
fstabдатотеке.
- Користите
mount -aпоново да бисте се уверили да је грешка отклоњена.
- Користите
systemctl daemon-reloadкао што сам раније поменуо да поново учитате све датотеке јединица и поново направите цело стабло зависности.
Када изађете из љуске за хитне случајеве, систем ће завршити подизање система са циља за хитне случајеве, а затим ћете моћи да наставите као и обично од те тачке. Овај пример је управо коришћен да вам покаже процес коришћења циља за хитне случајеве за трајне промене у датотекама на систему.
Проблеми са покретањем система са Груб 2
/boot/grub2/grub.cfgФајл је главни конфигурациони фајл. НИКАДА НЕМОЈТЕ уређивати ову датотеку ручно. Уместо тога, користите grub2-mkconfigда бисте генерисали нову конфигурацију груб2 користећи скуп различитих конфигурационих датотека и листу инсталираних кернела. grub2-mkconfigКоманда ће изгледати на /etc/default/grubза опције као што су временски период подразумевани менија и кернел командне линије за употребу, а затим користе низ сценарија у /etc/grub.d/да генерира фајл резултат конфигурације.
Ево текстуалног дијаграма овог односа.
/boot/grub2/grub.cfg
|
|__________________
| |
/etc/default/grub /etc/grub.d/*
Важно: Да бисте уредили главну датотеку груб.цфг, мораћете да унесете жељене измене /etc/default/grubу датотеке /etc/grub.d/и датотеке, а затим да креирате нову grub.cfgтако што ћете покренути:
# grub2-mkconfig > /boot/grub2/grub.cfg
Отклањање проблема груб
Важно је разумети синтаксу /boot/grub2/grub.cfgдатотеке пре решавања проблема.
- Прво, уноси за покретање су кодирани унутар 'менуентри' блокова. У овим блоковима
linux16и initrd16линије указују на језгро које треба учитати са диска (заједно са командном линијом кернела) и инитрамф-ове који ће се учитати. Током интерактивног уређивања при покретању, таб се користи за проналажење ових редова.
- Линије „сет роот“ унутар тих блокова не упућују на основни систем датотека за систем РХЕЛ/ЦентОС 7, већ уместо тога указују на систем датотека из којег груб2 треба да учита датотеке кернела и инитрамфс. Синтакса је
harddrive.partitionгде hd0се налази први чврсти диск у систему, а где hd1је други. Партиције су означене као msdos1за прву МБР партицију или gpt1за прву ГПТ партицију.
Пример из /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>
Поправљање покварене инсталације грубе
За случајеве када се систем неће покренути након што дође до груб2 менија.
- Требало би да почнете са уређивањем груб менија и тражењем синтаксичких грешака. Ако га пронађете, исправите га и уђите у систем да бисте упорно извршили измене да бисте решили проблем.
- Ако не можете да пронађете ниједну грешку, погледајте горњи одељак где покрећемо циљ за хитне случајеве. Мораћете поново да монтирате роот (
/).
- Погледајте тренутну конфигурацију груб2 са следећом командом:
# grub2-mkconfig
- Ако не видите ниједну грешку, вероватно је неко уредио
/boot/grub2/grub.cfgдатотеку. Не мењајте ову датотеку. Поново направите конфигурацију следећом командом:# grub2-mkconfig > /boot/grub2/grub.cfg
Када поново направите конфигурацију груб, требало би да будете у могућности да поново покренете систем без икаквих проблема.