CentOS 7 og RHEL 7 oppstartsprosessoversikt og feilsøking

Denne artikkelen beskriver oppstartsprosessen for CentOS/RHEL 7.x-systemer. Selv om det kan forbli lik tidligere utgivelser, med RHEL 7, introduseres systemd. I tillegg til oppstartsprosessen vil jeg gi feilsøkingstips og triks underveis.

Du må forstå oppstartsprosessen før du aktivt kan feilsøke et problem ved oppstart. Se gjennom trinnene nedenfor til du er kjent med prosessen.

Oversikt på høyt nivå

  • Strøm + innlegg.
  • Søk etter fastvareenhet.
  • Firmware leser bootloader.
  • Boot loader laster inn config (grub2).
  • Boot loader laster inn kjerne og initramfs.
  • Boot loader sender kontrollen til kjernen.
  • Kjernen initialiserer maskinvare + kjører /sbin/initsom pid 1.
  • Systemd kjører alle initrd-mål (monterer filsystemet på /sysroot).
  • Kernel root FS byttet fra initramfs root ( /sysroot) til system rootfs ( /) og systemd kjøres på nytt som systemversjon.
  • Systemd ser etter standardmål og starter/stopper enheter som konfigurert mens den automatisk løser avhengigheter og påloggingssiden vises.

For mer informasjon om oppstartsprosessen, se den offisielle OS-dokumentasjonen for systemet ditt.

Systemerte mål

Mål er i utgangspunktet avhengighetssjekker. De har en "før" og "etter"-konfigurasjon for nøyaktig hvilke tjenester som kreves for å nå dette målet. For eksempel: arp.ethernet.service, firewalld.service, og så videre må startes og fungere før det network.targetkan nås. Hvis den ikke nås, kan ikke tjenester som httpd, nfs, og ldapstartes. Det er 4 mål som kan settes i RHEL/CentOS 7.

  • graphical.target (GUI-grensesnitt)
  • multi-user.target (flerbrukermodus, tekstbasert pålogging)
  • rescue.target (sulogin-prompt, grunnleggende systeminitialisering)
  • emergency.target (sulogin-prompt, initramfs pivot komplett og systemrot montert på / som skrivebeskyttet)

For å se gjeldende standard oppstartsmål, bruk følgende:

systemctl get-default

Husk at du kan endre dette under kjøring ved å isolere målet. Dette vil starte/stoppe alle tjenester knyttet til det nye målet, så vær forsiktig (se systemctl isolate new.target).

Enkeltbrukermodus

Det er tider når du må starte opp i enkeltbrukermodus for å fikse et problem med operativsystemet. For dette eksemplet vil jeg vise deg hvordan du bruker rescue.targetsom er "enkeltbrukermodus" på RHEL/CentOS 7.

  1. Avbryt grub2-menyen ved å trykke "e" for å redigere når du blir bedt om det med grub-menyen.
  2. Finn linjen som spesifiserer kjerneversjonen ( vmlinuz ) og legg til følgende:systemd.unit=rescue.target
  3. Trykk "Ctrl + x" for å starte.
  4. Du vil da bli bedt med root-passordet for å fortsette, når du avslutter redningsskallet, vil oppstartsprosessen fortsette å laste inn standardmålet ditt.

Gjenoppretter root-passordet

Denne prosessen er litt annerledes enn det vi har brukt i tidligere utgivelser, men det er en enkel oppgave og krever svært få trinn for å gjøre det. Hvis du trenger å gjenopprette legitimasjon, kan du bruke denne metoden for å få tilgang til en VM. Du kan fortsatt starte opp fra en live-CD, montere rotfilsystemet og redigere passordet, men den metoden er datert og krever mer innsats.

  1. Start systemet på nytt.
  2. Avbryt grub2-menyen ved å trykke "e" for å redigere når du blir bedt om det med grub-menyen.
  3. Flytt markøren til slutten av linjen som spesifiserer kjernen ( vmlinuz ). Det kan være lurt å fjerne alle andre konsoller enn TTY0, men dette trinnet er kanskje ikke nødvendig i ditt miljø.
  4. Legg til rd.break( ingen anførselstegn ) som vil bryte oppstartsprosessen rett før kontrollen overføres fra initramfs til det faktiske systemet.
  5. Ctrl+x for å starte opp.

På dette tidspunktet presenteres et rotskall med rotfilsystemet montert i skrivebeskyttet modus på /sysroot. Vi må montere den på nytt med skriverettigheter.

Monter på nytt /sysroot.

# mount -oremount,rw /sysroot

Bytt til et chroot-fengsel.

# chroot /sysroot

Endre passordet for brukeren der vi har utdatert legitimasjon.

# passwd <username>

Hvis du bruker SElinux, bør du vurdere å merke alle filer på nytt før du fortsetter oppstartsprosessen. Denne delen kan hoppes over hvis du ikke bruker SElinux.

# touch /.autorelabel

Avslutt to ganger og systemet vil starte opp fra det punktet vi avbrøt det.

Gjennomgang av logger fra tidligere støvler

Det kan være nyttig å se logger over tidligere mislykkede oppstartsforsøk. Hvis de journalførte loggene har blitt gjort vedvarende (normalt lagret i minnet og utgitt ved oppstart), kan dette gjøres med journalctlverktøyet. Følg disse trinnene hvis du trenger å konfigurere vedvarende oppstartslogging.

Som root oppretter du loggfilen for at denne informasjonen skal lagres.

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

For å inspisere loggene for en tidligere oppstart, bruk -balternativet med journalctl. Uten noen argumenter, -bfiltrerer utdata kun til meldinger som gjelder siste oppstart. Et negativt tall på dette argumentet vil filtrere på tidligere oppstarter. For eksempel:

# journalctl -b-1 -p err

Dette vil vise deg feilloggene fra oppstarten som skjedde før den siste. Du bør endre den numeriske verdien for å gjenspeile støvelen du må se.

Reparerer disk- og filsystemfeil

En av de vanligste feilene ved oppstartstid er en feilkonfigurert /etc/fstabfil. Du KAN IKKE bruke for rescue.targetå fikse en /etc/fstabfeil. De fleste av disse problemene vil kreve at vi bruker emergency.targetsiden "redning" krever et mer funksjonelt system.

Følgende er eksempler på problemer som krever emergency.target:

  1. Korrupt filsystem.
  2. Ikke-eksisterende UUID i /etc/fstab.
  3. Ikke-eksisterende monteringspunkt i /etc/fstab.
  4. Feil monteringsalternativ i /etc/fstab.

Viktig : Etter å ha redigert /etc/fstabfilen i nødmodus, må du kjøre følgende for sikkerhetstiltak:

# systemctl daemon-reload

Her er et gjennomgangseksempel. Vi skal starte opp i nødmodus for å fjerne en falsk oppføring i /etc/fstab.

  1. Avbryt grub2-menyen ved å trykke "e" for å redigere når du blir bedt om det med grub-menyen.
  2. Finn linjen som spesifiserer kjerneversjonen ( vmlinuz ) og legg til følgende:systemd.unit=emergency.target
  3. Trykk "Ctrl + x" for å starte opp.
  4. Du vil bli bedt om å angi root-passordet for å fortsette.
  5. Monter på nytt /slik at vi kan gjøre endringer i fstabfilen:# mount -oremount,rw /
  6. Vi kan bruke mountkommandoen for å se hvilken oppføring som forårsaker feilen:# mount -a
  7. Fjern den fornærmende oppføringen fra fstabfilen.
  8. Bruk mount -aigjen for å sikre at feilen er løst.
  9. Bruk systemctl daemon-reloadsom jeg hadde nevnt tidligere for å laste alle enhetsfiler på nytt, og gjenskape hele avhengighetstreet.

Når du går ut av nødskallet, vil systemet fullføre oppstarten fra nødmålet, og du vil da kunne fortsette som vanlig fra det tidspunktet. Dette eksemplet ble nettopp brukt for å vise deg prosessen med å bruke nødmålet til å gjøre vedvarende endringer i filer på systemet.

Oppstartslasterproblemer med Grub 2

Den /boot/grub2/grub.cfgfilen er hovedkonfigurasjonsfilen. IKKE rediger denne filen manuelt. Bruk i stedet for grub2-mkconfigå generere den nye grub2-konfigurasjonen ved å bruke et sett med forskjellige konfigurasjonsfiler og listen over installerte kjerner. Den grub2-mkconfigkommandoen vil se på /etc/default/grubfor alternativer som standard meny timeout og kjernens kommandolinje til bruk, og deretter bruke et sett av skript i /etc/grub.d/å generere den resulterende konfigurasjonsfilen.

Her er et tekstdiagram av dette forholdet.

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

Viktig: For å redigere hovedfilen grub.cfg, må du gjøre de ønskede endringene i /etc/default/grubog til filene i /etc/grub.d/og deretter opprette en ny grub.cfgved å kjøre:

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

Feilsøking av grub

Det er viktig å forstå syntaksen til /boot/grub2/grub.cfgfilen før feilsøking.

  • For det første er oppstartbare oppføringer kodet i 'menyoppførings'-blokker. I disse blokkene peker linux16og initrd16linjer til kjernen som skal lastes fra disken (sammen med kjernekommandolinjen) og initramfs som skal lastes. Under interaktiv redigering ved oppstart brukes fanen for å finne disse linjene.
  • "Sett rot"-linjene inne i disse blokkene peker ikke til rotfilsystemet for RHEL/CentOS 7-systemet, men peker i stedet til filsystemet som grub2 skal laste kjerne- og initramfs-filene fra. Syntaksen er harddrive.partitionhvor hd0er den første harddisken i systemet og hd1er den andre. Partisjonene er indikert som msdos1for den første MBR-partisjonen eller gpt1for den første GPT-partisjonen.

Eksempel fra /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

Hvis du trenger å installere oppstartslasteren på nytt på en enhet, bruk følgende kommando.

# grub2-install <device>

Retting av en ødelagt grub-installasjon

For tilfeller der systemet ikke vil starte opp etter å ha nådd grub2-menyen.

  • Du bør begynne med å redigere grub-menyen og søke etter syntaksfeil. Hvis du finner en, korriger den og gå inn i systemet for å gjøre vedvarende endringer for å fikse problemet.
  • Hvis du ikke finner noen feil, se avsnittet ovenfor der vi starter opp i nødmålet. Du må remontere root ( /) igjen.
  • Se gjeldende grub2-konfigurasjon med følgende kommando: # grub2-mkconfig
  • Hvis du ikke ser noen feil, er det sannsynlig at noen har redigert /boot/grub2/grub.cfgfilen. Ikke modifiser denne filen. Gjenoppbygg konfigurasjonen med følgende kommando:# grub2-mkconfig > /boot/grub2/grub.cfg

Når du har gjenoppbygd grub-konfigurasjonen, bør du kunne starte på nytt uten å ha noen problemer.


Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruker du et annet system? Plesk er et proprietært kontrollpanel for webverten som lar brukere administrere sine personlige og/eller klienters nettsteder, databaser

Slik installerer du Squid Proxy på CentOS

Slik installerer du Squid Proxy på CentOS

Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer

Konfigurering av statisk nettverk og IPv6 på CentOS 7

Konfigurering av statisk nettverk og IPv6 på CentOS 7

VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Slik installerer du Microweber på CentOS 7

Slik installerer du Microweber på CentOS 7

Bruker du et annet system? Microweber er en åpen kildekode dra og slipp CMS og nettbutikk. Microweber-kildekoden er vert på GitHub. Denne guiden vil vise deg

Hvordan installere Vanilla Forum på CentOS 7

Hvordan installere Vanilla Forum på CentOS 7

Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern

Slik installerer du Mattermost 4.1 på CentOS 7

Slik installerer du Mattermost 4.1 på CentOS 7

Bruker du et annet system? Mattermost er et åpen kildekode, selvdrevet alternativ til Slack SAAS-meldingstjenesten. Med andre ord, med Mattermost kan du ca

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hva du trenger En Vultr VPS med minst 1 GB RAM. SSH-tilgang (med root/administratorrettigheter). Trinn 1: Installere BungeeCord Først

La oss kryptere på Plesk

La oss kryptere på Plesk

Plesk-kontrollpanelet har en veldig fin integrasjon for Lets Encrypt. Lets Encrypt er en av de eneste SSL-leverandørene som gir ut sertifikater komplett

La oss kryptere på cPanel

La oss kryptere på cPanel

Lets Encrypt er en sertifiseringsinstans dedikert til å tilby SSL-sertifikater gratis. cPanel har bygget en ryddig integrasjon slik at du og din klient

Hvordan installere Concrete5 på CentOS 7

Hvordan installere Concrete5 på CentOS 7

Bruker du et annet system? Concrete5 er et åpen kildekode CMS som tilbyr mange karakteristiske og nyttige funksjoner for å hjelpe redaktører med å produsere innhold enkelt og

Slik installerer du Review Board på CentOS 7

Slik installerer du Review Board på CentOS 7

Bruker du et annet system? Review Board er et gratis og åpen kildekodeverktøy for gjennomgang av kildekode, dokumentasjon, bilder og mye mer. Det er nettbasert programvare

Sett opp HTTP-autentisering med Nginx på CentOS 7

Sett opp HTTP-autentisering med Nginx på CentOS 7

I denne veiledningen lærer du hvordan du setter opp HTTP-autentisering for en Nginx-webserver som kjører på CentOS 7. Krav For å komme i gang trenger du

Slik installerer du GoAccess på CentOS 7

Slik installerer du GoAccess på CentOS 7

Bruker du et annet system? GoAccess er en åpen kildekode-nettlogganalysator. Du kan bruke den til analyse av logger på sanntidsbasis i enten terminalen eller

Hvordan installere YOURLS på CentOS 7

Hvordan installere YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en åpen kildekode-applikasjon for URL-forkorting og dataanalyse. I denne artikkelen vil vi dekke installasjonsprosessen

Hvordan installere og konfigurere ArangoDB på CentOS 7

Hvordan installere og konfigurere ArangoDB på CentOS 7

Bruker du et annet system? Introduksjon ArangoDB er en åpen kildekode NoSQL-database med en fleksibel datamodell for dokumenter, grafer og nøkkelverdier. Det er

Bruke Etckeeper for versjonskontroll av /etc

Bruke Etckeeper for versjonskontroll av /etc

Innledning /etc/-katalogen spiller en kritisk rolle i måten et Linux-system fungerer på. Grunnen til dette er fordi nesten alle systemkonfigurasjoner

Hvorfor bør du bruke SSHFS? Hvordan montere et eksternt filsystem med SSHFS på CentOS 6

Hvorfor bør du bruke SSHFS? Hvordan montere et eksternt filsystem med SSHFS på CentOS 6

Mange systemadministratorer administrerer store mengder servere. Når filer må åpnes på tvers av forskjellige servere, logger du på hver enkelt individuelt ca

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer