CentOS 7 un RHEL 7 sāknēšanas procesa pārskats un problēmu novēršana

Šajā rakstā ir aprakstīts CentOS/RHEL 7.x sistēmu sāknēšanas process. Lai gan tas var palikt līdzīgs iepriekšējiem izlaidumiem, ar RHEL 7 tiek ieviests systemd. Papildus sāknēšanas procesam es sniegšu padomus un trikus problēmu novēršanai.

Lai varētu aktīvi novērst sāknēšanas problēmu, jums ir jāsaprot sāknēšanas process. Pārskatiet tālāk norādītās darbības, līdz esat iepazinies ar procesu.

Augsta līmeņa pārskats

  • Jauda + pastu.
  • Programmaparatūras ierīču meklēšana.
  • Programmaparatūra nolasa sāknēšanas ielādētāju.
  • Sāknēšanas ielādētājs ielādē konfigurāciju (grub2).
  • Sāknēšanas ielādētājs ielādē kodolu un initramfs.
  • Sāknēšanas ielādētājs nodod vadību kodolam.
  • Kodols inicializē aparatūru + tiek izpildīts /sbin/initkā pid 1.
  • Systemd izpilda visus initrd mērķus (montē failu sistēmu uz /sysroot).
  • Kodola saknes FS ir pārslēgta no initramfs root ( /sysroot) uz sistēmas rootfs ( /) un systemd tiek atkārtoti izpildīta kā sistēmas versija.
  • Systemd meklē noklusējuma mērķi un ieslēdz/aptur vienības, kā konfigurēts, vienlaikus automātiski atrisinot atkarības un tiek parādīta pieteikšanās lapa.

Papildinformāciju par sāknēšanas procesu skatiet savas sistēmas oficiālajā OS dokumentācijā.

Sistēmiski mērķi

Mērķi būtībā ir atkarības pārbaudes. Viņiem ir konfigurācija "pirms" un "pēc", lai precīzi noteiktu, kādi pakalpojumi ir nepieciešami, lai sasniegtu šo mērķi. Piemēram: arp.ethernet.service, firewalld.service, un tā tālāk ir jāuzsāk un jāstrādā, lai network.targetvarētu sasniegt. Ja tas netiek sasniegts, tādus pakalpojumus kā httpd, nfsun ldapnevar tikt uzsākta. RHEL/CentOS 7 var iestatīt 4 mērķus.

  • graphical.target (GUI interfeiss)
  • multi-user.target (vairāku lietotāju režīms, teksta pieteikšanās)
  • glābšanas.target (sulogin uzvedne, pamata sistēmas inicializācija)
  • ārkārtas.target (sulogin uzvedne, initramfs rakurs ir pabeigts un sistēmas sakne ir uzstādīta/tikai lasāma)

Lai skatītu pašreizējo noklusējuma sāknēšanas mērķi, izmantojiet šo:

systemctl get-default

Ņemiet vērā, ka varat to mainīt izpildes laikā, izolējot mērķi. Tas sāks/apturēs visus ar jauno mērķi saistītos pakalpojumus, tāpēc esiet piesardzīgs (skatiet systemctl isolate new.target).

Viena lietotāja režīms

Dažkārt, lai atrisinātu operētājsistēmas problēmu, būs jāiesāknēšana viena lietotāja režīmā. Šajā piemērā es jums parādīšu, kā rescue.targetRHEL/CentOS 7 izmantot “viena lietotāja režīmu”.

  1. Pārtrauciet grub2 izvēlni, nospiežot "e", lai rediģētu, kad tas tiek prasīts ar grub izvēlni.
  2. Atrodiet rindu, kas norāda kodola versiju ( vmlinuz ), un pievienojiet tai:systemd.unit=rescue.target
  3. Lai sāktu, nospiediet taustiņu kombināciju Ctrl+x.
  4. Pēc tam jums tiks prasīts ar saknes paroli, lai turpinātu. Kad iziesit no glābšanas čaulas, sāknēšanas process turpinās ielādēt noklusējuma mērķi.

Saknes paroles atkopšana

Šis process nedaudz atšķiras no tā, ko esam izmantojuši iepriekšējos laidienos, taču tas ir vienkāršs uzdevums, un tam ir nepieciešamas ļoti dažas darbības. Ja jums ir jāatkopj kādi akreditācijas dati, varat izmantot šo metodi, lai piekļūtu virtuālajai mašīnai. Jūs joprojām varat palaist no tiešā kompaktdiska, pievienot saknes failu sistēmu un rediģēt paroli, taču šī metode ir novecojusi un prasa vairāk pūļu.

  1. Restartējiet sistēmu.
  2. Pārtrauciet grub2 izvēlni, nospiežot "e", lai rediģētu, kad tas tiek prasīts ar grub izvēlni.
  3. Pārvietojiet kursoru uz tās rindas beigām, kas norāda kodolu ( vmlinuz ). Iespējams, vēlēsities noņemt visas pārējās konsoles, izņemot TTY0, taču šī darbība jūsu vidē var nebūt nepieciešama.
  4. Pievienojiet rd.break( bez pēdiņām ), kas pārtrauks sāknēšanas procesu tieši pirms vadīklas nodošanas no initramfs uz faktisko sistēmu.
  5. Ctrl+x, lai palaistu.

Šajā brīdī tiek parādīts saknes apvalks ar saknes failu sistēmu, kas ir uzstādīta tikai lasīšanas režīmā /sysroot. Mums tas būs atkārtoti jāmontē ar rakstīšanas tiesībām.

Uzstādiet atkārtoti /sysroot.

# mount -oremount,rw /sysroot

Pārslēdzieties uz chroot cietumu.

# chroot /sysroot

Mainiet paroli lietotājam, kuram ir novecojuši akreditācijas dati.

# passwd <username>

Ja izmantojat SElinux, pirms sāknēšanas procesa turpināšanas apsveriet visu failu pārmarķēšanu. Šo daļu var izlaist, ja neizmantojat SElinux.

# touch /.autorelabel

Divreiz izejiet, un sistēma tiks tīri sāknēta no vietas, kurā mēs to pārtraucām.

Iepriekšējo sāknēšanas žurnālu pārskatīšana

Var būt noderīgi skatīt iepriekšējo neveiksmīgo sāknēšanas mēģinājumu žurnālus. Ja žurnālā reģistrētie žurnāli ir padarīti pastāvīgi (parasti tiek glabāti atmiņā un atbrīvoti sāknēšanas laikā), to var izdarīt, izmantojot journalctlrīku. Veiciet šīs darbības, ja nepieciešams iestatīt pastāvīgu sāknēšanas reģistrēšanu.

Kā root izveidojiet žurnāla failu šīs informācijas saglabāšanai.

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

Lai pārbaudītu iepriekšējās sāknēšanas žurnālus, izmantojiet -bopciju ar journalctl. Bez argumentiem -btiks filtrēta izvade tikai ziņojumiem, kas attiecas uz pēdējo sāknēšanu. Ja šim argumentam ir negatīvs skaitlis, tas tiks filtrēts iepriekšējās sāknēšanas laikā. Piemēram:

# journalctl -b-1 -p err

Tas parādīs kļūdu žurnālus no sāknēšanas, kas notika pirms jaunākās. Jums vajadzētu mainīt skaitlisko vērtību, lai atspoguļotu sāknēšanas laiku, kas jums jāskata.

Diska un failu sistēmas kļūdu labošana

Viena no visbiežāk sastopamajām sāknēšanas laika kļūdām ir nepareizi konfigurēts /etc/fstabfails. Jūs NEVAR izmantot rescue.target, lai izlabotu /etc/fstabkļūdas. Lielākajai daļai šo problēmu būs jāizmanto sistēma, emergency.targetjo "glābšanai" ir nepieciešama funkcionālāka sistēma.

Tālāk ir sniegti to problēmu piemēri, kurām nepieciešams emergency.target:

  1. Bojāta failu sistēma.
  2. Neesošs UUID domēnā /etc/fstab.
  3. Neesošs pievienošanas punkts /etc/fstab.
  4. Nepareiza stiprinājuma opcija /etc/fstab.

Svarīgi : pēc /etc/fstabfaila rediģēšanas avārijas režīmā drošības pasākumu veikšanai ir jāveic šādas darbības:

# systemctl daemon-reload

Šeit ir īss piemērs. Mēs sāksim avārijas režīmu, lai noņemtu nepatiesu ierakstu /etc/fstab.

  1. Pārtrauciet grub2 izvēlni, nospiežot "e", lai rediģētu, kad tas tiek prasīts ar grub izvēlni.
  2. Atrodiet rindu, kas norāda kodola versiju ( vmlinuz ), un pievienojiet tai:systemd.unit=emergency.target
  3. Lai palaistu, nospiediet taustiņu kombināciju Ctrl+x.
  4. Jums tiks piedāvāts ar root paroli, lai turpinātu.
  5. Atkārtoti pievienojiet, /lai mēs varētu veikt izmaiņas fstabfailā:# mount -oremount,rw /
  6. Mēs varam izmantot mountkomandu, lai redzētu, kurš ieraksts izraisa kļūdu:# mount -a
  7. Noņemiet no fstabfaila aizskarošo ierakstu .
  8. Izmantojiet mount -avēlreiz, lai pārliecinātos, ka kļūda ir novērsta.
  9. Izmantojiet, systemctl daemon-reloadkā jau minēju iepriekš, lai atkārtoti ielādētu visus vienības failus un no jauna izveidotu visu atkarības koku.

Kad izejat no avārijas čaulas, sistēma pabeigs sāknēšanu no avārijas mērķa, un pēc tam varēsit turpināt kā parasti. Šis piemērs tika izmantots, lai parādītu avārijas mērķa izmantošanas procesu, lai veiktu pastāvīgas izmaiņas sistēmas failos.

Boot loader problēmas ar Grub 2

/boot/grub2/grub.cfgFails ir galvenais konfigurācijas failu. NEKAD NErediģējiet šo failu manuāli. Tā vietā izmantojiet, grub2-mkconfiglai ģenerētu jauno grub2 konfigurāciju, izmantojot dažādu konfigurācijas failu kopu un instalēto kodolu sarakstu. grub2-mkconfigKomanda būs apskatīt /etc/default/grubuz opcijas, piemēram, noklusējuma izvēlnes timeout un kodola komandrindas izmantot, un pēc tam izmantot komplektu skriptus /etc/grub.d/, lai radītu rezultātā konfigurācijas failu.

Šeit ir šo attiecību teksta diagramma.

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

Svarīgi! Lai rediģētu galveno grub.cfg failu, jums būs jāveic vajadzīgās izmaiņas /etc/default/grubfailos /etc/grub.d/un failos un pēc tam jāizveido jauns grub.cfg, izpildot:

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

Problēmu novēršana grub

/boot/grub2/grub.cfgPirms problēmu novēršanas ir svarīgi saprast faila sintaksi .

  • Pirmkārt, sāknējamie ieraksti tiek kodēti 'menuentry' blokos. Šajos blokos linux16un initrd16rindas norāda uz kodolu, kas jāielādē no diska (kopā ar kodola komandrindu) un ielādējamo initramfs. Interaktīvās rediģēšanas laikā sāknēšanas laikā tiek izmantota cilne, lai atrastu šīs rindas.
  • Šajos blokos esošās "set root" rindas nenorāda uz RHEL/CentOS 7 sistēmas saknes failu sistēmu, bet gan norāda uz failu sistēmu, no kuras grub2 ir jāielādē kodola un initramfs faili. Sintakse ir vieta, harddrive.partitionkur sistēmā hd0ir pirmais cietais disks un hd1otrais. Sadaļas ir norādītas kā msdos1pirmajam MBR nodalījumam vai gpt1pirmajam GPT nodalījumam.

Piemērs no /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

Ja ierīcē atkārtoti jāinstalē sāknēšanas ielādētājs, izmantojiet šo komandu.

# grub2-install <device>

Bojātas grub instalācijas labošana

Gadījumiem, kad sistēma netiks sāknēta pēc grub2 izvēlnes sasniegšanas.

  • Jums jāsāk ar grub izvēlnes rediģēšanu un sintakses kļūdu meklēšanu. Ja tādu atrodat, izlabojiet to un ieejiet sistēmā, lai veiktu pastāvīgas izmaiņas, lai novērstu problēmu.
  • Ja nevarat atrast kļūdas, skatiet iepriekš minēto sadaļu, kurā tiek palaists avārijas mērķis. Jums būs atkārtoti jāpievieno sakne ( /).
  • Skatiet pašreizējo grub2 konfigurāciju ar šādu komandu: # grub2-mkconfig
  • Ja neredzat kļūdas, iespējams, kāds ir rediģējis /boot/grub2/grub.cfgfailu. Nepārveidojiet šo failu. Pārbūvējiet konfigurāciju ar šādu komandu:# grub2-mkconfig > /boot/grub2/grub.cfg

Kad esat pārbūvējis grub konfigurāciju, jums vajadzētu būt iespējai atsāknēt bez problēmām.

Atstājiet komentāru

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk