Hvordan gjenopprette en slettet fil i Linux


Har dette noen gang skjedd deg? Du skjønte at du feilaktig hadde slettet en fil – enten gjennom Del-tasten eller ved å bruke rm på kommandolinjen.

I det første tilfellet kan du alltid gå til papirkurven, søke etter filen og gjenopprette den til den opprinnelige plasseringen. Men hva med det andre tilfellet? Som jeg er sikker på at du sikkert vet, sender Linux-kommandolinjen ikke fjernede filer hvor som helst – den FJERNER dem. Boms. De er borte.

I denne artikkelen vil vi dele et tips som kan være nyttig for å forhindre at dette skjer med deg, og et verktøy du kan vurdere å bruke hvis du på noe tidspunkt er uforsiktig nok til å gjøre det likevel.

Opprett et alias til 'rm -i'

-i-bryteren, når den brukes med rm (og også andre filmanipuleringsverktøy som cp eller mv) forårsaker en melding før du fjerner en fil.

Det samme gjelder for å kopiere, flytte eller gi nytt navn til en fil på et sted der det allerede finnes en med samme navn.

Denne forespørselen gir deg en ny sjanse til å vurdere om du faktisk vil fjerne filen - hvis du bekrefter forespørselen, blir den borte. I så fall beklager jeg, men dette tipset vil ikke beskytte deg mot din egen uforsiktighet.

For å erstatte rm med et alias til rm -i, gjør du:

alias rm='rm -i'

Alias-kommandoen vil bekrefte at rm nå er alias:

Dette vil imidlertid bare vare under gjeldende brukerøkt i gjeldende skall. For å gjøre endringen permanent, må du lagre den i ~/.bashrc (noen distribusjoner kan bruke ~/.profile i stedet) som vist nedenfor:

For at endringene i ~/.bashrc (eller ~/.profile) skal tre i kraft umiddelbart, kilde filen fra gjeldende skall:

. ~/.bashrc

Det rettsmedisinske verktøyet – Foremost

Forhåpentligvis vil du være forsiktig med filene dine og trenger bare å bruke dette verktøyet mens du gjenoppretter en tapt fil fra en ekstern disk eller USB-stasjon.

Men hvis du innser at du ved et uhell fjernet en fil i systemet ditt og kommer til å få panikk – ikke gjør det. La oss ta en titt på først og fremst et rettsmedisinsk verktøy som ble designet for denne typen scenarier.

For å installere først og fremst i CentOS/RHEL 7, må du først aktivere Repoforge:

# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# yum install foremost

Mens i Debian og derivater, bare gjør det

# aptitude install foremost

Når installasjonen er fullført, la oss fortsette med en enkel test. Vi vil begynne med å fjerne en bildefil kalt nosdos.jpg fra /boot/images-katalogen:

# cd images
# rm nosdos.jpg

For å gjenopprette den, bruk først og fremst som følger (du må identifisere den underliggende partisjonen først – /dev/sda1 er der /boot ligger i dette tilfellet):

# foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued

der /home/gacanepa/rescued er en katalog på en separat disk – husk at det ikke er klokt å gjenopprette filer på samme stasjon der de fjernede var plassert.

Hvis du under gjenopprettingen okkuperer de samme disksektorene som de fjernede filene pleide å være, er det kanskje ikke mulig å gjenopprette noe. I tillegg er det viktig å stoppe alle aktivitetene dine før du utfører restitusjonen.

Etter at foremost er ferdig utført, vil den gjenopprettede filen (hvis gjenoppretting var mulig) bli funnet i /home/gacanepa/rescued/jpg-katalogen.

I denne artikkelen har vi forklart hvordan du unngår å fjerne en fil ved et uhell og hvordan du prøver å gjenopprette den hvis en slik uønsket hendelse skjer. Vær imidlertid oppmerksom på at det kan ta lang tid å kjøre, avhengig av størrelsen på partisjonen.

Som alltid, ikke nøl med å gi oss beskjed hvis du har spørsmål eller kommentarer. Send oss gjerne en melding ved å bruke skjemaet nedenfor.