Hoe verwijderde bestanden op Linux te herstellen met testdisk

Een illustratie van een terminalvenster op een Linux-computer.
Fatmawati Achmad Zaenuri / Shutterstock

Heb je ooit een bestand verwijderd en heb je er meteen spijt van? Je hebt het terug nodig, en snel! Maar wat als het bestand zo nieuw is en er nog geen back-up van is gemaakt? Gelukkig kun je er iets aan doen.

rm: Afkorting voor Remorse?

Het is maar al te gemakkelijk om de rm commando en merk dat je naar een terminalvenster staart met een dieper gevoel van spijt. Een kleine fout met jokertekens, en je kunt veel meer wegvagen dan je van plan was.

Het standaard Linux-bestandssysteem, ext4 gebruikt inodes om gegevens over elk bestand vast te houden en een inodetabel om de inodes bij te houden. De inode bevat metagegevens over het bestand, zoals de naam, wie de eigenaar is, wat de rechten zijn, enzovoort.

Het bevat ook toegangspunten voor harde links die naar het bestand verwijzen. Elk bestand heeft minstens één harde link. Elke keer dat u een nieuwe harde link maakt, wordt het aantal harde links met één verhoogd. Elke keer dat u een harde link verwijdert, wordt het aantal harde links in de inode met één verminderd.

Wanneer u een bestand verwijdert dat de inode heeft gemarkeerd als ongebruikt (en klaar voor hergebruik), wordt de laatste harde link verwijderd. Wanneer dit gebeurt, verschijnt het bestand niet in de directoryvermeldingen en kan het niet worden gebruikt of geopend.

De gegevens waaruit de inhoud van het bestand bestaat, zijn echter nog steeds aanwezig op de harde schijf. Als u de inode zou kunnen patchen zodat deze de juiste informatie bevat, zou het bestand worden hersteld. Dit werkt natuurlijk alleen als de gegevens waaruit het bestand op de harde schijf bestaat intact blijven en niet worden overschreven.

U kunt ook een nieuwe inode maken, de overgebleven gegevens van de oude inode kopiëren en vervolgens de ontbrekende bits vervangen.

Dat zijn niet triviale activiteiten. Als u per ongeluk een bestand verwijdert, is dit meestal op het slechtst mogelijke moment. Het is altijd wanneer je dat bestand nodig hebt, en je hebt het nu nodig. Je hebt geen tijd om met sectorredacteuren en andere hulpprogramma’s in zee te gaan. En als het een bestand is dat u zojuist hebt gemaakt, is er waarschijnlijk nog geen back-up van gemaakt, dus die zullen u ook niet helpen.

Dit waar testdisk komt binnen. Het is gemakkelijk te gebruiken en vereist geen gedetailleerde, lage kennis van het bestandssysteem. Laten we eens kijken hoe we het kunnen gebruiken!

VERWANT: Alles wat u ooit wilde weten over inodes op Linux

Testdisk installeren

Installeren testdisk gebruik op Ubuntu deze opdracht:

sudo apt-get install testdisk

sudo apt-get install testdisk in een terminalvenster.

Op Fedora moet je typen:

sudo dnf install testdisk

sudo dnf installeer testdisk in een terminalvenster.

Op Manjaro moet je gebruiken pacman:

sudo pacman -Sy testdisk

sudo pacman -Sy testdisk in een terminalvenster.

Testdisk gebruiken

Hoewel het in een terminalvenster draait, testdisk heeft een rudimentaire interface. U gebruikt de pijltjestoetsen om te navigeren en Enter om een ​​selectie te maken. Om alles netjes te houden, kunt u het beste een map maken voor herstelde bestanden.

We typen het volgende om een ​​map te maken met de naam “hersteld” voor onze herstelde bestanden:

mkdir restored

mkdir hersteld in een terminalvenster.

We typen het volgende om over te schakelen naar de nieuwe directory en te starten testdisk vanaf daar:

cd restored/

cd hersteld / in een terminalvenster.

We moeten gebruiken sudo met testdisk, dus typen we het volgende:

sudo testdisk

sudo testdisk in een terminalvenster.

De eerste vraag testdisk vraagt ​​gaat over loggen. Het kan een nieuw logbestand maken, een bestaand logboekbestand gebruiken of helemaal niets loggen. Het maakt niet uit welke optie u kiest; het heeft geen invloed op de weg testdisk werkt.

De logging-opties in testdisk in een terminalvenster.

U kunt gewoon op Enter drukken om de gemarkeerde optie te accepteren en een nieuw logboekbestand te maken. Het wordt gemaakt in de directory van waaruit u bent begonnen testdisk. Als u uw keuze maakt, testdisk vraagt ​​op welke harde schijf het bestandssysteem staat waarop u wilt werken.

Het geeft een overzicht van de harde schijven die het kan vinden, evenals de squashfs “/ Dev / loop” -bestanden. Er is een van deze voor elke applicatie die u hebt geïnstalleerd vanaf een snap. Ze zijn alleen-lezen, dus het was u niet gelukt om iets uit deze bestandssystemen te verwijderen.

Een harde-schijfmenu in testdisk in een terminalvenster.

Er is maar één fysieke harde schijf in deze testcomputer, dus hebben we de pijl omlaag gebruikt om de optie “/ dev / sda” te markeren. We gebruikten vervolgens de pijl naar rechts om “Proceed” te selecteren en drukten vervolgens op Enter.

"Doorgaan" geselecteerd in een terminalvenster.

testdisk moet ook het partitietype weten. Het presenteert een menu met opties, samen met het type partitie dat het automatisch wordt gedetecteerd onderaan.

Partitietabel type menu in testdisk in een terminalvenster.

Markeer het type partitie dat automatisch wordt gedetecteerd, en druk vervolgens op Enter, tenzij u een goede reden hebt om dit niet te doen.

Markeer “Advanced” in het functiemenu dat verschijnt en druk op Enter.

"Geavanceerd" geselecteerd in het functiemenu in een terminalvenster.

Het partitieselectiemenu zal verschijnen.

Het partitieselectiemenu in testdisk in een terminalvenster.

De bestanden die we zoeken, bevinden zich in de Linux-bestandssysteempartitie. We hebben maar één Linux-partitie op onze harde schijf, maar misschien heb je er meer.

Selecteer de partitie waarop uw bestanden zich bevonden, gebruik de linker- en rechterpijltoetsen om “List” te selecteren en druk op Enter. Het bestandsselectiemenu verschijnt.

Het menu Bestandsselectie in testdisk in een terminalvenster.

Gebruik de pijlen omhoog en omlaag of de toetsen PgUp en PgDn om door de lijst met bestanden en mappen te navigeren. Druk op de pijl naar rechts of Enter om een ​​directory in te voeren en op de pijl naar links of op Esc om een ​​directory te verlaten.

We zoeken naar bestanden die eigendom waren van dave. De bestanden voor alle gebruikersaccounts staan ​​in de “Home” -directory. We markeren dus de “Home” -directory en vervolgens kunnen we op de rechterpijl of op Enter drukken om die directory te openen.

Alle gebruikersaccounts worden dan voor ons vermeld. We benadrukken daveen druk vervolgens op de pijl naar rechts of Enter om die directory te openen.

Een homedirectory in testdisk in een terminalvenster.

We kunnen nu de bestanden zien die bij het dave account. De items in het rood zijn verwijderd. We navigeren door de bestanden en mappen totdat we de bestanden vinden die we willen herstellen.

Verwijderde bestanden in TestDisk in een terminalvenster.

Om een ​​bestand te herstellen, markeert u het en drukt u vervolgens op c (kleine letters).

Het scherm verandert en vertelt u om een ​​bestemming te kiezen voor het herstelde bestand. Omdat we een map met de naam “Hersteld” hebben gemaakt en zijn begonnen testdisk daaruit is het eerste item in de lijst (.) die directory. Om dit verwijderde bestand in die map te herstellen, drukken we op C (hoofdletters).

Het bestandsbestemmingsmenu in TestDisk in een terminalvenster.

Nadat u dit heeft gedaan, keert u terug naar de display voor bestandsselectie. Als u meer bestanden wilt herstellen, herhaalt u het proces. Markeer een verwijderd bestand, druk op c (kleine letters) om het te kopiëren en druk vervolgens op C (hoofdletters) om het te herstellen.

Werken met herstelde bestanden

Nadat u een bestand hebt hersteld, wordt de directorystructuur naar de oorspronkelijke locatie gereconstrueerd, wat handig is omdat het u eraan herinnert waar op de harde schijf het oorspronkelijke bestand zich bevond. Dit betekent dat als u het terug moet kopiëren, u weet waar u het moet plaatsen.

Als je een aantal bestanden herstelt van verschillende bestandssysteemlocaties die toevallig dezelfde bestandsnaam hebben, zullen ze hoe dan ook apart moeten worden opgeslagen.

U kunt het volgende typen om de inhoud van de map “Hersteld” te zien:

ls

Als je erom vraagt testdisk om een ​​logbestand aan te maken, staat het in de map “Hersteld”. Omdat onze herstelde bestanden zich op “/ home / dave” bevonden, zijn ze gekopieerd naar onze map “Hersteld”, genest in mappen met dezelfde naam.

We kunnen naar de gekopieerde “dave” -directory gaan met cd. Zorg ervoor dat u geen voorlopende schuine streep (/) op het pad – u wilt veranderen in het lokale “huis”, niet het systeem “/ home”.

We typen het volgende:

cd home/dave

De herstelde bestanden bevinden zich in die map, dus we typen:

ls

ls in een terminalvenster.

Laten we de herstelde bestanden nog eens bekijken met de -l (lange lijst) optie:

ls -l

ls -l in een terminalvenster.

Omdat we gebruikten sudo lanceren testdisk, zijn de herstelde bestanden hersteld met “root” als eigenaar. We kunnen de eigenaar terug veranderen naar “dave” met chown:

sudo chown dave.dave *

sudo chown dave.dave * in een terminalvenster.

We typen het volgende om ervoor te zorgen dat het juiste eigendom is hersteld:

ls -l

ls -l in een terminalvenster.

testdisk: Code voor Relief

Dat gevoel van opluchting nadat u een belangrijk bestand hebt hersteld dat zojuist onherstelbaar verloren was gegaan, is iets dat u altijd zult waarderen.

Dat is waarom testdisk is zo’n handig hulpprogramma. Nadat u door de menu’s bent gegaan en kunt beginnen met het herstellen van bestanden, is het gemakkelijk om in een ritme van hoogtepunten, c, C, herhalen te vervallen.

Nieuwste artikelen

Gerelateerde artikelen