Cum să utilizați comanda fsck pe Linux

Publicat: 2022-01-29
Un hard disk cu cod binar scris peste el.
Pixza Studio/Shutterstock

Toate datele noastre importante se află într-un sistem de fișiere de un tip sau altul, iar problemele sistemului de fișiere vor apărea. Pe Linux, putem folosi comanda fsck pentru a găsi și remedia erorile sistemului de fișiere.

Sistemele de fișiere sunt software

Sistemele de fișiere sunt una dintre cele mai critice componente ale unui computer. Fără un sistem de fișiere, computerul nu poate stoca date pe un hard disk, indiferent dacă acea unitate este un platou mecanic rotativ sau o unitate SSD. De fapt, un sistem de fișiere trebuie creat înainte ca sistemul de operare să poată fi instalat pe hard disk. Trebuie să existe ceva în care fișierele sistemului de operare să fie stocate. Deci un sistem de fișiere este creat în timpul procesului de instalare.

10 comenzi de bază Linux pentru începători
LEGATE 10 comenzi de bază Linux pentru începători

Sistemele de fișiere sunt create de software, scrise de software și citite de software. După cum știți, toate programele complexe au erori. Datele noastre sunt extrem de importante pentru noi, așa că ne punem multă încredere în sistemele de fișiere și în software-ul care le creează și le utilizează. Dacă ceva nu merge bine, putem pierde accesul la porțiuni ale sistemului de fișiere sau chiar la o întreagă partiție.

Sistemele moderne de fișiere de jurnalizare sunt mai bune în gestionarea problemelor care pot fi cauzate de o pierdere bruscă de energie sau de o prăbușire a sistemului. Sunt robusti, dar nu sunt invincibili. Dacă tabelele lor interne sunt amestecate, pot pierde evidența unde se află fiecare fișier pe unitate, ce dimensiune are, ce nume are și ce permisiuni de fișiere sunt setate pentru ele.

Comanda fsck vă permite să verificați dacă sistemele de fișiere sunt sănătoase. Dacă găsește probleme, de obicei, le poate rezolva și pentru tine.

Faceți verificările preflight

Utilizarea fsck necesită privilegii sudo. Orice comandă care poate aduce modificări unui sistem de fișiere trebuie tratată cu prudență și limitată la cei care știu ce fac.

Publicitate

Piloții nu sar într-un avion, îl pornesc și nu zboară în albastrul pal de acolo. Ei fac verificări înainte de zbor. Sunt prea multe în joc altfel. Acesta este un obicei bun de dezvoltat. Înainte de a utiliza fsck , trebuie să vă asigurați că îl veți folosi pe unitatea corectă. Deci, înainte de a face ceva cu fsck , vom face puțină recunoaștere.

Vom începe cu fdisk și îl vom introduce în less . Nu cerem informații despre o anumită partiție. Folosind opțiunea -l (listă), fdisk listează tabelele de partiții de pe toate dispozitivele pe care le găsește în fișierul „/proc/partitions”, dacă acesta există.

 sudo fdisk -l | Mai puțin 

Putem vedea intrările pentru /dev/sda și /dev/sdb . Puteți parcurge fișierul pentru a vedea orice alte intrări care ar putea exista pe computerul dvs.

Observați rezultatul din fereastra terminalului

Partițiile de pe /dev/sda sunt listate ca /dev/sda1 , /dev/sda2 și /dev/sda3 . Deci avem trei partiții pe prima unitate. Putem vedea puțin mai multe informații folosind comanda parted . Vom folosi opțiunea 'print' pentru a afișa tabelele de partiții în fereastra terminalului.

 sudo parted /dev/sda 'print' 

Obțineți informații despre tabelele de partiții

De data aceasta obținem câteva informații suplimentare, inclusiv tipul de sistem de fișiere de pe fiecare partiție.

 Model: ATA VBOX HARDDISK (scsi) 
Disc /dev/sda: 34,4 GB 
Dimensiunea sectorului (logic/fizic): 512B/512B 
Tabel de partiții: gpt 
Semnale de disc:

Număr Start Sfârșit Dimensiune Sistem de fișiere Nume Steaguri 
1 1049kB 2097kB 1049kB bios_grub 
2 2097kB 540MB 538MB fat32 EFI System Partition Boot, special 
3 540MB 34.4GB 33.8GB ext4
Publicitate

Există trei unități în acest computer de testare. Acestea sunt rezultatele pentru celelalte două unități /dev/sdb și /dev/sdc . Rețineți că aceste sisteme de fișiere nu au câmp „Nume”.

 sudo parted /dev/sdb 'print'
 Model: ATA VBOX HARDDISK (scsi) 
Disc /dev/sdb: 21,5 GB 
Dimensiunea sectorului (logic/fizic): 512B/512B 
Tabel de partiții: msdos 
Semnale de disc:

Număr Început Sfârșit Dimensiune Tip Sistem de fișiere Steaguri 
1 1049 kB 21,5 GB 21,5 GB principal ext4
 sudo parted /dev/sdc 'print'
 Model: ATA VBOX HARDDISK (scsi) 
Disc /dev/sdc: 21,5 GB 
Dimensiunea sectorului (logic/fizic): 512B/512B 
Tabel de partiții: msdos 
Semnale de disc:

Număr Început Sfârșit Dimensiune Tip Sistem de fișiere Steaguri
1 1049 kB 21,5 GB 21,5 GB principal ext3

A doua și a treia unitate se întâmplă să aibă aceeași dimensiune și fiecare are o singură partiție. Dar sistemul de fișiere de pe a doua unitate este ext4 , iar sistemul de fișiere de pe a treia unitate este ext3 mai vechi.

Cum să montați și să demontați dispozitivele de stocare de pe terminalul Linux
LEGATE Cum să montați și să demontați dispozitivele de stocare de pe terminalul Linux

Transmitem un identificator de partiție către fsck și verifică sistemul de fișiere de pe acea partiție. Dar nu putem rula fsck pe un sistem de fișiere montat. Trebuie să demontăm unitatea. Pentru a face asta, trebuie să cunoaștem punctul de montare pe care este montată partiția și, prin urmare, sistemul de fișiere.

Putem afla asta cu ușurință folosind comanda df .

 df /dev/sdb1
 df /dev/sdc1 

Folosind comanda fsck

Avem toate informațiile de care avem nevoie. Primul lucru pe care îl vom face este să demontați sistemul de fișiere pe care îl vom verifica. Vom lucra la sistemul de fișiere pe prima – și singura – partiție a /dev/sdb , care este /dev/sdb1 . Am văzut mai devreme că acesta este un sistem de fișiere ext4 și este montat la „/run/mount/dave/sata2”.

Vom folosi comanda umount . Rețineți că nu există „n” în „umount”.

 sudo umount /run/mount/dave/sata2 

Utilizați comanda umount pentru a demonta sistemul de fișiere.

Publicitate

Cu umount , nicio veste nu este o veste bună. Dacă revii în tăcere la promptul de comandă, suntem gata să mergem.

 sudo fsck /dev/sdb1 

Utilizați comanda fsck pentru a verifica starea sistemului de fișiere.

Acest sistem de fișiere este raportat ca fiind curat. Aceasta înseamnă că sistemul de fișiere raportează că nu are erori sau probleme. O verificare mai profundă a sistemului de fișiere nu este efectuată automat. De asemenea, ne putem uita la codul de returnare pe care fsck l-a returnat în shell.

 eco $? 

Valoarea returnată de zero indică nicio eroare. Codurile posibile de returnare sunt:

  • 0 : Fără erori
  • 1 : S-au corectat erorile sistemului de fișiere
  • 2 : Sistemul trebuie repornit
  • 4 : erorile sistemului de fișiere rămase necorectate
  • 8 : Eroare operațională
  • 16 : Eroare de utilizare sau de sintaxă
  • 32 : Verificare anulată la cererea utilizatorului
  • 128 : Eroare de bibliotecă partajată

În ciuda faptului că sistemul de fișiere este raportat ca curat, putem forța o verificare a sistemului de fișiere, folosind opțiunea -f (forțare).

 sudo fsck /dev/sdb1 -f 

Forțați o verificare a sistemului de fișiere folosind opțiunea de forță dintr-o comandă fsck

De data aceasta, verificarea durează mai mult, dar efectuează un test mai amănunțit al sistemului de fișiere. Sistemul nostru de fișiere a fost într-adevăr curat și nu sunt raportate erori. Dacă se găsesc probleme pe măsură ce testele sunt efectuate, vi se va solicita să lăsați fsck să remedieze problema sau să ignorați eroarea.

După ce ați terminat testarea, trebuie să remontați sistemul de fișiere. Cel mai simplu mod de a face acest lucru este să utilizați mount cu opțiunea -a (toate). Aceasta verifică „/etc/fstab” pentru lista de sisteme de fișiere și se asigură că toate sunt montate așa cum ar fi după o pornire obișnuită.

 sudo mount -a 

Remontați sistemul de fișiere folosind comanda mount

Ce sistem de fișiere Linux ar trebui să utilizați?
LEGATE Ce sistem de fișiere Linux ar trebui să utilizați?

Rețineți că nu trebuie să spunem fsck ce tip de sistem de fișiere este pe o partiție; utilitarul determină că prin examinarea sistemului de fișiere. Asta înseamnă că putem forța o verificare a sistemului de fișiere pe /dev/sdc1 , sistemul de fișiere ext3 de pe computerul nostru de testare, folosind exact aceeași comandă pe care am folosit-o pe /dev/sdb1 , care este o partiție ext4 .

 sudo fsck /dev/sdc1 -f 

Utilizați comanda fsck pentru a forța verificarea sistemului de fișiere

Publicitate

Este posibil să nu doriți să vă scufundați direct în repararea sistemului de fișiere. Poate preferați să vă uitați înainte de a sări. Puteți cere fsck să nu se ofere să repare nimic și doar să raporteze probleme în fereastra terminalului. Opțiunea -N (funcționare uscată) face exact asta:

 sudo fsck -N /dev/sdb1 

Înainte de a repara un sistem de fișiere, faceți o rulare uscată

Opusul este să îi spui lui fsck să nu deranjeze să solicite dacă găsește erori și să continue și să le repare. Pentru a face acest lucru, utilizați opțiunea -y (fără solicitări).

 sudo fsck -y /dev/sdb1

Folosind fsck pe partiția rădăcină

Nu puteți folosi fsck pe o partiție montată, dar pentru a porni computerul, partiția rădăcină trebuie să fie montată. Deci, cum putem rula fsck pe partiția rădăcină? Răspunsul este să întrerupeți procesul de pornire și să rulați fsck în modul de recuperare.

În timp ce computerul pornește, țineți apăsată tasta „Shift”. Dacă ați cronometrat corect, nu veți porni în Linux. Procesul de pornire se va opri la un meniu alb-negru. Mașina de testare folosită pentru acest articol rula Ubuntu, dar alte distribuții au același tip de meniu, deși poate varia ca aspect. Acolo unde scrie „Ubuntu” în capturi de ecran, va avea numele distribuției tale.

Meniul de recuperare cu elementul de meniu cu opțiuni avansate selectat

Mutați bara de evidențiere cu tastele „Săgeată în sus” și „Săgeată în jos”, astfel încât elementul de meniu „Opțiuni avansate pentru Ubuntu” să fie selectat. Apăsați „Enter” pentru a trece la următorul ecran.

Meniul de recuperare cu elementul de meniu „mod de recuperare” selectat

Publicitate

Selectați opțiunea care se termină cu „(modul de recuperare).” În exemplul nostru, este „Ubuntu, cu Linux 5.11.0-20-generic (mod de recuperare).” Apăsați tasta „Enter”.

Veți vedea meniul de recuperare. Selectați „fsck check all file systems” și apăsați tasta „Tab” pentru a muta evidențierea pe butonul „OK”. Apasa Enter."

Meniul de recuperare cu fsck selectat

Veți vedea o notificare că partiția rădăcină va fi montată împreună cu orice alte partiții definite în fișierul „/etc/fstab”.

Selectați da pentru a iniția fsck în modul interactiv

Apăsați tasta „Tab” pentru a muta evidențierea la butonul „Da” și apăsați „Enter”.

Veți vedea fsck în modul interactiv. Dacă există probleme, vi se va solicita să lăsați fsck să le repare sau să le ignorați. Când sistemele de fișiere au fost verificate, veți vedea din nou meniul de recuperare.

Selectați opțiunea „reluare”, apăsați tasta „Tab” pentru a muta evidențierea pe butonul „Ok” și apăsați „Enter”. Procesul de pornire se va relua și veți porni în Linux.

Publicitate

Pornirea în modul de recuperare poate afecta unele drivere, așa că este o practică bună să reporniți încă o dată, de îndată ce porniți în Linux. Acest lucru vă asigură că computerul funcționează în mod standard.

Cand lucrurile merg rau

Plasele de siguranță există cu un motiv. Faceți cunoștință cu comanda fsck . Dacă va apărea nevoia de a-l folosi într-o zi cu furie, te vei bucura că te-ai familiarizat dinainte.

LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști