Pregled in odpravljanje težav zagonskega postopka CentOS 7 in RHEL 7

Ta članek opisuje zagonski postopek za sisteme CentOS/RHEL 7.x. Čeprav lahko ostane podoben prejšnjim izdajam, se z RHEL 7 uvaja systemd. Poleg postopka zagona bom na tej poti zagotovil nasvete in trike za odpravljanje težav.

Preden lahko aktivno odpravljate težavo ob zagonu, morate razumeti postopek zagona. Preglejte spodnje korake, dokler se ne seznanite s postopkom.

Pregled na visoki ravni

  • Moč + post.
  • Iskanje naprave z vdelano programsko opremo.
  • Vdelana programska oprema bere zagonski program.
  • Zagonski nalagalnik naloži konfiguracijo (grub2).
  • Zagonski nalagalnik naloži jedro in initramfs.
  • Zagonski nalagalnik prenese nadzor na jedro.
  • Jedro inicializira strojno opremo + se izvede /sbin/initkot pid 1.
  • Systemd izvede vse cilje initrd (namesti datotečni sistem na /sysroot).
  • Korenski FS jedra je prešel iz initramfs root ( /sysroot) v sistem rootfs ( /) in systemd se znova izvede kot različica sistema.
  • Systemd išče privzeti cilj in zažene/ustavi enote, kot so konfigurirane, medtem ko samodejno rešuje odvisnosti in prikaže se stran za prijavo.

Za več informacij o postopku zagona glejte uradno dokumentacijo operacijskega sistema za vaš sistem.

Systemd cilji

Cilji so v bistvu preverjanja odvisnosti. Imajo konfiguracijo »pred« in »potem« za točno katere storitve so potrebne za dosego tega cilja. Na primer: arp.ethernet.service, firewalld.service, in tako naprej je treba zagnati in delovati, preden network.targetjih je mogoče doseči. Če ni dosežen, storitev, kot so httpd, nfs, in ldapni mogoče zagnati. V RHEL/CentOS 7 lahko nastavite 4 cilje.

  • graphical.target (grafični vmesnik)
  • multi-user.target (večuporabniški način, besedilna prijava)
  • rescue.target (sulogin poziv, osnovna inicializacija sistema)
  • emergency.target (poziv sulogin, vrtilna točka initramfs je končana in koren sistema nameščen na / samo za branje)

Za ogled trenutnega privzetega zagonskega cilja uporabite naslednje:

systemctl get-default

Upoštevajte, da lahko to spremenite med izvajanjem tako, da izolirate cilj. To bo zagnalo/ustavilo vse storitve, povezane z novim ciljem, zato bodite previdni (glejte systemctl isolate new.target).

Način enega uporabnika

Včasih se boste morali zagnati v enouporabniškem načinu, da odpravite težavo z operacijskim sistemom. V tem primeru vam bom pokazal, kako uporabljati rescue.target"enouporabniški način" na RHEL/CentOS 7.

  1. Prekinite meni grub2 tako, da pritisnete "e" za urejanje, ko ste pozvani v meniju grub.
  2. Poiščite vrstico, ki določa različico jedra ( vmlinuz ) in ji pripnite naslednje:systemd.unit=rescue.target
  3. Za začetek pritisnite "Ctrl+x".
  4. Nato boste morali za nadaljevanje vnesti korensko geslo. Ko zapustite reševalno lupino, bo zagonski proces še naprej nalagal vaš privzeti cilj.

Obnovitev korenskega gesla

Ta postopek je nekoliko drugačen od tistega, ki smo ga uporabljali v preteklih izdajah, vendar je preprosta naloga in zahteva zelo malo korakov. Če morate obnoviti kakršne koli poverilnice, lahko uporabite to metodo za dostop do navideznega računalnika. Še vedno se lahko zaženete s CD-ja v živo, namestite korenski datotečni sistem in uredite geslo, vendar je ta metoda zastarela in zahteva več truda.

  1. Znova zaženite sistem.
  2. Prekinite meni grub2 tako, da pritisnete "e" za urejanje, ko ste pozvani v meniju grub.
  3. Premaknite kazalec na konec vrstice, ki določa jedro ( vmlinuz ). Morda boste želeli odstraniti vse druge konzole razen TTY0, vendar ta korak morda ni potreben v vašem okolju.
  4. Dodaj rd.break( brez narekovajev ), ki bo prekinil zagonski proces tik preden se nadzor iz initramfs preda dejanskemu sistemu.
  5. Ctrl+x za zagon.

Na tej točki je predstavljena korenska lupina s korenskim datotečnim sistemom, nameščenim v načinu samo za branje na /sysroot. Ponovno ga bomo morali namestiti s privilegiji pisanja.

Ponovno montirajte /sysroot.

# mount -oremount,rw /sysroot

Preklopite v chroot zapor.

# chroot /sysroot

Spremenite geslo za uporabnika, pri katerem imamo zastarele poverilnice.

# passwd <username>

Če uporabljate SElinux, razmislite o ponovnem označevanju vseh datotek, preden nadaljujete z zagonskim postopkom. Ta del lahko preskočite, če ne uporabljate SElinuxa.

# touch /.autorelabel

Dvakrat zapustite in sistem se bo čisto zagnal od točke, kjer smo ga prekinili.

Pregledovanje dnevnikov prejšnjih zagonov

Koristno je lahko videti dnevnike prejšnjih neuspelih poskusov zagona. Če so bili dnevniki dnevnika trajni (običajno shranjeni v pomnilniku in sproščeni ob zagonu), je to mogoče storiti z journalctlorodjem. Sledite tem korakom, če želite nastaviti trajno beleženje zagona.

Kot root ustvarite datoteko dnevnika za shranjevanje teh informacij.

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

Če želite pregledati dnevnike prejšnjega zagona, uporabite -bmožnost z journalctl. Brez argumentov -bbo filtriral izhod samo do sporočil, ki se nanašajo na zadnji zagon. Negativna številka tega argumenta bo filtrirana pri prejšnjih zagonih. Na primer:

# journalctl -b-1 -p err

To vam bo pokazalo dnevnike napak pri zagonu, ki so se zgodile pred zadnjim. Morate spremeniti številčno vrednost, da odraža zagon, ki si ga morate ogledati.

Popravilo napak na disku in datotečnem sistemu

Ena najpogostejših napak pri času zagona je napačno konfigurirana /etc/fstabdatoteka. Za odpravo napake NE MORETE uporabiti . Večina teh težav bo od nas zahtevala uporabo, saj "reševanje" zahteva bolj funkcionalen sistem.rescue.target/etc/fstabemergency.target

Spodaj so primeri težav, ki zahtevajo emergency.target:

  1. Poškodovan datotečni sistem.
  2. Neobstoječi UUID v /etc/fstab.
  3. Neobstoječa točka priklopa v /etc/fstab.
  4. Nepravilna možnost namestitve v /etc/fstab.

Pomembno : Po urejanju /etc/fstabdatoteke v nujnem načinu morate zaradi varnostnih ukrepov zagnati naslednje:

# systemctl daemon-reload

Tukaj je vodnik. Zagnali se bomo v način v sili, da odstranimo napačen vnos v /etc/fstab.

  1. Prekinite meni grub2 tako, da pritisnete "e" za urejanje, ko ste pozvani v meniju grub.
  2. Poiščite vrstico, ki določa različico jedra ( vmlinuz ) in ji pripnite naslednje:systemd.unit=emergency.target
  3. Pritisnite "Ctrl+x" za zagon.
  4. Za nadaljevanje boste morali vnesti korensko geslo.
  5. Ponovno namestite /, da lahko spremenimo fstabdatoteko:# mount -oremount,rw /
  6. Z mountukazom lahko vidimo, kateri vnos povzroča napako:# mount -a
  7. Odstranite žaljivi vnos iz fstabdatoteke.
  8. mount -aPonovno uporabite , da se prepričate, da je bila napaka odpravljena.
  9. Uporabite, systemctl daemon-reloadkot sem že omenil, za ponovno nalaganje vseh datotek enot in ponovno ustvarjanje celotnega drevesa odvisnosti.

Ko zapustite zasilno lupino, se bo sistem končal z zagonom iz cilja v sili, nato pa boste od te točke lahko nadaljevali kot običajno. Ta primer je bil uporabljen le za prikaz postopka uporabe cilja v sili za trajne spremembe datotek v sistemu.

Težave z zagonskim nalagalnikom Grub 2

/boot/grub2/grub.cfgDatoteka je glavni konfiguracijsko datoteko. Te datoteke NIKOLI NE urejajte ročno. Namesto tega uporabite grub2-mkconfigza generiranje nove konfiguracije grub2 z uporabo nabora različnih konfiguracijskih datotek in seznama nameščenih jeder. grub2-mkconfigUkaz poglej /etc/default/grubza možnosti, kot timeout privzeta menija in jedra ukazni vrstici za uporabo, nato pa niz scenarijev za /etc/grub.d/ustvarjanje konfiguracijske datoteke nastalo.

Tukaj je besedilni diagram tega razmerja.

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

Pomembno: Če želite urediti glavno datoteko grub.cfg, boste morali narediti želene spremembe /etc/default/grubdatotek /etc/grub.d/in datotek in nato ustvariti novo grub.cfgtako, da zaženete:

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

Odpravljanje težav grub

/boot/grub2/grub.cfgPred odpravljanjem težav je pomembno razumeti sintakso datoteke.

  • Prvič, zagonski vnosi so kodirani znotraj blokov 'menuentry'. V teh blokih linux16in initrd16vrstice kažejo na jedro, ki se naloži z diska (skupaj z ukazno vrstico jedra), in na initramfs, ki jih je treba naložiti. Med interaktivnim urejanjem ob zagonu se za iskanje teh vrstic uporablja tabulator.
  • Vrstice "set root" znotraj teh blokov ne kažejo na korenski datotečni sistem za sistem RHEL/CentOS 7, ampak namesto tega kažejo na datotečni sistem, iz katerega naj grub2 naloži datoteke jedra in initramfs. Sintaksa je, harddrive.partitionkje hd0je prvi trdi disk v sistemu in hd1je drugi. Particije so označene kot msdos1za prvo particijo MBR ali gpt1za prvo particijo GPT.

Primer iz /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

Če morate znova namestiti zagonski nalagalnik na napravo, uporabite naslednji ukaz.

# grub2-install <device>

Odpravljanje pokvarjene namestitve grma

Za primere, ko se sistem ne bo zagnal po dostopu do menija grub2.

  • Začeti morate z urejanjem menija grub in iskanjem sintaksičnih napak. Če ga najdete, ga popravite in vstopite v sistem, da naredite vztrajne spremembe, da odpravite težavo.
  • Če ne najdete nobene napake, glejte zgornji razdelek, kjer zaženemo cilj v sili. Ponovno boste morali znova namestiti root ( /).
  • Oglejte si trenutno konfiguracijo grub2 z naslednjim ukazom: # grub2-mkconfig
  • Če ne vidite nobene napake, je verjetno nekdo uredil /boot/grub2/grub.cfgdatoteko. Ne spreminjajte te datoteke. Znova zgradite konfiguracijo z naslednjim ukazom:# grub2-mkconfig > /boot/grub2/grub.cfg

Ko ponovno zgradite konfiguracijo grub, se lahko znova zaženete brez težav.


Povečajte produktivnost z Z in Zsh na CentOS

Povečajte produktivnost z Z in Zsh na CentOS

Uvod Delo v sistemih Linux pomeni, da pogosteje uporabljate ukazno vrstico. Vedno znova morate vnašati dolga imena imenikov

Nastavitev RethinkDB Cluster na CentOS 7

Nastavitev RethinkDB Cluster na CentOS 7

Uvod RethinkDB je baza podatkov NoSQL, ki shranjuje podatke kot dokumente JSON. Ima super intuitiven jezik poizvedb in ima splošno dostopne funkcije i

Namestite DirectAdmin na CentOS 6 ali 7

Namestite DirectAdmin na CentOS 6 ali 7

DirectAdmin je lastniška spletna nadzorna plošča, ki jo lahko namestite na svoj strežnik in ponuja številne funkcije za upravljanje sistema. V tem

Pregled in odpravljanje težav zagonskega postopka CentOS 7 in RHEL 7

Pregled in odpravljanje težav zagonskega postopka CentOS 7 in RHEL 7

Ta članek opisuje zagonski postopek za sisteme CentOS/RHEL 7.x. Čeprav bo morda ostal podoben prejšnjim izdajam, je sistemd z RHEL 7 še naprej

Namestite PostgreSQL na CentOS 7

Namestite PostgreSQL na CentOS 7

Uvod PostgreSQL je najnaprednejši odprtokodni sistem za upravljanje relacijskih baz podatkov (RDBMS). Je skladen s standardi ANSI SQL:2008

Osnove upravljanja uporabnikov v sistemih CentOS

Osnove upravljanja uporabnikov v sistemih CentOS

Upravljanje uporabnikov je lahko zastrašujoča naloga: od vsakodnevnega vzdrževanja, varnostnih tveganj in pomanjkanja temeljite spletne dokumentacije. Ta članek vam bo pomagal začeti

Začetna nastavitev strežnika CentOS 7

Začetna nastavitev strežnika CentOS 7

Uvod Na novo aktiviran strežnik CentOS 7 je treba prilagoditi, preden ga lahko uporabite kot produkcijski sistem. V tem članku je najpomembnejše

Preverite hitrost interneta s Speedtest-cli na CentOS

Preverite hitrost interneta s Speedtest-cli na CentOS

Uvod V tej vadnici dobro namestite Speedtest-cli, da preizkusite hitrost omrežja vašega strežnika. Speedtest-cli je vmesnik ukazne vrstice za th

Namestite okolje GUI na CentOS 6

Namestite okolje GUI na CentOS 6

Upravljanje vašega strežnika samo s SSH je lahko zastrašujoče. Dobra stvar za nas je, da ima Vultr možnost View Console. Za popolno uporabo konzole Vultrs VNC

Nastavite časovni pas in NTP na CentOS 6

Nastavite časovni pas in NTP na CentOS 6

Uvod Za skrbnike strežnikov je pomembno pravilno nastaviti in vzdrževati čas na strežnikih. Napačno nastavljen čas bo povzročil kaos znotraj th

Kako namestiti Foremana na CentOS 7

Kako namestiti Foremana na CentOS 7

Uporaba drugega sistema? Foreman je brezplačno in odprtokodno orodje, ki vam pomaga pri konfiguraciji in upravljanju fizičnih in virtualnih strežnikov. Forema

Zavarovanje in utrjevanje jedra CentOS 7 s Sysctl

Zavarovanje in utrjevanje jedra CentOS 7 s Sysctl

Uvod Sysctl uporabniku omogoča natančno nastavitev jedra, ne da bi mu bilo treba jedro znova zgraditi. Prav tako bo takoj uporabil spremembe, tako da je strežnik zmagal

Uporabite Nethogs za spremljanje uporabe pasovne širine omrežja

Uporabite Nethogs za spremljanje uporabe pasovne širine omrežja

V tej vadnici bomo obravnavali postopek namestitve in uporabe nethogov na CentOS 6x x64. nethogs je orodje za spremljanje omrežja, ki omogoča Networ

Namestite spletno ploščo CentOS (CWP) na CentOS 6

Namestite spletno ploščo CentOS (CWP) na CentOS 6

CentOS Web Panel ali CWP je odprtokodna nadzorna plošča gostovanja, ki je zasnovana za hitro in enostavno upravljanje strežnika. Vključuje vse funkcije o

Nastavite Zarafa in Yaffas na CentOS 6

Nastavite Zarafa in Yaffas na CentOS 6

Obstaja veliko rešitev, ki zamenjajo Microsoft Exchange z rešitvijo za Linux, vendar so vse imele eno težavo, ki mi ni bila všeč. Ko prejmem

Kako namestiti in konfigurirati Concourse CI na CentOS 7

Kako namestiti in konfigurirati Concourse CI na CentOS 7

Uporaba drugega sistema? Uvod Neprekinjena integracija je praksa razvoja programske opreme DevOps, ki razvijalcem omogoča pogosto združevanje

Namestitev zalednega strežnika Glowing Bear na CentOS 7

Namestitev zalednega strežnika Glowing Bear na CentOS 7

Glowing Bear je spletni vmesnik za odjemalca WeeChat IRC in si prizadeva biti sodoben vmesnik. S svojimi funkcijami, kot je »klikni za omembo« in zamenjavo emodžijev

Kako nadgraditi CentOS 6 na CentOS 7

Kako nadgraditi CentOS 6 na CentOS 7

Kako nadgraditi CentOS 6 na CentOS 7

Varna TMP in TMPFS na CentOS 6

Varna TMP in TMPFS na CentOS 6

Začasni imeniki, kot so /tmp, /var/tmp in /dev/shm, ponujajo platformo za hekerje za zagon skriptov in programov. Te zlonamerne izvedljive datoteke se uporabljajo t

Omogočite EPEL na CentOS

Omogočite EPEL na CentOS

Ozadje Skladišče Fedoras Extra Packages za Enterprise Linux (EPEL) ponuja možnost namestitve programskih paketov, ki niso vključeni v

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več