Har du någonsin raderat en fil och omedelbart beklagade det? Du behöver det tillbaka och snabbt! Men vad händer om filen är så ny, har den ännu inte säkerhetskopierats? Lyckligtvis finns det något du kan göra åt det.
RM: Kort för ånger?
Det är alltför lätt att använda
rm
kommando
Och hitta dig att stirra i ett terminalfönster med en fördjupning av ånger. Ett litet misstag med jokertecken, och du kan utplåna mycket mer än du tänkte.
Standard Linux-filsystemet,
ext4
använder inoder
För att hålla data om varje fil och ett inodtabell för att hålla reda på inoderna. Inoden innehåller metadata om filen, till exempel namnet, som äger det, vad behörigheterna är och så vidare.
Det innehåller också inmatningspunkter till hårda länkar som pekar på filen. Varje fil har minst en hård länk. Varje gång du skapar en ny hård länk ökar det hårda länkräkningen av en. Varje gång du tar bort en hård länk reduceras det hårda länkräkningen i Inoden med en.
När du tar bort en fil har Inode markerat som oanvänd (och klar för återanvändning), den sista hårda länken tas bort. När det händer visas filen inte i katalogförteckningar, och det kan inte användas eller nås.
De data som utgjorde innehållet i filen är dock fortfarande närvarande på hårddisken. Om du kunde ladda inode så det innehöll rätt information, men filen skulle återställas. Naturligtvis skulle det bara fungera om de data som utgör filen på hårddisken förblir intakt och skrivs inte över.
Alternativt kan du skapa en ny inode, kopiera de överlevande data från den gamla inoden och ersätta sedan de saknade bitarna.
Det är nontrivial aktiviteter. Vanligtvis, när du tar bort en fil av misstag, är det på det värsta möjliga ögonblicket. Det är alltid när du behöver den filen, och du behöver det nu. Du har inte tid att komma ner och smutsiga med sektorsredaktörer och andra verktyg. Plus, om det är en fil du just skapat, har det troligtvis inte spelats upp, så de hjälper dig inte heller.
Det här
testdisk
kommer in. Det är lätt att använda och kräver inte detaljerad, låg nivå kunskap om filsystemet. Låt oss ta en titt på hur du använder det!
RELATERAD: Allt du någonsin velat veta om inoder på Linux
Installera TestDisk
Att installera
testdisk
På Ubuntu, använd det här kommandot:
sudo apt-få installera testdisk
På Fedora måste du skriva:
sudo dnf installera testdisk
På Manjaro måste du använda
Pac Man
:
sudo pacman -sy testdisk
Använder testdisk
Även om det går i ett terminalfönster,
testdisk
har ett rudimentärt gränssnitt. Du använder piltangenterna för att navigera och ange för att göra ett urval. För att hålla saker snyggt är det bäst att skapa en katalog för återställda filer.
Vi skriver följande för att skapa en katalog som heter "Restored" för våra återställda filer:
MKDIR återställdes
Vi skriver följande för att växla till den nya katalogen och starta
testdisk
därifrån:
CD återställd /
Vi måste använda
sudo
med
testdisk
, så vi skriver följande:
sudo testdisk
Den första frågan
testdisk
frågar handlar om loggning. Det kan skapa en ny loggfil, använd en befintlig, eller logga inte alls alls. Det spelar ingen roll vilket alternativ du väljer; Det kommer inte att påverka vägen
testdisk
opererar.
Du kan bara trycka på ENTER för att acceptera det markerade alternativet och skapa en ny loggfil. Den kommer att skapas i katalogen från vilken du startade
testdisk
. När du gör ditt val,
testdisk
Frågar vilken hårddisk som håller det filsystem du vill arbeta med.
Det listar de hårddiskar som den kan hitta, liksom
squashfs
"/ Dev / loop" -filer. Det kommer att bli en av dessa för varje applikation du har installerat från a
knäppa
. De är skrivskyddade, så du borde inte ha lyckats radera någonting från dessa filsystem.
Det finns bara en fysisk hårddisk i den här testdatorn, så vi använde pilen för att markera alternativet "/ dev / sda". Vi använde sedan den högra pilen för att välja "Fortsätt" och sedan trycker på Enter.
testdisk
Behöver också veta partitionstypen. Det presenterar en meny med alternativ, tillsammans med den typ av partition det är autodetekterat längst ner.
Om du inte har en bra anledning att inte, markera den typ av partition som är autodetekterad och tryck sedan på ENTER.
I funktionsmenyn som visas, markera "Avancerat" och tryck sedan på ENTER.
Partitionsvalmenyn visas.
De filer vi letar efter är i Linux-filsystempartitionen. Vi har bara en Linux-partition på vår hårddisk, men du kan ha mer.
Välj den partition som dina filer var på, använd vänster och höger piltangenter för att välja "LIST," och tryck sedan på ENTER. Fil-valmenyn visas.
Använd upp och nerpilarna eller PGUP- och PGDN-tangenterna för att navigera på listan med filer och kataloger. Tryck på högerpil eller ENTER för att ange en katalog och den vänstra pilen eller ESC för att avsluta en katalog.
Vi letar efter filer som ägdes av
dave
. Filerna för alla användarkonton finns i "Hem" -katalogen. Så, vi markerar "hem" -katalogen, och sedan kan vi trycka antingen på högerpil eller ENTER för att ange den katalogen.
Alla användarkonton listas sedan för oss. Vi markerar
dave
, och tryck sedan på högerpilen eller ENTER för att ange den katalogen.
Vi kan nu se de filer som hör till
dave
konto. Inlägget i rött har raderats. Vi navigerar genom filerna och katalogerna tills vi hittar de filer vi vill återhämta sig.
För att återställa en fil, markera den bara och tryck sedan på c (små bokstäver).
Skärmen ändras och berättar att du väljer en destination för den återställda filen. Eftersom vi skapade en katalog som heter "återställd" och började
testdisk
Från det är den första posten i listan (.) den katalogen. För att återställa den här raderade filen till den katalogen, trycker vi på C (versaler).
När du har gjort det, returneras du till filvalskärmen. Om du vill återställa fler filer, upprepa bara processen. Markera en raderad fil, tryck på C (små bokstäver) för att kopiera den och tryck sedan på c (versaler) för att återställa den.
Arbeta med återställda filer
När du har återställt en fil, rekonstrueras katalogträdet till sin ursprungliga plats, vilket är användbart eftersom det påminner dig var på hårddisken den ursprungliga filen som används för att bo. Det betyder att om du behöver kopiera tillbaka det, vet du var du ska sätta det.
Om du återställer ett antal filer från olika filsystem som råkar ha samma filnamn, måste de lagras separat ändå.
Du kan skriva in följande för att se innehållet i katalogen "Återställd":
LS
Om du frågade
testdisk
För att skapa en loggfil kommer den att vara i katalogen "Återställda". Eftersom våra återställda filer var belägna på "/ home / dave", har de kopierats till vår "återställda" katalog, nestade i kataloger med samma namn.
Vi kan ändra till den kopierade "Dave" -katalogen med
CD
. Se till att du inte innehåller ett ledande framåtspel (
/
) På vägen-du vill byta till det lokala "hemmet", inte systemet "/ hem."
Vi skriver följande:
CD Hem / Dave
De återställda filerna är i den katalogen, så vi skriver:
LS
Låt oss ta en annan titt på de återställda filerna med hjälp av
-l
(lång notering) alternativ:
ls -l
Eftersom vi använde
sudo
att avfyra
testdisk
De återställda filerna har återställts med "root" som ägare. Vi kan ändra ägaren tillbaka till "Dave" med
chown
:
sudo chown dave.dave *
Vi skriver följande för att se till att rätt ägande har återställts:
ls -l
TestDisk: Kod för lättnad
Den känslan av lättnad efter att du återhämtat en viktig fil som, för ett ögonblick sedan, kände sig oåterkalleligt förlorad, är något du alltid kommer att uppskatta.
Det är därför
testdisk
är ett sådant praktiskt verktyg. När du har gjort det genom menyerna och kan börja återställa filer, är det lätt att falla i en rytm av höjdpunkt, C, C, upprepa.