Cum să utilizați comanda fsck pe Linux
Publicat: 2022-01-29 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.
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.
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.
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'
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
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.
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
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
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
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
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
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
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.
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.
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."
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
î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.
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.
Comenzi Linux | ||
Fișiere | tar · pv · cat · tac · chmod · grep · diff · sed · ar · om · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tip · redenumire · zip · dezarhivare · montare · demontare · instalare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Procese | alias · ecran · sus · frumos · renice · progres · strace · systemd · tmux · chsh · istoric · la · lot · gratuit · care · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · da · kill · sleep · sudo · su · time · groupadd · usermod · grupuri · lshw · shutdown · repornire · stop · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Rețele | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști