Cum să recuperați fișierele șterse pe Linux cu testdisk

Ați șters vreodată un fișier și ați regretat instantaneu? Ai nevoie de ea înapoi și repede! Dar dacă fișierul este atât de nou, încât nu a fost încă copiat de rezervă? Din fericire, poți face ceva în privința asta.

rm: Prescurtare de la remuşcare?

Este prea ușor să folosești comanda rm și să te trezești uitându-te la o fereastră de terminal cu un sentiment din ce în ce mai profund de regret. O mică greșeală cu metacaraterele și puteți șterge mult mai mult decât v-ați propus.

Sistemul de fișiere Linux implicit, ext4 utilizează inoduri pentru a păstra date despre fiecare fișier și un tabel de inoduri pentru a ține evidența inodelor. Inodul conține metadate despre fișier, cum ar fi numele acestuia, cine îl deține, care sunt permisiunile și așa mai departe.

Conține, de asemenea, puncte de intrare către link-uri hard care indică fișierul. Fiecare fișier are cel puțin o legătură rigidă. De fiecare dată când creați un nou hard link, numărul de hard link crește cu unul. De fiecare dată când eliminați un hard link, numărul de hard link din inod este redus cu unul.

Când ștergeți un fișier pe care inodul l-a marcat ca neutilizat (și gata de reutilizare), ultima legătură rigidă este eliminată. Când se întâmplă acest lucru, fișierul nu va apărea în listele de directoare și nu poate fi utilizat sau accesat.

Cu toate acestea, datele care au alcătuit conținutul fișierului sunt încă prezente pe hard disk. Dacă ați putea corecta inodul astfel încât să conțină informațiile corecte, totuși, fișierul ar fi restaurat. Desigur, acest lucru ar funcționa numai dacă datele care formează fișierul de pe hard disk rămân intacte și nu sunt suprascrise.

Alternativ, puteți crea un nou inod, puteți copia datele supraviețuitoare din vechiul inod și apoi înlocuiți biții lipsă.

Acestea sunt activități non-triviale. De obicei, atunci când ștergeți un fișier din greșeală, este în cel mai rău moment posibil. Este întotdeauna când aveți nevoie de acel fișier și aveți nevoie de el acum. Nu aveți timp să vă murdăriți cu editorii de sector și alte utilități. În plus, dacă este un fișier pe care tocmai l-ați creat, probabil că nu a fost încă copiat de rezervă, așa că nici acestea nu vă vor ajuta.

  [Explained] Cum să utilizați comenzile Linux pe Windows

Aici intervine testdisk. Este ușor de utilizat și nu necesită cunoștințe detaliate, de nivel scăzut, despre sistemul de fișiere. Să aruncăm o privire la cum să-l folosim!

Instalarea testdisk

Pentru a instala testdisk pe Ubuntu, utilizați această comandă:

sudo apt-get install testdisk

Pe Fedora, trebuie să tastați:

sudo dnf install testdisk

Pe Manjaro, trebuie să utilizați pacman:

sudo pacman -Sy testdisk

Folosind testdisk

Deși rulează într-o fereastră de terminal, testdisk are o interfață rudimentară. Folosiți tastele săgeți pentru a naviga și Enter pentru a face o selecție. Pentru a menține lucrurile în ordine, cel mai bine este să creați un director pentru fișierele restaurate.

Introducem următoarele pentru a crea un director numit „restaurat” pentru fișierele noastre restaurate:

mkdir restored

Introducem următoarele pentru a comuta la noul director și a porni testdisk de acolo:

cd restored/

Trebuie să folosim sudo cu testdisk, așa că introducem următoarele:

sudo testdisk

Prima întrebare pe care o pune testdisk este despre înregistrare. Poate crea un nou fișier jurnal, poate folosi unul existent sau nu poate înregistra nimic. Nu contează ce opțiune alegi; nu va afecta modul în care funcționează testdisk.

Puteți apăsa Enter pentru a accepta opțiunea evidențiată și pentru a crea un nou fișier jurnal. Acesta va fi creat în directorul din care ați pornit testdisk. Când faceți selecția, testdisk vă întreabă ce hard disk deține sistemul de fișiere pe care doriți să lucrați.

Listează hard disk-urile pe care le poate găsi, precum și fișierele squashfs „/dev/loop”. Va fi unul dintre acestea pentru fiecare aplicație pe care ați instalat-o dintr-o clipă. Sunt doar pentru citire, așa că nu ar fi trebuit să reușiți să ștergeți nimic din aceste sisteme de fișiere.

  Cum să utilizați pluginurile Pidgin în Empathy Chat pe Linux

Există un singur hard disk fizic în acest computer de testare, așa că am folosit săgeata în jos pentru a evidenția opțiunea „/dev/sda”. Apoi am folosit săgeata dreapta pentru a selecta „Continuați”, apoi am apăsat Enter.

testdisk trebuie să cunoască și tipul partiției. Prezintă un meniu de opțiuni, împreună cu tipul de partiție pe care este detectată automat în partea de jos.

Dacă nu aveți un motiv întemeiat, evidențiați tipul de partiție care este detectată automat, apoi apăsați Enter.

În meniul de funcții care apare, evidențiați „Avansat”, apoi apăsați Enter.

Va apărea meniul de selecție a partiției.

Fișierele pe care le căutăm sunt în partiția sistemului de fișiere Linux. Avem o singură partiție Linux pe hard disk, dar este posibil să aveți mai multe.

Selectați partiția în care se aflau fișierele dvs., utilizați tastele săgeți stânga și dreapta pentru a selecta „Lista”, apoi apăsați Enter. Va apărea meniul de selecție a fișierelor.

Utilizați săgețile sus și jos sau tastele PgUp și PgDn pentru a naviga în lista de fișiere și directoare. Apăsați săgeata dreapta sau Enter pentru a intra într-un director și săgeata stânga sau Esc pentru a ieși dintr-un director.

Căutăm fișiere care au fost deținute de Dave. Fișierele pentru toate conturile de utilizator se află în directorul „Acasă”. Deci, evidențiem directorul „Acasă”, apoi putem apăsa fie săgeata dreapta, fie Enter pentru a intra în acel director.

Toate conturile de utilizator sunt apoi listate pentru noi. Evidențiem pe dave și apoi apăsăm săgeata dreapta sau Enter pentru a intra în acel director.

Acum putem vedea fișierele care aparțin contului dave. Intrările cu roșu au fost șterse. Navigam prin fișiere și directoare până când găsim fișierele pe care dorim să le recuperăm.

Pentru a recupera un fișier, evidențiați-l și apoi apăsați c (minuscule).

Afișajul se schimbă și vă spune să alegeți o destinație pentru fișierul recuperat. Deoarece am creat un director numit „Restaurat” și am pornit testdisk de pe acesta, prima intrare din listă (.) este acel director. Pentru a recupera acest fișier șters în acel director, apăsăm C (majuscule).

  Cum să găsiți motivul repornirii Linux?

După ce faceți acest lucru, veți reveni la afișajul de selecție a fișierelor. Dacă doriți să recuperați mai multe fișiere, repetați procesul. Evidențiați un fișier șters, apăsați c (minuscule) pentru a-l copia, apoi apăsați C (majuscule) pentru a-l recupera.

Lucrul cu fișierele restaurate

După ce restaurați un fișier, arborele de directoare în locația sa inițială este reconstruit, ceea ce este util deoarece vă reamintește unde pe hard disk se afla fișierul original. Aceasta înseamnă că dacă trebuie să-l copiați înapoi, știți unde să îl puneți.

Dacă recuperați un număr de fișiere din diferite locații ale sistemului de fișiere care se întâmplă să aibă același nume de fișier, acestea vor trebui oricum stocate separat.

Puteți introduce următoarele pentru a vedea conținutul directorului „Restaurat”:

ls

Dacă ați cerut testdisk să creeze un fișier jurnal, acesta va fi în directorul „Restaurat”. Deoarece fișierele noastre recuperate se aflau la „/home/dave”, acestea au fost copiate în directorul nostru „Restaurat”, imbricat în directoare cu același nume.

Ne putem schimba în directorul copiat „dave” folosind cd. Asigurați-vă că nu includeți o bară oblică înainte (/) pe cale – doriți să treceți în „acasă” locală, nu în sistemul „/acasă”.

Introducem următoarele:

cd home/dave

Fișierele recuperate se află în acel director, așa că tastam:

ls

Să aruncăm o altă privire la fișierele recuperate folosind opțiunea -l (lista lungă):

ls -l

Deoarece am folosit sudo pentru a lansa testdisk, fișierele recuperate au fost restaurate cu „root” ca proprietar. Putem schimba proprietarul înapoi la „dave” folosind chown:

sudo chown dave.dave *

Introducem următoarele pentru a ne asigura că proprietatea corectă a fost restaurată:

ls -l

testdisk: Cod pentru Relief

Acea senzație de ușurare după ce recuperezi un fișier important care, cu doar o clipă în urmă, s-a simțit iremediabil pierdut, este ceva pe care îl vei aprecia întotdeauna.

De aceea, testdisk este un utilitar atât de util. După ce treci prin meniuri și poți începe restaurarea fișierelor, este ușor să cazi într-un ritm de evidențiere, c, C, repetă.