CentOS 7 en RHEL 7 Opstartprocesoverzicht en probleemoplossing

Dit artikel beschrijft het opstartproces voor CentOS / RHEL 7.x-systemen. Hoewel het vergelijkbaar kan blijven met eerdere releases, wordt met RHEL 7 systemd geïntroduceerd. Naast het opstartproces zal ik onderweg tips en trucs voor het oplossen van problemen geven.

U moet het opstartproces begrijpen voordat u actief een probleem bij het opstarten kunt oplossen. Bekijk de onderstaande stappen totdat u bekend bent met het proces.

Overzicht op hoog niveau

  • Power + post.
  • Firmware-apparaat zoeken.
  • Firmware leest bootloader.
  • Bootloader laadt configuratie (grub2).
  • Bootloader laadt kernel en initramfs.
  • Boot loader geeft controle door aan de kernel.
  • Kernel initialiseert hardware + wordt uitgevoerd /sbin/initals pid 1.
  • Systemd voert alle initrd-doelen uit (koppelt bestandssysteem aan /sysroot).
  • Kernel root FS is overgeschakeld van initramfs root ( /sysroot) naar systeem rootfs ( /) en systemd wordt opnieuw uitgevoerd als systeemversie.
  • Systemd zoekt naar standaard doel en start / stopt eenheden zoals geconfigureerd terwijl automatisch afhankelijkheden worden opgelost en de inlogpagina verschijnt.

Raadpleeg de officiële OS-documentatie voor uw systeem voor meer informatie over het opstartproces.

Systemd-doelen

Doelen zijn in feite afhankelijkheidscontroles. Ze hebben een "voor" en "na" configuratie voor precies welke services nodig zijn om dat doel te bereiken. Bijvoorbeeld: arp.ethernet.service, firewalld.service, enzovoort moeten worden gestart en werkt voordat network.targetkan worden bereikt. Als het niet wordt bereikt, diensten, zoals httpd, nfsen ldapkan niet worden gestart. Er zijn 4 doelen die kunnen worden ingesteld in RHEL / CentOS 7.

  • graphical.target (GUI-interface)
  • multi-user.target (multi-user modus, op tekst gebaseerde login)
  • rescue.target (sulogin prompt, basissysteeminitialisatie)
  • emergency.target (sulogin prompt, initramfs pivot complete en systeem root gemount op / als alleen-lezen)

Gebruik het volgende om het huidige standaard opstartdoel te bekijken:

systemctl get-default

Houd er rekening mee dat u dit tijdens runtime kunt wijzigen door het doel te isoleren. Hiermee worden alle services gestart / gestopt die aan het nieuwe doel zijn gekoppeld, dus wees voorzichtig (zie systemctl isolate new.target).

Enkele gebruikersmodus

Er zijn momenten waarop u in de modus voor één gebruiker moet opstarten om een ​​probleem met het besturingssysteem op te lossen. Voor dit voorbeeld zal ik je laten zien hoe je de rescue.target"single user mode" op RHEL / CentOS 7 kunt gebruiken.

  1. Onderbreek het grub2-menu door op "e" te drukken om te bewerken wanneer daarom wordt gevraagd in het grub-menu.
  2. Zoek de regel die de kernelversie ( vmlinuz ) specificeert en voeg het volgende eraan toe:systemd.unit=rescue.target
  3. Druk op "Ctrl + x" om te beginnen.
  4. U wordt dan gevraagd om door te gaan met het root-wachtwoord, zodra u de reddingsshell verlaat, zal het opstartproces uw standaarddoel blijven laden.

Het root-wachtwoord herstellen

Dit proces is een beetje anders dan wat we in eerdere releases hebben gebruikt, maar het is een eenvoudige taak en vereist heel weinig stappen om dit te doen. Als u inloggegevens moet herstellen, kunt u deze methode gebruiken om toegang te krijgen tot een virtuele machine. Je kunt nog steeds opstarten vanaf een live-cd, het root-bestandssysteem mounten en het wachtwoord bewerken, maar die methode is verouderd en vereist meer inspanning.

  1. Start het systeem opnieuw op.
  2. Onderbreek het grub2-menu door op "e" te drukken om te bewerken wanneer daarom wordt gevraagd in het grub-menu.
  3. Verplaats de cursor naar het einde van de regel die de kernel ( vmlinuz ) specificeert . Mogelijk wilt u alle andere consoles behalve TTY0 verwijderen, maar deze stap is mogelijk niet nodig in uw omgeving.
  4. Voeg toe rd.break( geen aanhalingstekens ) die het opstartproces zullen doorbreken net voordat de controle wordt overgedragen van initramfs naar het daadwerkelijke systeem.
  5. Ctrl + x om op te starten.

Op dit punt wordt een rootshell gepresenteerd met het rootbestandssysteem aangekoppeld in de alleen-lezenmodus /sysroot. We zullen het opnieuw moeten monteren met schrijfrechten.

Opnieuw monteren /sysroot.

# mount -oremount,rw /sysroot

Schakel over naar een chroot-gevangenis.

# chroot /sysroot

Wijzig het wachtwoord voor de gebruiker met verouderde inloggegevens.

# passwd <username>

Als je SElinux gebruikt, zou je moeten overwegen om alle bestanden opnieuw te labelen voordat je verder gaat met het opstartproces. Dit onderdeel kan overgeslagen worden als je geen gebruik maakt van SElinux.

# touch /.autorelabel

Sluit twee keer af en het systeem start netjes op vanaf het punt dat we het hebben onderbroken.

Logboeken van eerdere opstartprocedures bekijken

Het kan handig zijn om logboeken van eerdere mislukte opstartpogingen te bekijken. Als de journald-logs persistent zijn gemaakt (normaal gesproken opgeslagen in het geheugen en vrijgegeven bij het opstarten), kan dit worden gedaan met de journalctltool. Volg deze stappen als u persistente opstartregistratie moet instellen.

Maak als root het logbestand aan om deze informatie op te slaan.

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

Gebruik de -boptie met om de logs van een vorige boot te inspecteren journalctl. Zonder enige argumenten, -bfiltert de uitvoer alleen op berichten die betrekking hebben op de laatste keer opstarten. Een negatief getal voor dit argument wordt gefilterd op eerdere boots. Bijvoorbeeld:

# journalctl -b-1 -p err

Dit toont u de foutlogboeken van de opstartprocedure die plaatsvonden vóór de meest recente. U moet de numerieke waarde wijzigen om de boot weer te geven die u moet bekijken.

Schijf- en bestandssysteemfouten herstellen

Een van de meest voorkomende opstartfouten is een verkeerd geconfigureerd /etc/fstabbestand. Je kunt het niet gebruiken rescue.targetom een /etc/fstabfout te herstellen . Voor de meeste van deze problemen moeten we de emergency.target"redding" gebruiken die een functioneler systeem vereist.

Hier volgen enkele voorbeelden van problemen waarvoor het volgende nodig is emergency.target:

  1. Corrupt bestandssysteem.
  2. Bestaande UUID in /etc/fstab.
  3. Niet-bestaand aankoppelpunt in /etc/fstab.
  4. Onjuiste montageoptie in /etc/fstab.

Belangrijk : nadat u het /etc/fstabbestand in de noodmodus hebt bewerkt , moet u het volgende uitvoeren voor veiligheidsmaatregelen:

# systemctl daemon-reload

Hier is een voorbeeld van een walkthrough. We gaan opstarten in de noodmodus om een ​​valse invoer in te verwijderen /etc/fstab.

  1. Onderbreek het grub2-menu door op "e" te drukken om te bewerken wanneer daarom wordt gevraagd in het grub-menu.
  2. Zoek de regel die de kernelversie ( vmlinuz ) specificeert en voeg het volgende eraan toe:systemd.unit=emergency.target
  3. Druk op "Ctrl + x" om op te starten.
  4. Je wordt gevraagd om het root-wachtwoord om door te gaan.
  5. Remount /zodat we wijzigingen in het fstabbestand kunnen aanbrengen :# mount -oremount,rw /
  6. We kunnen de mountopdracht gebruiken om te zien welk item de fout veroorzaakt:# mount -a
  7. Verwijder de aanstootgevende vermelding uit het fstabbestand.
  8. Gebruik mount -aopnieuw om er zeker van te zijn dat de fout is opgelost.
  9. Gebruik systemctl daemon-reloadzoals ik eerder had vermeld om alle eenheidsbestanden opnieuw te laden en de volledige afhankelijkheidsboom opnieuw te maken.

Zodra u de noodshell verlaat, is het systeem klaar met opstarten vanaf het nooddoel, u kunt dan vanaf dat punt gewoon doorgaan. Dit voorbeeld werd alleen gebruikt om u het proces te laten zien van het gebruik van het nooddoel om blijvende wijzigingen aan bestanden op het systeem aan te brengen.

Bootloader problemen met Grub 2

Het /boot/grub2/grub.cfgbestand is het belangrijkste configuratiebestand. Bewerk dit bestand NOOIT handmatig. Gebruik grub2-mkconfigin plaats daarvan om de nieuwe grub2-configuratie te genereren met behulp van een set verschillende configuratiebestanden en de lijst met geïnstalleerde kernels. De grub2-mkconfigopdracht zal kijken /etc/default/grubnaar opties zoals de standaard menu-time-out en de kernel-opdrachtregel om te gebruiken, en vervolgens een set scripts /etc/grub.d/gebruiken om het resulterende configuratiebestand te genereren.

Hier is een tekstueel diagram van deze relatie.

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

Belangrijk: om het hoofdbestand grub.cfg te bewerken, moet u de gewenste wijzigingen in /etc/default/gruben naar bestanden in aanbrengen /etc/grub.d/en vervolgens een nieuwe maken grub.cfgdoor te draaien:

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

Problemen met grub oplossen

Het is belangrijk om de syntaxis van het /boot/grub2/grub.cfgbestand te begrijpen voordat u problemen oplost.

  • Ten eerste worden opstartbare items gecodeerd in 'menuentry'-blokken. In deze blokken linux16en initrd16lijnen wijzen op de kernel te laden van schijf (samen met de kernelopdrachtregel) en initramfs te laden. Tijdens interactieve bewerking bij het opstarten wordt het tabblad gebruikt om deze regels te vinden.
  • De "set root" -lijnen binnen die blokken verwijzen niet naar het root-bestandssysteem voor het RHEL / CentOS 7-systeem, maar verwijzen naar het bestandssysteem van waaruit grub2 de kernel- en initramfs-bestanden moet laden. De syntaxis is harddrive.partitionwanneer hd0de eerste harde schijf in het systeem en hd1is het tweede. De partities worden aangegeven als msdos1voor de eerste MBR-partitie of gpt1voor de eerste GPT-partitie.

Voorbeeld van /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

Gebruik de volgende opdracht als u de bootloader opnieuw op een apparaat moet installeren.

# grub2-install <device>

Een gebroken grub-installatie repareren

Voor gevallen waarin het systeem niet opstart nadat het het grub2-menu heeft bereikt.

  • U moet beginnen met het bewerken van het grub-menu en zoeken naar syntaxisfouten. Als u er een vindt, corrigeer deze dan en ga naar het systeem om blijvende wijzigingen aan te brengen om het probleem op te lossen.
  • Als u geen fouten kunt vinden, raadpleegt u het bovenstaande gedeelte waar we opstarten in het nooddoel. U moet root ( /) opnieuw opnieuw koppelen .
  • Bekijk de huidige grub2-configuratie met de volgende opdracht: # grub2-mkconfig
  • Als u geen fouten ziet, is het waarschijnlijk dat iemand het /boot/grub2/grub.cfgbestand heeft bewerkt . Wijzig dit bestand niet. Bouw de configuratie opnieuw op met de volgende opdracht:# grub2-mkconfig > /boot/grub2/grub.cfg

Nadat u de grub-configuratie opnieuw hebt opgebouwd, zou u in staat moeten zijn opnieuw op te starten zonder problemen.



Leave a Comment

CyberPanel installeren en configureren op uw CentOS 7-server

CyberPanel installeren en configureren op uw CentOS 7-server

Gebruikt u een ander systeem? Introductie CyberPanel is een van de eerste bedieningspanelen op de markt die zowel open source is als OpenLiteSpeed ​​gebruikt. Wat thi

Sensu Monitoring installeren en configureren op CentOS 7

Sensu Monitoring installeren en configureren op CentOS 7

Introductie Sensu is een gratis en open source monitoringoplossing die kan worden gebruikt om server, applicatie en verschillende systeemservices te monitoren. Sensu i

Sudo gebruiken op Debian, CentOS en FreeBSD

Sudo gebruiken op Debian, CentOS en FreeBSD

Het gebruik van een sudo-gebruiker om toegang te krijgen tot een server en opdrachten uit te voeren op rootniveau is een veel voorkomende praktijk onder Linux en Unix-systeembeheerder. Het gebruik van een sud

Stel Nginx-RTMP in op CentOS 7

Stel Nginx-RTMP in op CentOS 7

Gebruikt u een ander systeem? RTMP is geweldig voor het weergeven van live inhoud. Wanneer RTMP is gekoppeld aan FFmpeg, kunnen streams worden omgezet in verschillende kwaliteiten. Vultr ik

Hoe TaskBoard 0.3.1 op CentOS 7 te installeren

Hoe TaskBoard 0.3.1 op CentOS 7 te installeren

TaskBoard is een gratis en open source webbeheer voor tijdbeheer. Geïnspireerd door Kanban, kan TaskBoard u helpen bij het bijhouden van dingen die moeten worden gedaan in een

Gradle installeren op CentOS 7

Gradle installeren op CentOS 7

Gebruikt u een ander systeem? Gradle is een gratis en open source toolset voor het automatiseren van builds, gebaseerd op de concepten van Apache Ant en Apache Maven. Gradle biedt

Installeer een FTP-server met ProFTPd op CentOS 6 of CentOS 7

Installeer een FTP-server met ProFTPd op CentOS 6 of CentOS 7

Gebruikt u een ander systeem? In deze handleiding zullen we zien hoe u een FTP-server (ProFTPd) configureert om bestanden over te zetten tussen uw pc en uw server.

Netdata installeren op CentOS 7

Netdata installeren op CentOS 7

Gebruikt u een ander systeem? Netdata is een rijzende ster op het gebied van realtime monitoring van systeemstatistieken. Vergeleken met andere tools van dezelfde soort, Netdata:

Hoe Apache Cassandra 3.11.x op CentOS 7 te installeren

Hoe Apache Cassandra 3.11.x op CentOS 7 te installeren

Gebruikt u een ander systeem? Apache Cassandra is een gratis en open source NoSQL-databasebeheersysteem dat is ontworpen om schaalbaarheid te bieden

Hoe Just Cause 2 (JC2-MP) -server op CentOS 7 te installeren

Hoe Just Cause 2 (JC2-MP) -server op CentOS 7 te installeren

In deze tutorial leer je goed hoe je een Just Cause 2 multiplayer-server opzet. Vereisten Zorg ervoor dat het systeem volledig is bijgewerkt voordat we beginnen

Hoe Starbound Server op CentOS 7 te installeren

Hoe Starbound Server op CentOS 7 te installeren

Gebruikt u een ander systeem? In deze tutorial leg ik uit hoe je een Starbound-server instelt op CentOS 7. Vereisten Je moet dit spel op je hebben

ZNC installeren en configureren op CentOS 7

ZNC installeren en configureren op CentOS 7

ZNC is een gratis en open-source IRC-uitsmijter die permanent verbonden blijft met een netwerk, zodat klanten berichten kunnen ontvangen die worden verzonden terwijl ze offline zijn. Thi

Django installeren op CentOS 7

Django installeren op CentOS 7

Django is een populair Python-framework voor het schrijven van webapplicaties. Met Django kun je sneller applicaties bouwen, zonder het wiel opnieuw uit te vinden. Als je wilt

MantisBT 2.5 installeren op CentOS 7

MantisBT 2.5 installeren op CentOS 7

MantisBT, of Mantis Bug Tracker, is een open source issue tracker geschreven in PHP. MantisBT is uitgebalanceerd tussen gebruiksgemak en functionaliteit, mits

Installeer Elgg op CentOS 7

Installeer Elgg op CentOS 7

Gebruikt u een ander systeem? Elgg is een open source engine voor sociaal netwerken waarmee sociale omgevingen kunnen worden gecreëerd, zoals sociale campusnetwerken

Hoe installeer ik het Froxlor Server Management Panel op CentOS 7

Hoe installeer ik het Froxlor Server Management Panel op CentOS 7

Froxlor is een open source, gratis, lichtgewicht en toch krachtig serverbeheerpaneel dat geweldig is voor het opzetten en beheren van webhostingservices. Thi

Hoe Alfresco Community Edition op CentOS 7 te installeren

Hoe Alfresco Community Edition op CentOS 7 te installeren

Gebruikt u een ander systeem? Alfresco Community Edition is een open source-versie van de Alfresco Content Services. Het is geschreven in Java en gebruikt PostgreSQL t

Hoe Vtiger CRM Open Source Edition op CentOS 7 te installeren

Hoe Vtiger CRM Open Source Edition op CentOS 7 te installeren

Vtiger CRM is een populaire applicatie voor klantrelatiebeheer die bedrijven kan helpen hun verkoop te laten groeien, klantenservice te bieden en de winst te vergroten. ik

Een netwerk van Minecraft-servers maken met BungeeCord op Debian 8, Debian 9 of CentOS 7

Een netwerk van Minecraft-servers maken met BungeeCord op Debian 8, Debian 9 of CentOS 7

Wat je nodig hebt Een Vultr VPS met minimaal 1 GB RAM. SSH-toegang (met root- / beheerdersrechten). Stap 1: BungeeCord installeren Eerste dingen eerst

Hoe MaraDNS op CentOS 6 te installeren

Hoe MaraDNS op CentOS 6 te installeren

MaraDNS is een lichtgewicht maar robuust open source DNS-serverprogramma. Vergeleken met andere applicaties van dezelfde soort, zoals ISC BIND, PowerDNS en djbdns

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Kan AI vechten met toenemend aantal ransomware-aanvallen?

Ransomware-aanvallen nemen toe, maar kan AI helpen het nieuwste computervirus het hoofd te bieden? Is AI het antwoord? Lees hier weten is AI boezem of vloek

ReactOS: is dit de toekomst van Windows?

ReactOS: is dit de toekomst van Windows?

ReactOS, een open source en gratis besturingssysteem is hier met de nieuwste versie. Kan het voldoen aan de behoeften van moderne Windows-gebruikers en Microsoft uitschakelen? Laten we meer te weten komen over deze oude stijl, maar een nieuwere OS-ervaring.

Blijf verbonden via WhatsApp Desktop-app 24 * 7

Blijf verbonden via WhatsApp Desktop-app 24 * 7

WhatsApp heeft eindelijk de Desktop-app voor Mac- en Windows-gebruikers gelanceerd. Nu heb je eenvoudig toegang tot WhatsApp vanuit Windows of Mac. Beschikbaar voor Windows 8+ en Mac OS 10.9+

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Hoe AI procesautomatisering naar een hoger niveau kan tillen?

Lees dit om te weten hoe kunstmatige intelligentie populair wordt onder de kleinschalige bedrijven en hoe het de kansen vergroot om ze te laten groeien en hun concurrenten voorsprong te geven.

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

macOS Catalina 10.15.4 Supplement Update veroorzaakt meer problemen dan het oplost

Onlangs heeft Apple macOS Catalina 10.15.4 uitgebracht, een aanvullende update om problemen op te lossen, maar het lijkt erop dat de update meer problemen veroorzaakt die ertoe leiden dat mac-machines worden gemetseld. Lees dit artikel voor meer informatie

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

13 Commerciële data-extractietools voor big data

Wat is een logboekbestandssysteem en hoe werkt het?

Wat is een logboekbestandssysteem en hoe werkt het?

Onze computer slaat alle gegevens op een georganiseerde manier op, het zogenaamde Journaling-bestandssysteem. Het is een efficiënte methode waarmee de computer bestanden kan zoeken en weergeven zodra u op zoeken drukt.https://wethegeek.com/?p=94116&preview=true

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Technologische singulariteit: een verre toekomst van de menselijke beschaving?

Naarmate de wetenschap zich snel ontwikkelt en veel van onze inspanningen overneemt, nemen ook de risico's toe om onszelf te onderwerpen aan een onverklaarbare singulariteit. Lees, wat singulariteit voor ons kan betekenen.

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

Een inzicht in 26 Big Data-analysetechnieken: deel 1

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

De impact van kunstmatige intelligentie in de gezondheidszorg 2021

AI in de zorg heeft de afgelopen decennia grote sprongen gemaakt. De toekomst van AI in de gezondheidszorg groeit dus nog steeds met de dag.