CentOS 7 og RHEL 7 Boot Process Oversigt og fejlfinding

Denne artikel beskriver opstartsprocessen for CentOS/RHEL 7.x-systemer. Selvom det kan forblive magen til tidligere udgivelser, introduceres systemd med RHEL 7. Ud over opstartsprocessen vil jeg komme med tips og tricks til fejlfinding undervejs.

Du skal forstå opstartsprocessen, før du aktivt kan fejlfinde et problem ved opstart. Gennemgå nedenstående trin, indtil du er fortrolig med processen.

Overblik på højt niveau

  • Power + post.
  • Firmware-enhedssøgning.
  • Firmware læser bootloader.
  • Boot loader indlæser config (grub2).
  • Boot loader indlæser kerne og initramfs.
  • Boot loader sender kontrollen til kernen.
  • Kernel initialiserer hardware + eksekverer /sbin/initsom pid 1.
  • Systemd udfører alle initrd-mål (monterer filsystemet på /sysroot).
  • Kernel root FS skiftede fra initramfs root ( /sysroot) til system rootfs ( /) og systemd genkøres som systemversion.
  • Systemd søger efter standardmål og starter/stopper enheder som konfigureret, mens den automatisk løser afhængigheder og login-siden vises.

For mere information om opstartsprocessen, se den officielle OS-dokumentation til dit system.

Systemdækkede mål

Mål er grundlæggende afhængighedstjek. De har en "før" og "efter" konfiguration for præcis, hvilke tjenester der kræves for at nå dette mål. For eksempel: arp.ethernet.service, firewalld.service, og så videre skal startes og arbejde, før det network.targetkan nås. Hvis den ikke nås, kan tjenester som httpd, nfs, og ldapikke startes. Der er 4 mål, der kan indstilles i RHEL/CentOS 7.

  • graphical.target (GUI-grænseflade)
  • multi-user.target (multibrugertilstand, tekstbaseret login)
  • rescue.target (sulogin-prompt, grundlæggende systeminitialisering)
  • emergency.target (sulogin-prompt, initramfs pivot komplet og systemrod monteret på / som skrivebeskyttet)

Brug følgende for at se det aktuelle standardopstartsmål:

systemctl get-default

Husk, du kan ændre dette under kørsel ved at isolere målet. Dette vil starte/stoppe alle tjenester forbundet med det nye mål, så vær forsigtig (se systemctl isolate new.target).

Enkeltbrugertilstand

Der er tidspunkter, hvor du bliver nødt til at starte op i enkeltbrugertilstand for at løse et problem med operativsystemet. Til dette eksempel vil jeg vise dig, hvordan du bruger den, rescue.targetder er "enkeltbrugertilstand" på RHEL/CentOS 7.

  1. Afbryd grub2-menuen ved at trykke på "e" for at redigere, når du bliver bedt om det med grub-menuen.
  2. Find linjen, der specificerer kerneversionen ( vmlinuz ), og føj følgende til den:systemd.unit=rescue.target
  3. Tryk på "Ctrl+x" for at starte.
  4. Du vil derefter blive bedt om at angive root-adgangskoden for at fortsætte, når du forlader redningsskallen, vil opstartsprocessen fortsætte med at indlæse dit standardmål.

Gendannelse af root-adgangskoden

Denne proces er lidt anderledes end hvad vi har brugt i tidligere udgivelser, men det er en simpel opgave og kræver meget få trin for at gøre det. Hvis du har brug for at gendanne legitimationsoplysninger, kan du bruge denne metode til at få adgang til en VM. Du kan stadig starte fra en live-cd, montere rodfilsystemet og redigere adgangskoden, men den metode er dateret og kræver mere indsats.

  1. Genstart systemet.
  2. Afbryd grub2-menuen ved at trykke på "e" for at redigere, når du bliver bedt om det med grub-menuen.
  3. Flyt markøren til slutningen af ​​linjen, der specificerer kernen ( vmlinuz ). Du ønsker måske at fjerne alle andre konsoller end TTY0, men dette trin er muligvis ikke nødvendigt i dit miljø.
  4. Tilføj rd.break( ingen anførselstegn ), som vil bryde opstartsprocessen lige før kontrollen overføres fra initramfs til det faktiske system.
  5. Ctrl+x for at starte.

På dette tidspunkt præsenteres en rodskal med rodfilsystemet monteret i skrivebeskyttet tilstand på /sysroot. Vi bliver nødt til at genmontere den med skriverettigheder.

Genmonter /sysroot.

# mount -oremount,rw /sysroot

Skift til et chroot-fængsel.

# chroot /sysroot

Skift adgangskoden for den bruger, hvor vi har forældede legitimationsoplysninger.

# passwd <username>

Hvis du bruger SElinux, bør du overveje at ommærke alle filer, før du fortsætter opstartsprocessen. Denne del kan springes over, hvis du ikke bruger SElinux.

# touch /.autorelabel

Afslut to gange, og systemet starter rent fra det punkt, hvor vi afbrød det.

Gennemgang af logfiler fra tidligere støvler

Det kan være nyttigt at se logfiler over tidligere mislykkede opstartsforsøg. Hvis de journalførte logfiler er blevet gjort persistente (normalt gemt i hukommelsen og frigivet ved opstart), kan dette gøres med journalctlværktøjet. Følg disse trin, hvis du har brug for at konfigurere vedvarende opstartslogning.

Som root skal du oprette logfilen, så disse oplysninger kan gemmes.

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

For at inspicere logfilerne for en tidligere opstart skal du bruge -bindstillingen med journalctl. Uden nogen argumenter, -bfiltrerer output kun til meddelelser, der vedrører den sidste opstart. Et negativt tal til dette argument vil filtrere på tidligere støvler. For eksempel:

# journalctl -b-1 -p err

Dette vil vise dig fejllogfilerne fra opstarten, der fandt sted før den seneste. Du bør ændre den numeriske værdi, så den afspejler den støvle, du skal se.

Reparation af disk- og filsystemfejl

En af de mest almindelige opstartsfejl er en forkert konfigureret /etc/fstabfil. Du KAN IKKE bruge til rescue.targetat rette en /etc/fstabfejl. De fleste af disse problemer vil kræve, at vi bruger emergency.targetsiden "redning" kræver et mere funktionelt system.

Følgende er eksempler på problemer, der kræver emergency.target:

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

Vigtigt : Efter at have redigeret /etc/fstabfilen i nødtilstand, skal du køre følgende for sikkerhedsforanstaltninger:

# systemctl daemon-reload

Her er et gennemgangseksempel. Vi starter op i nødtilstand for at fjerne en falsk indtastning i /etc/fstab.

  1. Afbryd grub2-menuen ved at trykke på "e" for at redigere, når du bliver bedt om det med grub-menuen.
  2. Find linjen, der specificerer kerneversionen ( vmlinuz ), og føj følgende til den:systemd.unit=emergency.target
  3. Tryk på "Ctrl + x" for at starte.
  4. Du vil blive bedt om at angive root-adgangskoden for at fortsætte.
  5. Genmonter, /så vi kan foretage ændringer i fstabfilen:# mount -oremount,rw /
  6. Vi kan bruge mountkommandoen til at se, hvilken post der forårsager fejlen:# mount -a
  7. Fjern den stødende post fra fstabfilen.
  8. Brug mount -aigen for at sikre dig, at fejlen er løst.
  9. Brug systemctl daemon-reloadsom jeg havde nævnt tidligere til at genindlæse alle enhedsfiler og genskabe hele afhængighedstræet.

Når du forlader nødskallen, vil systemet afslutte opstarten fra nødmålet, og du vil derefter kunne fortsætte som normalt fra det tidspunkt. Dette eksempel blev netop brugt til at vise dig processen med at bruge nødmålet til at foretage vedvarende ændringer af filer på systemet.

Problemer med bootloader med Grub 2

Den /boot/grub2/grub.cfgfil er den vigtigste konfigurationsfil. IKKE nogensinde redigere denne fil manuelt. Brug grub2-mkconfigi stedet til at generere den nye grub2-konfiguration ved hjælp af et sæt af forskellige konfigurationsfiler og listen over de installerede kerner. Den grub2-mkconfigkommando vil se på /etc/default/grubfor muligheder, såsom standard menu timeout og kerne-kommandolinjen for at bruge, og derefter bruge et sæt af scripts i /etc/grub.d/at generere den resulterende konfigurationsfil.

Her er et tekstdiagram af dette forhold.

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

Vigtigt: For at redigere hovedfilen grub.cfg skal du foretage de ønskede ændringer til /etc/default/grubog til filer i /etc/grub.d/og derefter oprette en ny grub.cfgved at køre:

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

Fejlfinding af grub

Det er vigtigt at forstå syntaksen for /boot/grub2/grub.cfgfilen før fejlfinding.

  • For det første er opstartbare poster kodet i 'menuindgang'-blokke. I disse blokke peger linux16og initrd16linjer på kernen, der skal indlæses fra disken (sammen med kernens kommandolinje) og initramf'erne, der skal indlæses. Under interaktiv redigering ved opstart bruges fanen til at finde disse linjer.
  • "Set root"-linjerne inde i disse blokke peger ikke på rodfilsystemet for RHEL/CentOS 7-systemet, men peger i stedet på det filsystem, hvorfra grub2 skal indlæse kerne- og initramfs-filerne. Syntaksen er, harddrive.partitionhvor hd0er den første harddisk i systemet og hd1er den anden. Partitionerne er angivet som msdos1for den første MBR-partition eller gpt1for den første GPT-partition.

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 skal geninstallere bootloaderen på en enhed, skal du bruge følgende kommando.

# grub2-install <device>

Reparation af en ødelagt grub-installation

Til tilfælde, hvor systemet ikke vil starte efter at have nået grub2-menuen.

  • Du bør starte med at redigere grub-menuen og søge efter syntaksfejl. Hvis du finder en, skal du rette den og komme ind i systemet for at foretage vedvarende ændringer for at løse problemet.
  • Hvis du ikke kan finde nogen fejl, se ovenstående afsnit, hvor vi starter ind i nødmålet. Du bliver nødt til at genmontere root ( /) igen.
  • Se den aktuelle grub2-konfiguration med følgende kommando: # grub2-mkconfig
  • Hvis du ikke ser nogen fejl, er det sandsynligt, at nogen har redigeret /boot/grub2/grub.cfgfilen. Rediger ikke denne fil. Genopbyg konfigurationen med følgende kommando:# grub2-mkconfig > /boot/grub2/grub.cfg

Når du har genopbygget grub-konfigurationen, burde du være i stand til at genstarte uden at have nogen problemer.


Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruger du et andet system? Plesk er et proprietært webhost kontrolpanel, der giver brugerne mulighed for at administrere deres personlige og/eller klienters websteder, databaser

Sådan installeres Squid Proxy på CentOS

Sådan installeres Squid Proxy på CentOS

Squid er et populært, gratis Linux-program, der giver dig mulighed for at oprette en webproxy til videresendelse. I denne vejledning vil du se, hvordan du installerer Squid på CentOS for at gøre dig

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Introduktion Lighttpd er en forgrening af Apache, der sigter mod at være meget mindre ressourcekrævende. Den er let, deraf navnet, og den er ret enkel at bruge. Installer

Konfiguration af statisk netværk og IPv6 på CentOS 7

Konfiguration af statisk netværk og IPv6 på CentOS 7

VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 er et kraftfuldt overvågningssystem, og når det bruges i en master-klient-model, kan det erstatte behovet for NRPE-baserede overvågningstjek. Mester-klienten

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Sådan installeres Microweber på CentOS 7

Sådan installeres Microweber på CentOS 7

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Sådan installeres Mattermost 4.1 på CentOS 7

Sådan installeres Mattermost 4.1 på CentOS 7

Bruger du et andet system? Mattermost er et open source, selvhostet alternativ til Slack SAAS-meddelelsestjenesten. Med andre ord, med Mattermost er du ca

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først

Lad os kryptere på Plesk

Lad os kryptere på Plesk

Plesk-kontrolpanelet har en meget flot integration til Lets Encrypt. Lets Encrypt er en af ​​de eneste SSL-udbydere, der udleverer certifikater komplet

Lader kryptere på cPanel

Lader kryptere på cPanel

Lets Encrypt er en certifikatmyndighed dedikeret til at levere SSL-certifikater gratis. cPanel har bygget en pæn integration, så du og din klient

Sådan installeres Concrete5 på CentOS 7

Sådan installeres Concrete5 på CentOS 7

Bruger du et andet system? Concrete5 er et open source CMS, som tilbyder mange karakteristiske og nyttige funktioner til at hjælpe redaktører med at producere indhold nemt og

Sådan installeres Review Board på CentOS 7

Sådan installeres Review Board på CentOS 7

Bruger du et andet system? Review Board er et gratis og open source-værktøj til gennemgang af kildekode, dokumentation, billeder og mange flere. Det er webbaseret software

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

I denne vejledning lærer du, hvordan du opsætter HTTP-godkendelse for en Nginx-webserver, der kører på CentOS 7. Krav For at komme i gang skal du bruge

Sådan installeres YOURLS på CentOS 7

Sådan installeres YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en open source URL-forkortelse og dataanalyseapplikation. I denne artikel vil vi dække installationsprocessen

Sådan installeres og konfigureres ArangoDB på CentOS 7

Sådan installeres og konfigureres ArangoDB på CentOS 7

Bruger du et andet system? Introduktion ArangoDB er en open source NoSQL-database med en fleksibel datamodel for dokumenter, grafer og nøgleværdier. det er

Brug af Etckeeper til versionskontrol af /etc

Brug af Etckeeper til versionskontrol af /etc

Introduktion /etc/-biblioteket spiller en afgørende rolle i den måde et Linux-system fungerer på. Årsagen til dette er, at næsten alle systemkonfigurationer

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Mange systemadministratorer administrerer store mængder servere. Når filer skal tilgås på tværs af forskellige servere, logges ind på hver enkelt individuelt ca

Opsætning af en Half Life 2-server på CentOS 6

Opsætning af en Half Life 2-server på CentOS 6

Denne vejledning vil dække processen med at installere en Half Life 2-spilserver på CentOS 6 System. Trin 1: Installation af forudsætninger For at opsætte ou

Sådan installeres Laravel GitScrum på CentOS 7

Sådan installeres Laravel GitScrum på CentOS 7

Laravel GitScrum eller GitScrum er et open source-produktivitetsværktøj designet til at hjælpe udviklingsteams med at implementere Scrum-metoden på en måde, der ligner t.

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 lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere