Gjenvinne slettede filer og reparer Filsystemer på Linux

Linux er så solid et operativsystem som du noensinne vil bruke — men det betyr ikke at maskinvaren du kjører det på er like solid. Harddisker er så utsatt for feil som er filsystemer. Og uansett hvor stabilt et OS er, kan det ikke hindre deg fra uhell sletter filer og /eller mapper. Men fortvil ikke: Linux er utstyrt med en rekke verktøy som kan hjelpe deg å reparere filsystem feil og gjenvinne slettede filer

Hvilke verktøy.? For å starte, vil e2fsck, skalpell, og lsof får du lengst. La oss ta en titt på hvordan hver av disse kan brukes til å hjelpe dine filsystemer være fri for feil og filene dine bli frigjort fra utilsiktet sletting.

Kontrollere Ext2 /Ext3 /ext4 Filsystemer med e2fsck

Den e2fsck verktøyet tar etter den opprinnelige UNIX fsck verktøyet, men brukes til å kontrollere Ext2 /Ext3 /Ext4 familie av filsystemer. Den brukes til å sjekke, og reparere, filsystemer som er nedstengt uncleanly eller på annen måte utviklet feil.

Et problem de fleste brukerne står overfor er at e2fsck verktøyet kan bare fungere på umonterte partisjoner. Dette kan føre til et problem hvis filsystemet du må sjekke er også den du jobber med. Mange foreslår å bytte løpe system for å kjøre nivå 1 med kommandoen (kjøre som administrativ bruker):

init en

Men, anbefaler jeg at du tar dette ett skritt videre og bruke en Live distribusjon som Knoppix eller Puppy Linux eller distribusjonen din live CD hvis den har en. Ved oppstart i en Live fordeling diskene ikke vil bli montert og kan trygt sjekkes for feil. Hvis imidlertid du ikke ønsker å bruke Live-distribusjonen må du sørge for at du bytter til å kjøre nivå 1 og deretter avmontere partisjonen du ønsker å sjekke. Si for eksempel, vil du sjekke partisjonen /dev /sdb1. For å gjøre dette vil du først bytte til kjøre nivå 1 (kommandoen vist over) og deretter kjøre kommandoen:

umount /dev /sdb1

Med målet partisjonen avmontert, er du klar til å begynne kjører sjekken. For å gjøre dette skriver du inn kommandoen:

e2fsck -y /dev /sdb1

y alternativet foruts svaret er "ja" for alle spørsmålene kommandoen vil presentere for deg. Avhengig av størrelsen på stasjonen og beløps feil på harddisken din, kan denne reparasjonen ta ganske lang tid. Når reparasjonen er fullført, kan du alltids kjøre kommandoen igjen for å sjekke om eventuelle feil var savnet. Når stasjonen kommer opp rydde dere kan starte opp din vanlige system (Hvis du brukte en live CD å kjøre e2fsck, husk å fjerne live disk ved omstart) eller kobler til umonterte partisjonen.

gjenopprette slettede filer

Nå la oss ta en titt på prosessen med å gjenopprette slettede filer. Grunnen til at dette er også mulig at en fil er faktisk bare en link til en inode på en disk. Dette inode inneholder all informasjon for filen. Når du sletter en fil du egentlig bare bryte koblingen til inode slik at filen kan egentlig bare ikke funnet. Selve inode selv vil forbli på disken ... men bare midlertidig. Så lenge en prosess har som slettede filen åpnes som inode er ikke gjort tilgjengelig for skriving. Så, denne metoden faktisk har en tidsbegrensning, og en relativt kort tidsperiode på det. Nøkkelen til denne oppgangen er /proc katalogen. Hver prosess på systemet ditt har en katalog, innenfor /proc, oppført av navnet. Hvis du kjører kommandoen ls /proc du vil se en haug med kataloger med numeriske navn samt kataloger /filer som har navn som bør se kjent. De viktigste kataloger er de tallmessig navngitte kataloger. Disse tallene er prosess IDer (PID'er) av åpne programmer. Du kan alltid bruke ps-kommandoen for å finne PID av programmet du leter etter.

Når du har funnet den riktige prosessen i /proc kan du hente data fra riktig katalog og lagre den på nytt. Fil gjenvunnet. La oss ta en titt på hele prosessen. Jeg vil vise dette med en ganske forenklede eksempel som du kan utvide på ganske enkelt.

La oss lage en fil (si det er en Bash script eller konfigurasjonsfilen) kalt test_file. Lag denne filen med kommandoen:

echo "Dette er min testfilen"> ~ /test_file

Nå har du en fil som heter "test_file" som inneholder én linje "dette er min test fil". La oss slette filen og gjenopprette den. For å gjøre dette vil vi se på innholdet av filen med mindre kommando og deretter zombie denne prosessen slik at dataene blir holdt. Her er fremgangsmåten:

Trinn 1: La oss vise innholdet i denne filen med kommandoen mindre ~ /test_file

Trinn 2:. Med det fil åpen i terminalvinduet, traff tastekombinasjonen ctrl-z til zombie prosessen

Trinn 3:. La oss sørge for at vårt testfilen fortsatt eksisterer. Hvis du gi kommandoen ls -l ~ /test_file vil du se fortsatt filen der. Så langt så bra

Trinn 4:. Samtidig ledeteksten problemet kommandoen rm ~ /test_file å slette filen

Trinn 5:. Kontroller om filen er der med kommandoen ls ~ /test_file. Du bør ikke se at filen oppført nå. Fordi kommandoen vi pleide å se filen (mindre ~ /test_file) ble zombied har data blitt holdt. La oss gjenopprette det

Trinn 6:. Gi kommandoen lsof | grep test_file. Denne kommandoen vil ta litt tid å kjøre, men vil etter hvert spytte ut den nødvendige informasjon som vil ligne:

mindre 14675 zombie 4r REG 8,1 21 5127399 /home /zombie /test_file (slettet)

Det vi trenger er PID av filen (som er i den andre kolonnen — i dette eksempelet er det 14 675) og filen descriptor (Som er i den fjerde kolonnen — i dette eksemplet er det nummer 4) .

Trinn 7: Tid for selve utvinningen. Med den informasjonen du har nå kan du gjenopprette filen med kommandoen:

cp /proc /14675 /fd /4 ~ /recovered_file

Trinn 8: La oss kontrollere at innholdet i filen er intakte. Gi kommandoen:

mindre ~ /recovered_file

Du skal se at innholdet er faktisk det samme. Innholdet i ~ /recovered_file bør være identisk med den opprinnelige ~ /test_file. Hvis så, har du gjenopprettet en slettet fil fra Linux-systemet.

Recovery med skalpell

Det er faktisk en enklere måte å gjenopprette bestemte filtyper på en Linux-systemet ved hjelp av verktøyet Scalpel. Her er fremgangsmåten for å installere og utvinne hjelp av denne enkle verktøy

Trinn 1:. Installasjon. Jeg vil demonstrere på en Ubuntu 10.10 skrivebordet. For å installere skalpell, åpne opp et terminalvindu og gi kommandoen:

sudo apt-get install skalpell

Du må oppgi sudo passord og godta noen avhengigheter (om nødvendig) <. br>

Trinn 2: Rediger konfigurasjonsfilen. Gi kommandoen:

sudo nano /etc/scalpel/scalpel.conf

Nå tar en titt gjennom filen. Du vil finne linjer som tilsvarer filtyper (for eksempel PDF, DOC, .png, etc). Når du ser en filtype du ønsker å forsøke å gjenopprette bare uncomment den linjen (fjerne "#" karakter). Når du er ferdig med å redigere denne filen, lagre og lukke den

Trinn 3:. Gjenopprett filene dine. Det første du må gjøre er å lage en katalog som vil holde de gjenopprettede filene. La oss bruke målmappen ~ /GJEN. Med denne mappen på plass, gi kommandoen.

sudo skalpell /dev /sdX -o ~ /GJEN

(Hvor X er den eksakte partisjonen du ønsker å skanne)
< p> Trinn 4: Vent. Denne prosessen vil ta ganske lang tid. Ikke engang gidder å se den gå, eller du vil bli å se i en time eller så (avhengig av størrelsen på harddisken og hvor mange filtyper du prøver å gjenopprette.)

Steg 5: Sjekk mappen utvinning. Når kommandoen er ferdig, kontrollerer ~ /GJEN mappe (det skal være undermapper som er opprettet på en per-fil-type basis) for å se om skalpell har kommet seg filene dine. Hvis ja, gratulerer. Hvis ikke, kan du alltids prøve å kjøre kommandoen igjen (eller på en annen partisjon).

Final Thoughts

Ingen ønsker å måtte forholde seg til et skadet filsystem eller tapte filer. Og selv om Linux har mange verktøy for å hjelpe deg når dette skjer, ingenting er perfekt. Noen ganger et filsystem eller filer kan være for langt borte til å komme seg. Men med litt omsorg og intelligent bruk, bør du være i stand til å unngå å måtte bruke disse verktøyene alle sammen. Anmeldelser



Previous:
Next Page: