Kako uporabiti fsck za odpravljanje napak datotečnega sistema v Linuxu


Datotečni sistemi so odgovorni za organizacijo shranjevanja in obnovitve podatkov. Tako ali drugače se lahko sčasoma datotečni sistem poškoduje in nekateri njegovi deli morda niso dostopni. Če vaš datotečni sistem razvije takšno neskladje, je priporočljivo preveriti njegovo celovitost.

To lahko dokončate s sistemskim pripomočkom, imenovanim fsck (preverjanje skladnosti datotečnega sistema). To preverjanje je mogoče samodejno opraviti med zagonom ali pa ročno.

V tem članku bomo pregledali pripomoček fsck in njegovo uporabo, da vam pomagamo odpraviti napake na disku.

Obstajajo različni scenariji, ko boste želeli zagnati fsck. Tu je nekaj primerov:

  • Sistem se ne zažene.
  • Datoteke v sistemu se poškodujejo (pogosto lahko vidite napako pri vnosu/izhodu).
  • Priključeni pogon (vključno s bliskovnimi pogoni/karticami SD) ne deluje po pričakovanjih.

Ukaz Fsck je treba zagnati s pravicami superkorisnika ali korenom. Uporabite ga lahko z različnimi argumenti. Njihova uporaba je odvisna od vašega posebnega primera. Spodaj boste videli nekaj pomembnejših možnosti:

    • -A -Uporablja se za preverjanje vseh datotečnih sistemov. Seznam je vzet iz /etc/fstab .
    • -C -Pokaži vrstico napredka.
    • -l -Zaklene napravo, da zagotovi, da noben program med preverjanjem ne bo poskušal uporabiti particije.
    • -M -Ne preverjajte nameščenih datotečnih sistemov.
    • -N -Pokažite samo, kaj bi bilo storjeno-dejanskih sprememb ni.
    • -P -če želite vzporedno preverjati datotečne sisteme, vključno s korenskim.
    • -R -Ne preverjajte korenskega datotečnega sistema. To je uporabno samo z „ -A “.
    • -r -Zagotovite statistiko za vsako napravo, ki se preverja.
    • -T -Ne prikazuje naslova.
    • -t -izključno določite vrste datotečnega sistema, ki ga želite preveriti. Vrste so lahko ločene z vejicami.
    • -V -Podajte opis, kaj se počne.

    Kako zagnati fsck za odpravljanje napak datotečnega sistema Linux

    Če želite zagnati fsck, morate zagotoviti, da particija, ki jo želite preveriti, ni nameščena. V tem članku bom uporabil svoj drugi pogon /dev/sdb , nameščen v /mnt .

    Evo, kaj se zgodi, če poskusim zagnati fsck, ko je particija nameščena.

    # fsck /dev/sdb
    

    Če se želite temu izogniti, odstranite particijo z uporabo.

    # umount /dev/sdb
    

    Nato lahko varno zaženete fsck.

    # fsck /dev/sdb
    

    Po zagonu fsck bo vrnil izhodno kodo. Te trske si lahko ogledate v priročniku fsck z zagonom:

    # man fsck
    
    0      No errors
    1      Filesystem errors corrected
    2      System should be rebooted
    4      Filesystem errors left uncorrected
    8      Operational error
    16     Usage or syntax error
    32     Checking canceled by user request
    128    Shared-library error            
    

    Včasih je v datotečnem sistemu mogoče najti več kot eno napako. V takih primerih boste morda želeli, da fsck samodejno popravi napake. To lahko storite z:

    # fsck -y /dev/sdb
    

    Zastavica -y , samodejno \"yes" na vse pozive iz fsck za odpravo napake.

    Podobno lahko enako zaženete v vseh datotečnih sistemih (brez korenskega):

    $ fsck -AR -y 
    

    Kako zagnati fsck na korenski particiji Linuxa

    V nekaterih primerih boste morda morali zagnati fsck na korenski particiji vašega sistema. Ker med namestitvijo particije ne morete zagnati fsck, lahko poskusite z eno od teh možnosti:

    • Prisili fsck ob zagonu sistema
    • Zaženite fsck v reševalnem načinu

    Pregledali bomo obe situaciji.

    To je dokaj enostavno dokončati, edino kar morate storiti je, da ustvarite datoteko forcefsck v korenski particiji vašega sistema. Uporabite naslednji ukaz:

    # touch /forcefsck
    

    Nato lahko preprosto prisilite ali načrtujete ponovni zagon sistema. Med naslednjim zagonom bo izveden fsck. Če je izpad kritičen, je priporočljivo, da to skrbno načrtujete, saj če je v vašem sistemu veliko uporabljenih inod, lahko fsck traja nekaj več časa.

    Ko se sistem zažene, preverite, ali datoteka še obstaja:

    # ls /forcefsck
    

    Če se to zgodi, ga boste morda želeli odstraniti, da se izognete fsck pri vsakem zagonu sistema.

    Za zagon fsck v reševalnem načinu je potrebnih še nekaj korakov. Najprej sistem pripravite na ponovni zagon. Ustavite vse kritične storitve, kot so MySQL/MariaDB itd., In nato vnesite.

    # reboot
    

    Med zagonom pridržite tipko shift , da se prikaže meni grub. Izberite\"Napredne možnosti".

    Nato izberite\"Način obnovitve".

    V naslednjem meniju izberite\"fsck".

    Vprašali vas bomo, če želite, da je vaš datotečni sistem / ponovno nameščen. Izberite \"yes" .

    Morali bi videti nekaj podobnega.

    Nato lahko nadaljujete z običajnim zagonom, tako da izberete\"Nadaljuj".

    V tej vadnici ste se naučili uporabljati fsck in izvajati preverjanje skladnosti v različnih datotečnih sistemih Linux. Če imate kakršna koli vprašanja o fsck, jih prosimo, da jih posredujete v spodnjem razdelku za komentarje.