Recuperați datele pe Linux folosind ddrescue

Recuperati Datele Pe Linux Folosind Ddrescue



Ddrescue este un instrument folosit pentru a recupera date dintr-un fișier sau un dispozitiv bloc, cum ar fi un hard disk, SSD-uri, discuri RAM, CD-uri, DVD-uri și dispozitive de stocare USB. Copiază datele de pe un dispozitiv bloc pe altul, lăsând blocurile de date corupte și mutându-le doar pe cele bune. Ddrescue este un instrument puternic de recuperare care este complet automatizat, deoarece nu necesită nicio interferență în timpul operațiunii de recuperare. Mai mult, poate fi oprit și reluat în orice moment datorită fișier hartă ddrescue . Alte caracteristici cheie ale ddrescue sunt enumerate mai jos:
  • Nu suprascrie datele recuperate, ci umple golurile în cazul recuperării iterative. Cu toate acestea, poate fi trunchiat dacă instrumentul este instruit să o facă în mod explicit.
  • Recuperați datele într-un singur fișier din mai multe fișiere sau blocuri.
  • Acceptă mai multe tipuri de interfețe de dispozitiv, cum ar fi SATA, ATA, SCSI, unități MFM, dischete și carduri SD.

În acest ghid, voi explora acest instrument incredibil de util de recuperare a datelor. Voi discuta, de asemenea, despre procesul său de instalare și despre cum să-l utilizați pentru a recupera un dispozitiv blocat sau o partiție.

Notă: Folosesc distribuția Linux (Ubuntu 22.04) pentru instrucțiunile din acest ghid. Procesul de instalare al utilitarului ddrescue poate diferi, dar instrucțiunile vor fi aceleași în toate distribuțiile Linux.







Instalarea ddrescue

Pentru a instala ddrescue pe Linux, în special Ubuntu și aromele sale sau Bazat pe Debian distribuții, utilizați:



sudo apt instalare gdrescue

Pentru a-l instala REHL , Fedora , și CentOS , mai întâi activați CALD (Pachete suplimentare pentru Enterprise Linux).



sudo yum instala eliberare caldă

Comanda de mai sus este pentru versiunile mai noi ale distribuției respective.





Apoi executați următoarea comandă pentru a instala ddrescue:

sudo yum instala ddrescue

Pentru distribuțiile Linux bazate pe Arch, cum ar fi Arch-Linux și Manjaro , utilizați comanda de mai jos pentru a instala utilitarul de recuperare ddrescue.



sudo pacman -S ddrescue

Deoarece folosesc Ubuntu 22.04, voi folosi managerul de pachete APT pentru a-l instala.

Înțelegerea elementelor de bază

Înainte de a utiliza instrumentul ddrescue pentru a recupera date, aș recomanda utilizatorilor care sunt noi în procesul de recuperare să înțeleagă unele convenții de denumire ale Linux.

Linux recunoaște blocurile (dispozitivele) ca fișiere și le plasează în /dev director. Pentru a lista fișierele din directorul /dev, utilizați ls /dev comanda.

The hard disk-uri (blocuri de depozitare) sunt reprezentate cu sd urmat de alfabete; în cazul mai multor dispozitive de stocare fișierele vor fi reprezentate ca /dev/sd A, /dev/sd b, și așa mai departe.

Dacă dispozitivul de stocare are despărțitori , apoi vor fi reprezentate printr-un număr cu numele fișierului de unitate respectiv, cum ar fi /dev/sda 1 , /dev/sda 2 , și așa mai departe.

Pentru a lista toate blocurile și alte dispozitive conectate cu sistemul, utilizați blocul de listă lsblk comanda:

lsblk

Comanda ddrescue poate recupera întregul bloc (conținând MBR și partiții) sau, de asemenea, o partiție. Pe de altă parte, dacă trebuie să recuperați numai anumite fișiere dintr-o anumită partiție, atunci este mai bine să recuperați partiția în loc de întregul bloc.

Considerații importante

Înainte de a utiliza utilitarul ddrescue, ar trebui luate în considerare câteva puncte cheie:

  • Nu încercați să recuperați un bloc montat, blocul nu ar trebui să fie chiar în modul doar citire.
  • Nu încercați să reparați un bloc cu erori I/O.
  • Sistemul poate modifica numele dispozitivelor de intrare și de ieșire la repornire. Asigurați-vă că numele dispozitivelor sunt corecte înainte de a începe procesul de copiere.
  • Dacă utilizați un bloc separat ca dispozitiv de ieșire, atunci orice date de pe dispozitiv vor fi suprascrise.

Folosind ddrescue

După instalarea utilitarului ddrescue și înțelegerea convențiilor de denumire, următorul pas este identificarea discului defect și recuperarea acestuia folosind instrumentul ddrescue.

Recuperarea blocului corupt

Primul exemplu va cuprinde procesul de recuperare a întregului bloc. Mai întâi, enumerați blocurile folosind lsblk comanda:

lsblk -O NUME, DIMENSIUNE, FSTYPE

The -O flag este folosit pentru a specifica ce tip de informații (câmpuri) ar trebui să scoată comanda. Am menționat NUME , MĂRIMEA , și FSTYPE sau tip de sistem de fișiere.

Acum, puteți identifica blocul țintă, partiția și locația pentru a salva fișierul imagine salvat.

Un alt lucru important de reținut este că pe Linux, numele blocului este atribuit dinamic la pornire și după repornire, numele blocurilor se pot schimba. Așadar, aveți grijă când notați numele blocurilor.

Acum, utilizați următoarea sintaxă pentru a salva blocul ca fișier imagine cu un fișier jurnal în directorul rădăcină.

sudo ddrescue -d -rX / dev / [ bloc ] [ cale / Nume ] .img [ logfile_name ] .Buturuga

Notă: A inlocui [bloc] , [cale/nume] a fișierului imagine și [logfile_name] cu numele preferate în consecință.

În acest exemplu, recuperez /dev/sda în directorul rădăcină cu numele fișierului imagine recuperare.img . Fișierul jurnal cunoscut și sub numele de fișier de hartă este esențial dacă doriți să reluați recuperarea în orice moment.

sudo ddrescue -d -r2 / dev / sda2 recovery.img recovery.log

Două steaguri importante sunt folosite în comanda de mai sus.

d -indirect Este folosit pentru a spune instrumentului să acceseze direct discul ignorând memoria cache a nucleului
rX –reîncercare-pase Este folosit pentru a spune instrumentului să reîncerce sectorul defect X de ori

La executarea comenzii de mai sus, veți observa două fișiere care apar în browserul de fișiere cu numele recuperare.img și recuperare.log .

Timpul de recuperare depinde de dimensiunea blocului de intrare și de deteriorare. Dacă recuperați un bloc mare, vă recomand să aveți un fișier jurnal, deoarece poate dura câteva ore sau chiar zile pentru a finaliza procesul.

Ieșirea comenzii de mai sus este dată mai jos:

În imaginea de ieșire, ipos este poziția de intrare a fișierului de intrare de unde este începută copierea și ulcere este poziția de ieșire pe fișierul de ieșire în care sunt scrise datele.

The neîncercat este dimensiunea blocului nu este în așteptare pentru a fi încercat. The salvat indică dimensiunea blocului recuperat cu succes. The pct salvat indică recuperarea cu succes a datelor în procente. Termenii, netuns , necasate , sector rau , și zone proaste se explică de la sine. Însă erori de citire termenul indică încercările eșuate de citire în cifre.

The timpul de rulare arată timpul necesar instrumentului pentru a finaliza procesul, în timp ce timp rămas este timpul rămas pentru finalizarea procesului de recuperare. Ieșirea de mai sus arată timpul rămas 0 deoarece procesul s-a terminat, citiți rezultatul din imaginea următoare a unui proces neterminat.

Să vedem ce obținem în fișierul jurnal; pentru a deschide fișierul jurnal generat, utilizați vim recovery.log comanda.

The Statusul curent este + ceea ce înseamnă că procesul este terminat, în timp ce curent_poz este poziția pe bloc.

O listă a stărilor curente este dată în următorul tabel:

? Copierea
* Tunderea
/ Casare
Reîncerc
F Umplerea blocurilor specificate
G Generarea fișierului jurnal
+ Procesul este terminat

Sub acesta, fișierul jurnal are indicații de stare ale blocurilor salvate anterior sub forma caracterelor enumerate mai jos:

? Blocul nu este încercat
* Blocul eșuat netăiat
/ Blocul eșuat care nu a fost casat
Blocul eșuat din sectorul rău
+ Bloc terminat

Restaurarea fișierului imagine într-un nou bloc

Odată ce ați terminat cu procesul de recuperare și aveți fișierul imagine. Este posibil să doriți acum să se mute pe noua unitate de pe o unitate coruptă. Pentru a muta fișierul imagine într-un bloc nou, mai întâi, conectați acel bloc la sistem și apoi identificați numele blocului folosind lsblk comanda.

Să presupunem că este /dev/sdb , utilizați următoarea comandă pentru a copia imaginea într-un bloc nou.

sudo ddrescue -f recuperare.img / dev / sdb logfile.log

The -f flag este folosit pentru a suprascrie noul bloc dacă există date. Rețineți că numele fișierului jurnal trebuie să fie diferit pentru a-l păstra separat de fișierul jurnal stocat anterior.

Operația de mai sus se poate face și folosind dd , o altă comandă puternică folosită pentru a copia fișierele.

sudo dd dacă =recovery.img de = / dev / sdb

Înainte de a face o restaurare, rețineți că noul bloc trebuie să fie suficient de mare pentru a păstra întregul bloc recuperat; de exemplu, dacă blocul de recuperare este de 5 GB, noul bloc ar trebui să fie mai mare de 5 GB.

Dacă fișierul imagine recuperat redă o mulțime de erori, atunci acestea pot fi reparate folosind fsck comandă pe Linux într-o oarecare măsură. În timp ce sunteți în Windows, puteți utiliza CHKDSK sau SFC comenzi pentru a face acest lucru. Cu toate acestea, recuperarea depinde de numărul de erori generate de fișierul corupt.

Acum, procesul de recuperare și restaurare sunt finalizate. Un alt lucru important de reținut este că puteți recupera un bloc corupt direct pe alt bloc, în loc să creați un fișier imagine și apoi să îl copiați în noul bloc. Ei bine, în secțiunea următoare, acopăr acest proces în detaliu.

Recuperarea blocului într-un alt bloc

Pentru a recupera un bloc direct într-un bloc nou, mai întâi conectați blocul la sistem și utilizați din nou lsblk comanda pentru a identifica numele blocului. Numele greșite ale blocurilor pot încurca întregul proces și puteți pierde date.

După identificarea blocului sursă și a blocului destinație, utilizați următoarea comandă pentru a recupera blocul:

sudo ddrescue -d -f -r2 / dev / [ sursă ] / dev / [ destinaţie ] backup.log

Sa presupunem /dev/sdb este blocul de destinație, deci pentru a copia /dev/sda directorul către noul bloc folosește:

sudo ddrescue -d -f -r2 / dev / sda / dev / sdb backup.log

Din nou, vedeți considerentele critice menționate în secțiunile anterioare înainte de a încerca acest proces.

Recuperarea datelor specifice din fișierele imagine recuperate

În multe cazuri, scopul recuperării datelor este de a găsi fișierele specifice de pe unitățile corupte. Pentru a accesa fișierul specific, trebuie să montați fișierul imagine. Pe Linux, fișierul imagine recuperat poate fi explorat utilizând montură comanda.

Înainte de a monta fișierul imagine, creați un folder sau director în care doriți să extrageți conținutul fișierului imagine.

mkdir RecoveryMount

Apoi, montați fișierul imagine folosind:

sudo montură -O recuperare buclă.img ~ / RecoveryMount

Indicatorul -o indică opțiunile, în timp ce opțiunea buclă este folosită pentru a trata fișierul imagine ca pe un dispozitiv bloc.

Acum aveți acces la conținutul fișierului imagine, așa cum este afișat în următoarea captură de ecran.

Pentru a demonta blocul, utilizați umount comanda.

sudo umount ~ / RecoveryMount

Caracteristici avansate

Pentru a începe recuperarea dintr-un anumit punct, utilizați -i steag sau – poziție de intrare . Ar trebui să fie în octeți, implicit este 0 octeți. Acest lucru este important pentru a relua copierea dintr-un anumit punct. De exemplu, dacă doriți să începeți procesul de copiere din punctul de 10 GB, utilizați următoarea comandă.

sudo ddrescue -i10GiB / dev / sda imagefile.img logfile.log

Pentru a defini dimensiunea maximă a dispozitivului de intrare, -s va fi folosit steag. The -s semnifică dimensiunea și poate fi folosit și ca -mărimea în octeți. Dacă instrumentul nu recunoaște dimensiunea fișierului de intrare, utilizați această opțiune pentru a-l specifica.

sudo ddrescue -s10GiB / dev / sda imagefile.img logfile.log

The -cere opțiunea poate fi destul de utilă, deoarece solicită confirmarea blocurilor de intrare și ieșire înainte de a începe procesul de copiere. După cum sa discutat mai devreme, sistemul atribuie în mod dinamic nume blocurilor și acestea se modifică la repornire. Deci, în acest caz, această opțiune poate fi utilă.

sudo ddrescue --cere / dev / sda imagefile.img logfile.log

Mai mult, o listă cu alte câteva opțiuni este menționată mai jos:

-R -verso Pentru a inversa direcția de copiere
-q -destul de Pentru a suprima toate mesajele de ieșire
-în -verbos Pentru a detalia, toate mesajele de ieșire
-p – prealocarea Pentru a pre-aloca spațiu de stocare pentru fișierul de ieșire
-P – previzualizarea datelor Liniile de afișare ale celor mai recente date citite implicit este de 3 linii

Cum funcționează ddrescue

Ddrescue folosește un algoritm puternic de recuperare care este împărțit în patru faze:

1. Copierea

2. Tunderea

3. Razuire

4. Reîncercați

Execuția algoritmului ddrescue este prezentată în imaginea următoare.

Concluzie

The ddrescue este un instrument puternic de recuperare folosit pentru a recupera date de pe o unitate coruptă sau defectă pe o altă unitate prin copierea datelor. Poate fi instalat fără efort pe orice distribuție Linux cu ajutorul managerului de pachete implicit. Luați în considerare aspectul important înainte de a utiliza acest instrument menționat în acest ghid. Procesul de copiere a datelor este simplu, demontați unitatea și utilizați comanda ddrescue cu numele unității sursă și numele unității de destinație. Nu uitați să utilizați fișierul jurnal, deoarece devine destul de util să reluați procesul de recuperare.