Napaka zagona /etc/fstab: zasilni način in journalctl | INTROSERV
EUR
european

EUR

usa

USD

Slovenia Sl
Ex. VAT Ex. VAT 0%

Kako odpraviti napako zagona /etc/fstab z journalctl

Raven: Začetnik / Srednje napreden
Ocenjeni čas: ~15 minut
Cilj: Z journalctl analizirati sistemske dnevnike, da prepoznate in odpravite napako v /etc/fstab, ki preprečuje zagon sistema.

Uvod

Preprosta sintaktična napaka v /etc/fstab lahko prepreči zagon strežnika in vas pripelje v zasilno lupino za vzdrževanje. Za obnovitev morate analizirati sistemske dnevnike in ugotoviti natančno mesto okvare. V tem vodniku bomo z journalctl poizvedovali po journalu systemd in si ogledali sistemske dnevnike, ki jih Linux ustvari med zagonom. Razumevanje dnevnikov systemd je ključna veščina pri upravljanju dnevnikov v Linuxu, ki zagotavlja hitro obnovitev in visoko razpoložljivost vaših storitev. Za iskanje priklopne točke, ki je povzročila okvaro, je potrebno osnovno poznavanje ukazov journalctl.

Upravljanje dnevnikov v Linuxu in sklad beleženja

Preden se lotite obnovitve, je pomembno razumeti vključene komponente. Systemd (sistem init in upravitelj storitev v Linuxu) uporablja Systemd-journald (sistemsko storitev, ki zbira in shranjuje podatke dnevnikov). Ta storitev zbira vsak dnevnik (log) (zapis dogodkov, ki se zgodijo v sistemu) v Journal (binarne podatke dnevnikov, ki jih shranjuje Systemd-journald). Med njimi so sistemski dnevniki (zapisi dogodkov in sprememb stanja na ravni celotnega sistema), zagonski dnevniki (zapisi postopka zagona sistema) in dnevniki jedra (sporočila, ki jih ustvari jedro operacijskega sistema).

Glede na konfiguracijo so lahko to nestalni dnevniki (dnevniki, shranjeni v pomnilniku, ki se ob ponovnem zagonu izgubijo) ali trajni dnevniki (dnevniki, ki preživijo ponovne zagone, običajno shranjeni na disku). Journal nenehno raste, zato rotacijo dnevnikov (postopek arhiviranja in upravljanja starih datotek dnevnikov za prihranek prostora na disku) samodejno upravlja systemd.

Predpogoji

Pred začetkom se prepričajte, da so izpolnjeni naslednji pogoji:

  • Operacijski sistem: Preizkušeno na Ubuntu 22.04/24.04 LTS, Debian 12/13, AlmaLinux/Rocky 9/10
  • Dostop: Neposreden dostop do konzole (IPMI, VNC ali fizična konzola) za dostop do zasilne lupine
  • Zahtevano znanje: Samozavestna uporaba ukazne vrstice Linuxa in osnovno urejanje besedila

Info

Pri privzetih namestitvah Ubuntu in Debiana je račun root zaklenjen. Vnaprej nastavite geslo za root z ukazom sudo passwd root, sicer se ne boste mogli prijaviti v zasilni način.
Primerki VPS so pogosto dobavljeni s privzeto omogočenim uporabnikom root.

Korak 1: Prepoznavanje okvare zagona

Sintaktična napaka, tipkarska napaka ali manjkajoča naprava v /etc/fstab sproži zasilni način, ustavi postopek zagona in prikaže sporočilo, kot je to:

Welcome to emergency mode! After logging in, type "journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to boot into default mode. Give root password for maintenance (or press Control-D to continue):

Vnesite geslo za root, da pridete do ukaznega poziva. Na tej stopnji nekateri datotečni sistemi morda niso priklopljeni ali pa so priklopljeni samo za branje.

Korak 2: Uporaba journalctl za ogled in analizo sistemskih dnevnikov, ki jih ustvari Linux

Da ugotovimo vzrok okvare, moramo preveriti dnevnike trenutnega zagona.

Zaženite naslednji ukaz:

sudo journalctl -xb

Tu uporabljamo Journalctl (orodje ukazne vrstice za poizvedovanje po journalu systemd). To je eden najpomembnejših ukazov journalctl. Orodju naroči, naj prikaže dnevnike trenutnega zagona (-b) in vključi dodatno pojasnjevalno besedilo (-x).

Izpis je lahko obsežen. Za iskanje napake moramo izvesti filtriranje dnevnikov (postopek zožanja izpisa dnevnikov glede na določena merila).

Za iskanje znotraj pregledovalnika (ki uporablja less) vnesite /fstab ali /mount in pritisnite Enter.

Odlomek pričakovanega izpisa:

-- Subject: A start job for unit mnt-data.mount has failed -- Defined-By: systemd -- Support: http://www.ubuntu.com/support -- -- A start job for unit mnt-data.mount has finished with a failure. -- -- The job identifier is 123 and the job result is failed.

To pomeni, da je odpovedala enota (unit) (konfiguracijska datoteka, ki opisuje, kako upravljati vir v systemd), odgovorna za priklop /mnt/data. Natančneje, enote priklopa (mount unit) (konfiguracijske datoteke enote, ki vsebuje podatke o procesu, ki ga upravlja systemd) ni bilo mogoče zagnati.

Tip

S preslednico se pomaknete stran navzdol, s tipko q pa zaprete pregledovalnik dnevnikov.

Korak 3: Filtriranje dnevnikov systemd za iskanje določenih napak

Če je pomikanje po celotnem zagonskem dnevniku prepočasno, lahko dnevnike analiziramo z journalctl z uporabo določenih filtrov.

Zaženite naslednji ukaz za ogled samo napak z visoko prioriteto:

sudo journalctl -p err -b

Pričakovani izpis:

May 23 10:00:01 server systemd[1]: Failed to mount mnt-data.mount - /mnt/data. May 23 10:00:01 server systemd[1]: Dependency failed for Local File Systems.

Tip

Sporočilo Dependency failed for Local File Systems se pojavi samo med zagonom, ne pa ob ročnem izvajanju systemctl start.

S filtriranjem dnevnikov z journalctl po prioriteti (-p err) odstranimo informativna sporočila.

Če poznamo natančno enoto, ki je odpovedala, lahko neposredno preverimo dnevnike storitve. Zaženite:

sudo journalctl -u mnt-data.mount

Ko dnevnike z journalctl analizirate na ravni enote, izolirate natančno konfiguracijsko težavo. Druga metoda filtriranja z journalctl je določitev časovnega obdobja, vendar je pri težavah z zagonom filtriranje po enoti najučinkovitejše.

Korak 4: Odprava napake v /etc/fstab

Ker je journal systemd potrdil, da je težava priklopna točka /mnt/data, moramo popraviti konfiguracijsko datoteko.

Najprej poskusite urediti datoteko. Če se ob shranjevanju pojavi napaka Read-only file system, morate korenski datotečni sistem znova priklopiti za branje in pisanje, saj ga zasilni način pogosto priklopi samo za branje:

sudo mount -o remount,rw /

Nato pred spremembami naredite varnostno kopijo konfiguracijske datoteke:

sudo cp /etc/fstab /etc/fstab.bak

Nato odprite datoteko (v sistemih, ki temeljijo na RPM, kot so AlmaLinux, Rocky ali RHEL, nano privzeto morda ni nameščen, zato ga najprej namestite z sudo dnf install -y nano):

sudo nano /etc/fstab

Poiščite vrstico, ki se sklicuje na /mnt/data (pravilni UUID lahko najdete z ukazom blkid):

UUID=1234abcd-56ef-78gh-90ij-klmnopqrstuv /mnt/data ext4 defualts 0 2

Opazite tipkarsko napako: defualts namesto defaults. Popravite jo:

UUID=1234abcd-56ef-78gh-90ij-klmnopqrstuv /mnt/data ext4 defaults 0 2

Shranite datoteko in zaprite urejevalnik. Nato znova naložite konfiguracijo upravitelja systemd, da systemd ve za spremembe v /etc/fstab:

sudo systemctl daemon-reload

Warning

Vedno preverite UUID-je in sintakso v /etc/fstab. Napačen vnos bo povzročil, da se bo sistem ob naslednjem zagonu spet vrnil v zasilno lupino.

Preverjanje

Pred ponovnim zagonom z findmnt preverite sintakso datoteke /etc/fstab:

findmnt --verify

Če ni sporočenih napak, nadaljujte s preverjanjem, ali priklopna točka deluje:

Zaženite:

sudo mount -a

Če ukaz ne vrne nobenega izpisa, je sintaksa pravilna in priklop je uspel. Če napaka še vedno obstaja, bo ukaz izpisal sporočilo o napaki. V Debianu 13 in AlmaLinux 10 sporočilo lahko navede natančen razlog (npr. Unknown parameter 'defualts'), v Ubuntu 24.04 pa je izpis pogosto splošen (wrong fs type, bad option). V Ubuntu zaženite sudo dmesg | tail za podrobnosti.

Ko je preverjeno, zapustite zasilno lupino za nadaljevanje zagona ali znova zaženite sistem:

sudo systemctl reboot

Po ponovnem zagonu lahko z ukazi journalctl znova preverite dnevnike storitve in se prepričate, da je bil priklop med običajnim zagonom uspešen:

sudo journalctl -u mnt-data.mount -b

Odpravljanje težav

  • Zasilna lupina ni dostopna: Če je račun root zaklenjen in do zasilne lupine ne morete dostopati, morate strežnik zagnati z Live USB ali okoljem za obnovitev, priklopiti korensko particijo in /etc/fstab urediti neposredno od tam.
  • UUID se je spremenil: Če ste formatirali particijo ali zamenjali disk, se bo UUID spremenil. Z sudo blkid poiščite nov UUID in ustrezno posodobite /etc/fstab.
  • Preprečevanje okvar zagona zaradi nepomembnih diskov: Pri nekorenskih in nesistemskih nosilcih (kot so diski za varnostne kopije ali podatke) vnosu v /etc/fstab dodajte možnost priklopa nofail (npr. ext4 defaults,nofail 0 2). To systemd naroči, naj nadaljuje zagon, tudi če naprave ni mogoče priklopiti.

Razveljavitev

Če se je strežnik uspešno zagnal, vendar spremenjena vrstica /mnt/data povzroča nepričakovano vedenje aplikacij, lahko priklop razveljavite tako, da vrstico v /etc/fstab zakomentirate:

sudo sed -i 's|^UUID=1234abcd-56ef-78gh-90ij-klmnopqrstuv /mnt/data|#UUID=1234abcd-56ef-78gh-90ij-klmnopqrstuv /mnt/data|' /etc/fstab

Nato odklopite nosilec, da obnovite prejšnje stanje:

sudo umount /mnt/data

Zaključek

Učinkovito upravljanje dnevnikov v Linuxu je v veliki meri odvisno od znanja o premikanju po dnevnikih systemd. Z journalctl si lahko ogledate sistemske dnevnike, ki jih ustvari Linux, jih učinkovito analizirate in se obnovite po kritičnih okvarah zagona, kot so napačne konfiguracije /etc/fstab. Obvladovanje teh orodij vam omogoča ohranjanje razpoložljivosti in diagnosticiranje zapletenih težav po vsej infrastrukturi.

Različica dokumenta: 1.0
Zadnja posodobitev: maj 2026
Lastnik: Ekipa za tehnično dokumentacijo

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA