Verificarea discului Linux pentru erori. Verificarea unui disc pentru sectoare defecte în Linux. Verificarea unității pentru sectoare defectuoase folosind badblocks

Orice computer este un dispozitiv complex care constă din multe componente și nimeni nu este imun la defecțiunile vreuneia dintre ele. În acest articol, vom analiza cum să recunoaștem prompt una dintre problemele grave cu dispozitivele de stocare a informațiilor, fie că este vorba despre un hard disk sau o unitate flash, și cum se verifică discul pentru sectoare defecte în Linux.

Orice unitate constă din multe blocuri mici (sectoare) care stochează informații sub formă de zerouri sau unu (biți). Dacă, dintr-un motiv oarecare, sistemul de operare nu poate scrie un pic de informație într-un anumit sector, atunci acesta poate fi considerat „rupt”.

Un sector poate fi deteriorat din diverse motive:

  • Defecte de fabricatie
  • Opriți alimentarea computerului în timp ce înregistrați informații.
  • Uzura fizică a unității.

Un număr mic de sectoare defecte se găsesc pe aproape orice unitate. Dar merită să fiți atenți dacă numărul lor crește în timp. Acest lucru poate indica moartea fizică iminentă a unității și este timpul să vă gândiți să o înlocuiți.

Să ne uităm la ce utilități Linux putem folosi pentru a verifica un disc pentru sectoare Linux proaste.

Verificarea unității pentru sectoare defectuoase folosind badblocks.

Badblocks este un utilitar Linux standard pentru verificarea sectoarelor defecte. Este instalat implicit în aproape orice distribuție și poate fi folosit pentru a verifica atât un hard disk, cât și o unitate externă.

Mai întâi, să vedem ce unități sunt conectate la sistemul nostru și ce partiții au. Pentru a face acest lucru, avem nevoie de un alt utilitar Linux standard - fdisk.

Desigur, trebuie să executați comenzi cu drepturi de superutilizator:

Parametru -lîi spunem lui fdisk că trebuie să arătăm lista de partiții și să ieșim.

Acum că știm ce partiții avem, le putem verifica pentru sectoare defecte. Pentru a face acest lucru, vom folosi utilitarul badblocks după cum urmează:

sudo badblocks -v /dev/sda1 > badsectors.txt

Pentru verificare, specificam urmatorii parametri:

  • -v- informații detaliate despre rezultatele testelor.
  • /dev/sda1- secțiunea pe care dorim să o verificăm pentru sectoare defecte.
  • > badsectors.txt- scoateți rezultatul comenzii în fișierul badsectors.txt.

Dacă, în consecință, au fost găsite sectoare proaste, atunci trebuie să instruim sistemul de operare să nu le scrie informații în viitor. Pentru a face acest lucru, avem nevoie de utilitare Linux pentru a lucra cu sisteme de fișiere:

  • e2fsck. Dacă reparăm o partiție cu sisteme de fișiere Linux (ext2,ext3,ext4).
  • fsck. Dacă corectăm un alt sistem de fișiere decât ext.

Introduceți următoarele comenzi:

sudo e2fsck -l badsectors.txt /dev/sda1

Sau, dacă sistemul nostru de fișiere nu este ext:

sudo fsck -l badsectors.txt /dev/sda1

Parametru -lîi spunem utilitarului să folosească lista de sectoare defectuoase din fișierul badsectors.txt, pe care l-am obținut mai devreme când am verificat cu utilitarul badblocks.

Verificarea unei unități pentru sectoare defecte în Linux în smartmontools

Acum să ne uităm la o modalitate mai modernă și mai fiabilă de a verifica un disc pentru sectoare Linux proaste. Unitățile moderne ATA/SATA, SCSI/SAS, SSD au un sistem de automonitorizare încorporat S.M.A.R.T (Tehnologie de automonitorizare, analiză și raportare, Tehnologia de auto-monitorizare, analiză și raportare), care monitorizează parametrii unității și va ajuta la determinarea deteriorării parametrilor unității în stadiile incipiente. Pentru a lucra cu S.M.A.R.T în Linux există un utilitar smartmontools.

Să-l instalăm mai întâi. Dacă distribuția dvs. se bazează pe Debian\Ubuntu, atunci introduceți:

sudo apt install smartmontools

Dacă aveți o distribuție bazată pe RHEL\CentOS, atunci introduceți:

sudo yum instalează smartmontools

Acum că am instalat smartmontools, putem vizualiza pagina de ajutor folosind comanda:

Să trecem la lucrul cu utilitarul. Introduceți următoarea comandă cu parametrul -H astfel încât utilitarul să ne arate informații despre starea unității:

sudo smartctl -H /dev/sda1

După cum puteți vedea, verificarea discului pentru sectoare Linux proaste este finalizată și utilitarul ne spune că totul este în regulă cu unitatea!

În plus, puteți specifica următorii parametri -A sau --toate pentru a obține și mai multe informații despre unitate sau -XȘi --xall pentru a vizualiza informații, inclusiv alți parametri ai unității.

concluzii

În acest articol, am analizat modalități de a verifica unitățile pentru sectoare dăunătoare sub Linux, pentru a anticipa eventualele eșecuri în timp și pentru a nu pierde date.

Din când în când trebuie să vă verificați hard diskul. Cred că nu există nimic mai valoros decât informațiile de pe un hard disk, ei bine, desigur, fără să ne numărăm viețile și va fi oh, ce păcat când fotografiile de familie, videoclipurile, rezumatele necesare și rapoartele de lucru, parolele și orice alte date importante dispar. Cum să verificați un hard disk în Linux și, în cazul nostru, în Ubuntu și ce programe există pentru testarea ajutoarelor și salvatorilor noștri - hard disk-uri? Ar trebui să verificați hard disk-ul nu de la sistemul instalat pe el, ci de pe LiveCD/USB. O astfel de construcție valoroasă ar fi Parted Magic, deși acest lucru se poate face și de pe un CD/USB Ubuntu. Acesta este un kit complet de muniție pentru lucrul cu hard disk-uri. Aici aveți GParted, pentru redimensionarea partițiilor HDD (analog cu Acronis Disc Director), și CloneZilla, pentru a crea copii exacte ale discurilor sau partițiilor de sistem cu recuperare ulterioară și GSmartControl - pentru raportarea stării discului și multe altele. Deci, să începem revizuirea programelor pentru verificarea hard disk-ului în Ubuntu.

Program de consolă Badblocks.

Pentru a afla cum sunt partiționate hard disk-ul sau unitățile și selectați o partiție de verificat, executați comanda:

sudo fdisk -l

Pentru a începe scanarea pentru sectoare defecte, trebuie doar să rulați comanda în Terminal:

sudo badblocks -sv /dev/sdb1

Unde:

/dev/sdb1- aceasta este secțiunea care se verifică,

-s— va afișa informații despre scanare ca procent, prezența sau absența sectoarelor „proaste” etc.,

-v— va afișa informații detaliate despre verificare.

Dacă trebuie să obțineți un raport text, atunci trebuie să rulați următoarea comandă:

sudo badblocks -s /dev/sdb1 > errors.txt

În loc de /dev/sdb1 trebuie să indicați partiția dorită a hard diskului și un fișier text va apărea în directorul dvs. de pornire erori.txt cu un raport. Dacă mai există lucruri rele, atunci este indicat să le marcați astfel încât sistemul să nu le acceseze în timp ce lucrează cu discul. Pentru a marca sectoarele defecte, executați comanda:

sudo e2fsck -l errors.txt /dev/sdb1

Cheie -l permite programului să utilizeze fișierul errors.txt pentru a lucra cu sectoare defecte. Dar puteți evita cele două comenzi de mai sus și puteți rula doar una:

sudo e2fsck -ct /dev/sdb1

Programul e2fsck face parte din pachetul software E2fsprogs, care include badblock și cheia -c face posibilă utilizarea utilitarului badblock pentru a căuta sectoare defectuoase.

Pentru a verifica sistemul de fișiere (ext 2/ext 3/ext 4) rulați următoarea comandă:

e2fsck -y /dev/partiția discului dvs. sau a întregului disc

Cheie -y spune utilitarului să răspundă pozitiv la toate întrebările.

Alte opțiuni frecvent utilizate:

-p,-a„reparați” automat sistemul de fișiere fără întrebări.
-f verificare forțată (forțată). Verificarea se va întâmpla în orice caz, chiar dacă sistemul de fișiere nu a avut nevoie de ea.
-c lansează programul badblocks pentru a găsi și marca sectoarele „proaste” de pe disc;
-v Vor fi afișate informații detaliate despre verificare.

Deși fsck poate fi folosit în loc de e2fsck. Dar fiecare este liber să aleagă ce este mai bun sau mai convenabil pentru el.

Programul de discuri.

Ubuntu are un program grozav Discuri, care oferă informații despre toate dispozitivele conectate în sistem (hard disk-uri, unități flash, unități CD/DVD, etc.) Prin rularea acestuia, puteți afla datele S.M.A.R.T. pe discul de interes.

Program GSmartControl

Și, în sfârșit, vreau să recomand programul GSmartControl, care este un shell grafic (GUI) pentru programul de consolă - smartctl. Îl puteți găsi în Centrul de aplicații Ubuntu sau îl puteți instala prin Terminal cu comanda:

sudo apt-get install gsmartcontrol

Programul prezintă informații complete despre datele S.M.A.R.T. Puteți afla mai multe despre fiecare articol .

Ei bine, ați învățat cum să verificați un hard disk în Linux. Fie ca aceste informații să vă fie de folos! Noroc!

Orice computer este un dispozitiv complex care constă din multe componente și nimeni nu este imun la defecțiunile vreuneia dintre ele. În acest articol, vom analiza cum să recunoaștem prompt una dintre problemele grave cu dispozitivele de stocare a informațiilor, fie că este vorba despre un hard disk sau o unitate flash, și cum se verifică discul pentru sectoare defecte în Linux.

Orice unitate constă din multe blocuri mici (sectoare) care stochează informații sub formă de zerouri sau unu (biți). Dacă, dintr-un motiv oarecare, sistemul de operare nu poate scrie un pic de informație într-un anumit sector, atunci acesta poate fi considerat „rupt”.

Un sector poate fi deteriorat din diverse motive:

  • Defecte de fabricatie
  • Opriți alimentarea computerului în timp ce înregistrați informații.
  • Uzura fizică a unității.

Un număr mic de sectoare defecte se găsesc pe aproape orice unitate. Dar merită să fiți atenți dacă numărul lor crește în timp. Acest lucru poate indica moartea fizică iminentă a unității și este timpul să vă gândiți să o înlocuiți.

Să ne uităm la ce utilități Linux putem folosi pentru a verifica un disc pentru sectoare Linux proaste.

Verificarea unității pentru sectoare defectuoase folosind badblocks.

Badblocks este un utilitar Linux standard pentru verificarea sectoarelor defecte. Este instalat implicit în aproape orice distribuție și poate fi folosit pentru a verifica atât un hard disk, cât și o unitate externă.

Mai întâi, să vedem ce unități sunt conectate la sistemul nostru și ce partiții au. Pentru a face acest lucru, avem nevoie de un alt utilitar Linux standard - fdisk.

Desigur, trebuie să executați comenzi cu drepturi de superutilizator:

Parametru -lîi spunem lui fdisk că trebuie să arătăm lista de partiții și să ieșim.

Acum că știm ce partiții avem, le putem verifica pentru sectoare defecte. Pentru a face acest lucru, vom folosi utilitarul badblocks după cum urmează:

$ sudo badblocks -v /dev/sda1 > badsectors.txt

Pentru verificare, specificam urmatorii parametri:

  • -v— informații detaliate despre rezultatele testelor.
  • /dev/sda1- secțiunea pe care dorim să o verificăm pentru sectoare defecte.
  • > badsectors.txt— scoateți rezultatul comenzii în fișierul badsectors.txt.

Dacă, în consecință, au fost găsite sectoare proaste, atunci trebuie să instruim sistemul de operare să nu le scrie informații în viitor. Pentru a face acest lucru, avem nevoie de utilitare Linux pentru a lucra cu sisteme de fișiere:

  • e2fsck. Dacă reparăm o partiție cu sisteme de fișiere Linux (ext2,ext3,ext4).
  • fsck. Dacă corectăm un alt sistem de fișiere decât ext.

Introduceți următoarele comenzi:

$ sudo e2fsck -l badsectors.txt /dev/sda1

Sau, dacă sistemul nostru de fișiere nu este ext:

$ sudo fsck -l badsectors.txt /dev/sda1

Parametru -lîi spunem utilitarului să folosească lista de sectoare defectuoase din fișierul badsectors.txt, pe care l-am obținut mai devreme când am verificat cu utilitarul badblocks.

Verificarea unei unități pentru sectoare defecte în Linux în smartmontools

Acum să ne uităm la o modalitate mai modernă și mai fiabilă de a verifica un disc pentru sectoare Linux proaste. Unitățile moderne ATA/SATA, SCSI/SAS, SSD au un sistem de automonitorizare încorporat S.M.A.R.T (Tehnologie de automonitorizare, analiză și raportare, Tehnologia de auto-monitorizare, analiză și raportare), care monitorizează parametrii unității și va ajuta la determinarea deteriorării parametrilor unității în stadiile incipiente. Pentru a lucra cu S.M.A.R.T în Linux există un utilitar smartmontools.

Să-l instalăm mai întâi. Dacă distribuția dvs. se bazează pe Debian\Ubuntu, atunci introduceți:

$ sudo apt install smartmontools

Dacă aveți o distribuție bazată pe RHEL\CentOS, atunci introduceți:

$ sudo yum install smartmontools

A trebuit si eu sa fac fata acestei probleme. Singurul meu prieten care a instalat Ubuntu pe un laptop vechi ASUS, și care pur și simplu nu vrea să-și pornească creierul măcar uneori, a venit la mine cu o astfel de problemă. Noul Ubuntu 12.10 este instalat pe laptopul lui și de foarte multe ori sistemul pur și simplu nu vrea să pornească, aruncându-l pe un ecran negru sau înghețând pe un fundal violet. Dar recent acest mesaj a început să apară, ceva de genul „Sistemul de operare nu a putut porni. Selectați tasta dorită pentru acțiuni suplimentare...” Și apoi există o descriere a ceea ce trebuie apăsat. Nu-mi amintesc exact pe ce taste sugerează sistemul să apăsați, dar sensul este că pentru a corecta automat erorile, apăsați o astfel de tastă, pentru depanarea manuală a alta, iar pentru a ignora acest mesaj vi se cere să apăsați un al treilea buton. Corectarea automată a erorilor nu a dus la nimic și încărcarea sistemului de operare nu a ajuns niciodată la concluzia logică. Așa că am decis să încerc celebra echipă fsck.

Mai întâi trebuie să porniți fie de pe o unitate flash USB bootabilă cu Ubuntu (Lubuntu, Xubuntu, Kubuntu etc.), fie de pe un Ubuntu Live CD. Acum trebuie să aflăm ce partiție Ubuntu trebuie să scanăm pentru a repara sistemul de fișiere. Lansați Terminalul (Ctrl-Alt-T) și executați comanda:

sudo fdisk -l

Această comandă ne va arăta toate discurile și unitățile flash care sunt montate pe sistem. Voi da un exemplu cu computerul meu personal, nu cu laptopul unui prieten. Iată ce am primit:

ubuntu@ubuntu:~$ sudo fdisk -l

Disc /dev/sda: 640,1 GB, 640135028736 octeți
255 capete, 63 sectoare/sină, 77825 cilindri, total 1250263728 sectoare



Identificatorul discului: 0x0009d6f7


/dev/sda1 * 2048 61442047 30720000 83 Linux
/dev/sda2 61442048 73730031 6143992 82 Linux swap / Solaris
/dev/sda3 73730048 1250263039 588266496 83 Linux

Disc /dev/sdb: 500,1 GB, 500107862016 octeți
255 capete, 63 sectoare/sină, 60801 cilindri, total 976773168 sectoare
Unități = sectoare de 1 * 512 = 512 octeți
Dimensiunea sectorului (logic/fizic): 512 octeți / 512 octeți
Dimensiunea I/O (minimă/optimă): 512 octeți / 512 octeți
Identificatorul discului: 0xb9ff6f01

Device Boot Start End Blocks Id System
/dev/sdb1 * 16065 100197404 50090670 83 Linux
/dev/sdb2 105322201 976771071 435724435+ 5 Extins
/dev/sdb3 100197405 105322139 2562367+ 82 Linux swap / Solaris
/dev/sdb5 105322203 832110591 363394194+ 7 HPFS/NTFS/exFAT
/dev/sdb6 832112640 860755218 14321289+ 83 Linux
/dev/sdb7 860758016 862613503 927744 82 Linux swap / Solaris
/dev/sdb8 862615552 976771071 57077760 83 Linux

Intrările din tabelul de partiții nu sunt în ordinea discului

Disc /dev/sdc: 8115 MB, 8115978240 octeți
250 capete, 62 sectoare/pisă, 1022 cilindri, total 15851520 sectoare
Unități = sectoare de 1 * 512 = 512 octeți
Dimensiunea sectorului (logic/fizic): 512 octeți / 512 octeți
Dimensiunea I/O (minimă/optimă): 512 octeți / 512 octeți
Identificatorul discului: 0xc3072e18

Device Boot Start End Blocks Id System
/dev/sdc1 * 32 15847625 7923797 b W95 FAT32

După cum puteți vedea din rezultatul comenzii sudo fdisk -l, am 2 hard disk-uri (sda) 640 GB si (sdb) 500 GB, precum si o unitate flash (sdc) 8 GB, de pe care am bootat efectiv. Știu că sistemul meu de bază cu Ubuntu 12.04 se află pe discul sda, iar partiția cu sistemul de operare se numește sda1.

Acum că știm partiția care trebuie scanată, putem începe să o verificăm. În terminal:

sudo fsck -y -f -c /dev/sda1

Dacă vedeți o eroare, cel mai probabil va trebui să demontați această partiție:

sudo umount /dev/sda1

Taste de comandă și parametri fsck:

y- răspundeți întotdeauna da la toate întrebările (există o alternativă: tasta p - începe verificarea în modul complet automat);

f- verificarea forțată a sistemului de fișiere (chiar dacă sistemul de fișiere este marcat ca fiind complet funcțional)

c- caută blocuri proaste, apoi le marchează în consecință

/dev/sda1- dispozitiv sau partiție care trebuie verificată. Deși echipa poate avea un aspect diferit. De exemplu:

sudo fsck -p /dev/sda1

În acest caz, a fost adăugat doar comutatorul -p. Citiți despre toate tastele de comandă fsck și adăugați exact cheile de care aveți nevoie. Pentru a afla despre toate capabilitățile programului, intrați în Terminal:

omul fsck

Iată ce a produs terminalul după verificare:

ubuntu@ubuntu:~$ sudo fsck -y -f -c /dev/sda1
fsck de la util-linux 2.20.1
e2fsck 1.42.5 (29-iul-2012)
Verificarea blocurilor proaste (test numai în citire): 0,00% gata, 0:00 a trecut. (0/0/0 greșit
/dev/sda1: Se actualizează inodul bloc defect.
Pasul 1: Verificarea inodurilor, blocurilor și dimensiunilor
Pasul 2: Verificarea structurii directoarelor
Pasul 3: Verificarea conectivității directorului
Pasul 4: Verificarea numărului de referințe
Pasul 5: Verificarea informațiilor rezumate ale grupului

Și-a imaginat Linus Torvalds, atunci când și-a creat ideea, că Linux va fi folosit în sistemele încorporate, nu numai în routere de acasă ieftine, ci și în soluții de telecomunicații atât de serioase precum AVAYA PBX?

Recent a trebuit să restabilim funcționalitatea PBX-ului AVAYA a unui client mare. Acesta este un gateway Avaya G650 (șasiu) cu un server (procesor) Avaya S8400. Unde un suport CompactFlash de 2 GB este folosit ca disc de sistem. Care poate fi considerat condiționat o unitate SSD cu o interfață IDE.
Și imaginați-vă surpriza mea când, după ce am conectat unitatea CF printr-un cititor de carduri, am văzut structura familiară a sistemului de fișiere Linux. Ceea ce, desigur, a simplificat procedura de verificare a funcționalității unității CF.

Cum să verificați un sistem de fișiere pe disc Linux pentru erori

Sistemul de operare MicroSoft DOS (oh, da, îmi amintesc versiunea 5.0, care încăpea pe o dischetă!) avea o comandă de verificare a discului CHKDSK. Și ceva similar există în Linux.
Pentru a verifica un disc Linux pentru erori ale sistemului de fișiere, trebuie să aflați numele sistemelor de fișiere pentru a verifica:

# df -h Dimensiunea sistemului de fișiere Utilizat Utilizare disponibilă % Montat pe /dev/sda 20G 4.0G 15G 21% / /dev/sdd1 1G 455M 555M 46% /media/Np%blsl3648B4Jjeiedgyy /dev/sdd610% /sdd6 190298M 19% 10.13-23dd niciunul 246M 0 246M 0% /dev/shm

Pentru unitatea testată, CF este /dev/sdd1Și /dev/sdd6
În continuare, trebuie să demontați sistemele de fișiere testate:

#sudo umount /dev/sdd1 #sudo umount /dev/sdd6

#fsck -y /dev/sdd1 #fsck -y /dev/sdd6

Parametru -y va răspunde automat da la toate întrebările, ceea ce fac de obicei majoritatea utilizatorilor.

Rezultatele utilitarului de verificare a sistemului de fișiere Lunux FSCK

În cazul meu, au existat erori pe una dintre partiții, pe care utilitarul le-a corectat. După care unitatea CF a fost returnată la locul său și funcționalitatea Avaya PBX a fost restaurată.