Sådan gendannes slettede filer på Linux med testdisk

Har du nogensinde slettet en fil og øjeblikkeligt fortrudt det? Du skal have det tilbage, og hurtigt! Men hvad hvis filen er så ny, at den endnu ikke er blevet sikkerhedskopieret? Heldigvis er der noget, du kan gøre ved det.

rm: Forkortelse for anger?

Det er alt for nemt at bruge rm-kommandoen og se dig selv stirre på et terminalvindue med en dybere følelse af fortrydelse. En lille fejl med jokertegn, og du kan udslette meget mere, end du havde tænkt dig.

Standard Linux-filsystemet, ext4 bruger inoder til at opbevare data om hver fil og en inodetabel til at holde styr på inoderne. Inoden indeholder metadata om filen, såsom dens navn, hvem der ejer den, hvad tilladelserne er og så videre.

Den indeholder også indgangspunkter til hårde links, der peger på filen. Hver fil har mindst ét ​​fast link. Hver gang du opretter et nyt hårdt link, stiger antallet af hårde links med én. Hver gang du fjerner en hard link, reduceres antallet af hard link i inoden med én.

Når du sletter en fil, som inoden har markeret som ubrugt (og klar til genbrug), fjernes det sidste hårde link. Når dette sker, vises filen ikke i mappeoversigter, og den kan ikke bruges eller tilgås.

De data, der udgjorde indholdet af filen, er dog stadig til stede på harddisken. Hvis du kunne patche inoden, så den indeholdt de korrekte oplysninger, ville filen dog blive gendannet. Dette ville selvfølgelig kun fungere, hvis de data, der udgør filen på harddisken, forbliver intakte og ikke overskrives.

Alternativt kan du oprette en ny inode, kopiere de overlevende data fra den gamle inode og derefter erstatte de manglende bits.

Det er ikke-trivielle aktiviteter. Normalt, når du sletter en fil ved en fejl, er det på det værst tænkelige tidspunkt. Det er altid, når du har brug for den fil, og du har brug for den nu. Du har ikke tid til at blive snavset med sektoreditorer og andre hjælpeprogrammer. Plus, hvis det er en fil, du lige har oprettet, er den sandsynligvis ikke blevet sikkerhedskopieret endnu, så de hjælper dig heller ikke.

  Sådan spiller du Battlefield V på Linux

Det er her testdisk kommer ind. Den er nem at bruge og kræver ikke detaljeret kendskab til filsystemet på lavt niveau. Lad os tage et kig på, hvordan man bruger det!

Installerer testdisk

For at installere testdisk på Ubuntu, brug denne kommando:

sudo apt-get install testdisk

På Fedora skal du skrive:

sudo dnf install testdisk

På Manjaro skal du bruge pacman:

sudo pacman -Sy testdisk

Brug af testdisk

Selvom det kører i et terminalvindue, har testdisken en rudimentær grænseflade. Du bruger piletasterne til at navigere og Enter for at foretage et valg. For at holde tingene pæne er det bedst at oprette en mappe til gendannede filer.

Vi skriver følgende for at oprette en mappe kaldet “gendannet” til vores gendannede filer:

mkdir restored

Vi skriver følgende for at skifte til den nye mappe og starte testdisk derfra:

cd restored/

Vi skal bruge sudo med testdisk, så vi skriver følgende:

sudo testdisk

Det første spørgsmål testdisk stiller handler om logning. Det kan oprette en ny logfil, bruge en eksisterende eller slet ikke logge noget. Det er lige meget, hvilken mulighed du vælger; det vil ikke påvirke den måde, testdisken fungerer på.

Du kan bare trykke på Enter for at acceptere den fremhævede mulighed og oprette en ny logfil. Det vil blive oprettet i den mappe, hvorfra du startede testdisken. Når du foretager dit valg, spørger testdisken, hvilken harddisk der indeholder det filsystem, du vil arbejde på.

Den viser de harddiske, den kan finde, såvel som squashfs “/dev/loop”-filer. Der vil være en af ​​disse for hver applikation, du har installeret på et øjeblik. De er skrivebeskyttede, så du skulle ikke have formået at slette noget fra disse filsystemer.

Der er kun én fysisk harddisk i denne testcomputer, så vi brugte pil ned til at fremhæve “/dev/sda”-indstillingen. Vi brugte derefter højre pil til at vælge “Fortsæt”, og trykkede derefter på Enter.

  Sådan spiller du Little Nightmares på Linux

testdisk skal også kende partitionstypen. Den præsenterer en menu med muligheder sammen med den type partition, den automatisk registreres i bunden.

Medmindre du har en god grund til ikke at gøre det, skal du markere den type partition, der automatisk registreres, og derefter trykke på Enter.

I funktionsmenuen, der vises, skal du fremhæve “Avanceret” og derefter trykke på Enter.

Menuen til valg af partition vises.

De filer, vi leder efter, er i Linux-filsystempartitionen. Vi har kun én Linux-partition på vores harddisk, men du har måske flere.

Vælg den partition, dine filer var på, brug venstre og højre piletaster til at vælge “Liste”, og tryk derefter på Enter. Filvalgsmenuen vises.

Brug op- og ned-pilene eller PgUp- og PgDn-tasterne til at navigere i listen over filer og mapper. Tryk på højre pil eller Enter for at gå ind i en mappe, og på venstre pil eller Esc for at afslutte en mappe.

Vi leder efter filer, der var ejet af dave. Filerne for alle brugerkonti er i mappen “Hjem”. Så vi fremhæver “Hjem”-mappen, og så kan vi trykke enten på højrepilen eller Enter for at gå ind i den mappe.

Alle brugerkonti er derefter opført for os. Vi fremhæver dave, og tryk derefter på højre pil eller Enter for at gå ind i den mappe.

Vi kan nu se de filer, der hører til dave-kontoen. Indtastningerne med rødt er blevet slettet. Vi navigerer gennem filerne og mapperne, indtil vi finder de filer, vi vil gendanne.

For at gendanne en fil skal du blot fremhæve den og derefter trykke på c (små bogstaver).

Displayet ændres og fortæller dig, at du skal vælge en destination for den gendannede fil. Fordi vi oprettede en mappe kaldet “Gendannet” og startede testdisk fra den, er den første post på listen (.) denne mappe. For at gendanne denne slettede fil til den mappe, trykker vi på C (store bogstaver).

Når du har gjort dette, vender du tilbage til filvalgsdisplayet. Hvis du vil gendanne flere filer, skal du bare gentage processen. Fremhæv en slettet fil, tryk på c (små bogstaver) for at kopiere den, og tryk derefter på C (store bogstaver) for at gendanne den.

  Sådan bruger du cd-kommandoen på Linux

Arbejde med gendannede filer

Når du har gendannet en fil, rekonstrueres mappetræet til dets oprindelige placering, hvilket er nyttigt, fordi det minder dig om, hvor på harddisken den originale fil plejede at ligge. Det betyder, at hvis du har brug for at kopiere det tilbage, ved du, hvor du skal placere det.

Hvis du gendanner et antal filer fra forskellige filsystemplaceringer, der tilfældigvis har det samme filnavn, skal de alligevel opbevares separat.

Du kan skrive følgende for at se indholdet af mappen “Gendannet”:

ls

Hvis du bad testdisk om at oprette en logfil, vil den være i mappen “Gendannet”. Fordi vores gendannede filer var placeret på “/home/dave”, er de blevet kopieret til vores “Gendannet” mappe, indlejret i mapper med samme navn.

Vi kan skifte til den kopierede “dave” mappe ved hjælp af cd. Sørg for, at du ikke inkluderer en fremadgående skråstreg (/) på stien – du vil skifte til det lokale “hjem”, ikke systemet “/hjem”.

Vi skriver følgende:

cd home/dave

De gendannede filer er i den mappe, så vi skriver:

ls

Lad os tage et nyt kig på de gendannede filer ved hjælp af -l (lang liste) mulighed:

ls -l

Fordi vi brugte sudo til at starte testdisk, er de gendannede filer blevet gendannet med “root” som ejer. Vi kan ændre ejeren tilbage til “dave” ved at bruge chown:

sudo chown dave.dave *

Vi indtaster følgende for at sikre, at det korrekte ejerskab er blevet genoprettet:

ls -l

testdisk: Kode til Relief

Den følelse af lettelse, efter du har gendannet en vigtig fil, som for blot et øjeblik siden føltes uigenkaldeligt tabt, er noget, du altid vil sætte pris på.

Det er derfor testdisk er så praktisk et værktøj. Når du er kommet igennem menuerne og kan begynde at gendanne filer, er det nemt at falde ind i en rytme med fremhævelse, c, C, gentag.