Situatie
Toate datele noastre importante se află într-un sistem de fișiere de un tip sau altul, iar problemele legate de sistemul de fișiere trebuie să se întâmple. 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ă unitatea respectivă este un platou mecanic rotativ sau o unitate SSD. De fapt, trebuie creat un sistem de fișiere înainte ca sistemul de operare să poată fi instalat pe hard disk. Trebuie să existe ceva în care să fie stocate fișierele sistemului de operare. Prin urmare, se creează un sistem de fișiere în timpul procesului de instalare.
Sistemele de fișiere sunt create de software, scrise de software și citite de software. După cum știți, toate software-urile complexe au erori. Datele noastre sunt extrem de importante pentru noi, așa că ne încredem în sistemele de fișiere și în software-ul care le creează și le folosește. Dacă ceva nu merge bine, putem pierde accesul la porțiuni din sistemul de fișiere sau chiar la o partiție întreagă.
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 un accident de sistem. Sunt robuste, dar nu sunt invincibile. Dacă tabelele lor interne sunt amestecate, pot pierde evidența locului unde se află fiecare fișier pe unitate, ce dimensiune are, ce nume are și ce permisiuni de fișiere sunt setate pe 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 dvs.
Efectuaț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.
Backup
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ă există.
sudo fdisk -l | less
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.
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 ceva 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’
De data aceasta primim câteva informații suplimentare, inclusiv tipul de sistem de fișiere de pe fiecare partiție.
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”.
A doua și a treia unitate au 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.
Putem afla asta ușor 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ă demontăm 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
Cu umount, nici o veste nu este o veste bună. Dacă reveniți la linia de comandă în tăcere, suntem bine să plecăm.
sudo fsck /dev/sdb1
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, putem privi codul de returnare pe care fsck l-a returnat la shell.
echo $?
Valoarea returnată de zero nu indică erori. Posibilele coduri de returnare sunt:
0: Fără erori
1: erorile sistemului de fișiere au fost corectate
2: Sistemul trebuie repornit
4: Erorile sistemului de fișiere au rămas necorectate
8: Eroare operațională
16: Eroare de utilizare sau de sintaxă
32: Verificarea anulată la cererea utilizatorului
128: Eroare bibliotecă partajată
În ciuda faptului că sistemul de fișiere a fost raportat ca fiind curat, putem forța să aibă loc o verificare a sistemului de fișiere, folosind opțiunea -f (forță).
sudo fsck /dev/sdb1 -f
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 era într-adevăr curat și nu sunt raportate erori. Dacă se găsesc probleme pe măsură ce se efectuează testele, vi se va solicita să lăsați fsck să remedieze problema sau să ignore eroarea.
Când ați terminat testarea, trebuie să remontați sistemul de fișiere. Cel mai simplu mod de a face acest lucru este să folosiți mount cu opțiunea -a (toate). Aceasta verifică „/ etc / fstab” pentru lista sistemelor de fișiere și se asigură că acestea sunt montate la fel cum ar urma un boot normal.
sudo mount -a
Rețineți că nu trebuie să spunem fsck ce tip de sistem de fișiere este pe o partiție; utilitarul determină că examinând sistemul 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
Este posibil să nu doriți să vă scufundați direct în remedierea sistemului de fișiere. S-ar putea să 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ă raportați problemele la fereastra terminalului. Opțiunea -N (run uscat) face exact asta:
sudo fsck -N /dev/sdb1
Opusul este acela de a spune fsck să nu se deranjeze să solicite dacă găsește erori și să continue și să le remedieze. Pentru a face acest lucru, utilizați opțiunea -y (fără solicitări).
sudo fsck -y /dev/sdb1
Using fsck On the Root Partition
Nu puteți utiliza fsck pe o partiție montată, dar pentru a porni computerul, trebuie montată partiția rădăcină. Deci, cum putem rula fsck pe partiția rădăcină? Răspunsul este să întrerupeți procesul de boot și să rulați fsck în modul de recuperare.
În timp ce computerul pornește, țineți apăsată tasta „Shift”. Dacă l-ați programat corect, nu veți porni în Linux. Procesul de boot se va opri într-un meniu alb-negru. Mașina de testare utilizată pentru acest articol rulează Ubuntu, dar alte distribuții au același tip de meniu, deși poate varia ca aspect. Unde scrie „Ubuntu” în capturile de ecran, va avea numele distribuției dvs.
Mutați bara de evidențiere cu tastele „Săgeată sus” și „Săgeată jos” astfel încât să fie selectat elementul de meniu „Opțiuni avansate pentru Ubuntu”. Apăsați „Enter” pentru a trece la următorul ecran.
Selectați opțiunea care se termină cu „(modul de recuperare)”. În exemplul nostru, este „Ubuntu, cu Linux 5.11.0-20-generic (modul de recuperare)”. Apăsați tasta „Enter”.
Veți vedea meniul de recuperare. Selectați „fsck verificați toate sistemele de fișiere” și apăsați tasta „Tab” pentru a muta evidențierea la butonul „OK”. Apasa Enter.”
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”.
Apăsați tasta „Tab” pentru a muta evidențierea la butonul „Da” și apăsați „Enter”.
Veți vedea fsck rulat în modul interactiv. Dacă există probleme, vi se va solicita să lăsați fsck să le remedieze sau să le ignore. După verificarea sistemelor de fișiere, veți vedea din nou meniul de recuperare. Selectați opțiunea „reluați”, apăsați tasta „Tab” pentru a muta evidențierea la butonul „Ok” și apăsați „Enter”. Procesul de boot se va relua și veți porni în Linux.
Boot-ul în modul de recuperare poate afecta unele drivere, deci este o bună practică să reporniți încă o dată, imediat ce porniți în Linux. Acest lucru vă asigură că computerul funcționează în modul său standard.
Leave A Comment?