Gendan data på Linux ved hjælp af ddrescue

Gendan Data Pa Linux Ved Hjaelp Af Ddrescue



Ddrescue er et værktøj, der bruges til at gendanne data fra en fil eller en blokenhed, såsom en harddisk, SSD'er, RAM-diske, cd'er, dvd'er og USB-lagerenheder. Den kopierer data fra en blokenhed til en anden, efterlader de beskadigede datablokke og flytter kun de gode. Ddrescue er et potent genoprettelsesværktøj, der er fuldstændig automatiseret, fordi det ikke kræver nogen interferens under gendannelsesoperationen. Desuden kan det stoppes og genoptages til enhver tid takket være ddrescue kortfil . Andre nøglefunktioner ved ddrescue er anført nedenfor:
  • Det overskriver ikke de gendannede data, men udfylder hullerne i tilfælde af iterativ gendannelse. Den kan dog afkortes, hvis værktøjet bliver instrueret i at gøre det eksplicit.
  • Gendan data til en enkelt fil fra flere filer eller blokke.
  • Understøtter flere typer enhedsgrænseflader såsom SATA, ATA, SCSI, MFM-drev, disketter og SD-kort.

I denne guide vil jeg udforske dette utroligt nyttige datagendannelsesværktøj. Jeg vil også diskutere dens installationsproces, og hvordan man bruger den til at gendanne en blokenhed eller partition.

Bemærk: Jeg bruger Linux-distributionen (Ubuntu 22.04) til instruktionerne i denne vejledning. Installationsprocessen for ddrescue-værktøjet kan variere, men instruktionerne vil være de samme på tværs af alle Linux-distributioner.







Installerer ddrescue

For at installere ddrescue på Linux, især Ubuntu og dens smag eller Debian-baseret distros, brug:



sudo passende installere gddrescue

For at installere det på REHL , Fedora , og CentOS , skal du først aktivere VARM (Ekstra pakker til Enterprise Linux).



sudo yum installer varm udgivelse

Ovenstående kommando er til nyere versioner af den respektive distribution.





Udfør derefter følgende kommando for at installere ddrescue:

sudo yum installer ddrescue

Til Arch-baserede Linux-distributioner som f.eks Arch-Linux og Manjaro , skal du bruge nedenstående kommando til at installere ddrescue-gendannelsesværktøjet.



sudo pacman -S ddrescue

Da jeg bruger Ubuntu 22.04, vil jeg bruge APT-pakkehåndteringen til at installere den.

Forstå det grundlæggende

Før du bruger ddrescue-værktøjet til at gendanne data, vil jeg anbefale brugere, der er nye til gendannelsesprocessen, at forstå nogle navnekonventioner i Linux.

Linux genkender blokke (enheder) som filer og placerer dem i /dev vejviser. For at vise filerne i /dev-mappen skal du bruge ls /dev kommando.

Det harddiske (lagerblokke) er repræsenteret med sd efterfulgt af alfabeter; i tilfælde af flere lagerenheder vil filerne blive repræsenteret som /dev/sd en, /dev/sd b, og så videre.

Hvis lagerenheden har skillevægge , så vil de blive repræsenteret af et nummer med det respektive drevfilnavn, såsom /dev/sda 1 , /dev/sda 2 , og så videre.

For at liste alle blokke og andre tilsluttede enheder med systemet skal du bruge listeblokken lsblk kommando:

lsblk

Kommandoen ddrescue kan gendanne hele blokken (indeholder MBR & partitioner) eller også en partition. På den anden side, hvis du kun skal gendanne specifikke filer fra en specifik partition, så er det bedre at gendanne partitionen i stedet for hele blokken.

Vigtige overvejelser

Før du bruger ddrescue-værktøjet, bør nogle meget vigtige punkter overvejes:

  • Forsøg ikke at gendanne en monteret blok, blokken bør ikke være ens i skrivebeskyttet tilstand.
  • Forsøg ikke at reparere en blok med I/O-fejl.
  • Systemet kan ændre input- og outputenhedsnavnene ved genstart. Sørg for, at enhedsnavnene er korrekte, før du starter kopieringsprocessen.
  • Hvis du bruger en separat blok som en outputenhed, vil alle data på enheden blive overskrevet.

Brug af ddrescue

Efter installation af ddrescue-værktøjet og forståelse af navnekonventionerne, er næste trin at identificere den fejlende disk og gendanne den ved hjælp af ddrescue-værktøjet.

Gendannelse af den beskadigede blok

Det første eksempel vil omfatte processen med at gendanne hele blokken. Først skal du liste blokkene ved hjælp af lsblk kommando:

lsblk -O NAVN, STØRRELSE, FSTYPE

Det -O flag bruges til at angive, hvilken type information (felter) kommandoen skal udsende. Jeg har nævnt NAVN , STØRRELSE , og FSTYPE eller filsystemtype.

Nu kan du identificere målblokken, partitionen og placeringen for at gemme den reddede billedfil.

En anden vigtig ting at bemærke er, at på Linux tildeles bloknavnet dynamisk ved opstart, og efter genstart kan navnene på blokkene ændre sig. Så vær forsigtig, mens du noterer bloknavnene.

Brug nu følgende syntaks til at redde blokken som en billedfil med en logfil i rodmappen.

sudo ddrescue -d -rX / dev / [ blok ] [ sti / navn ] .img [ logfil_navn ] .log

Bemærk: Erstatte [blok] , [sti/navn] af billedfilen, og [logfile_name] med de foretrukne navne i overensstemmelse hermed.

I dette eksempel genopretter jeg /dev/sda i rodmappen med billedfilnavnet recovery.img . Logfilen, også kendt som kortfilen, er vigtig, hvis du til enhver tid vil genoptage gendannelsen.

sudo ddrescue -d -r2 / dev / sda2 recovery.img recovery.log

To vigtige flag bruges i ovenstående kommando.

d -indirekte Bruges til at fortælle værktøjet at få direkte adgang til disken og ignorere kernecachen
rX -forsøg igen I bruges til at bede værktøjet om at prøve den dårlige sektor X antal gange

Når du udfører ovenstående kommando, vil du bemærke to filer, der vises i filbrowseren med navnene recovery.img og recovery.log .

Tidspunktet for genopretning afhænger af inputblokkens størrelse og skaden. Hvis du genopretter en stor blok, anbefaler jeg at have en logfil, fordi det kan tage flere timer eller endda dage at fuldføre processen.

Outputtet af ovenstående kommando er givet nedenfor:

I outputbilledet, ipos er input-positionen for inputfilen, hvorfra kopieringen er påbegyndt, og sår er outputpositionen på outputfilen, hvor dataene skrives.

Det ikke prøvet er størrelsen på blokken afventer ikke at blive prøvet. Det reddet angiver størrelsen af ​​den blok, der er blevet gendannet. Det pct reddet angiver vellykket gendannelse af data i procent. Vilkårene, ikke trimmet , ikke-ophugget , dårlig sektor , og dårlige områder er selvforklarende. Imidlertid læse fejl udtryk angiver de mislykkede læseforsøg i tal.

Det køretid viser den tid, det tog værktøjet at fuldføre processen, mens resterende tid er den resterende tid til at fuldføre gendannelsesprocessen. Ovenstående output viser den resterende tid 0, fordi processen er afsluttet, læs outputtet i det følgende billede af en uafsluttet proces.

Lad os se, hvad vi får i logfilen; for at åbne den genererede logfil skal du bruge vim recovery.log kommando.

Det nuværende status er + hvilket betyder, at processen er afsluttet, mens aktuelle_pos er positionen på blokken.

En liste over aktuelle statusser er angivet i følgende tabel:

? Kopiering
* Trimning
/ Ophugning
Prøver igen
F Udfyldning af de angivne blokke
G Generering af logfilen
+ Processen er afsluttet

Under dette har logfilen statusindikationer af de tidligere reddede blokke i form af tegn, der er angivet nedenfor:

? Blokken er ikke afprøvet
* Den ikke-trimmede mislykkede blok
/ Den ikke-skrotede mislykkede blok
Blokeringen af ​​den dårlige sektor mislykkedes
+ Færdig blok

Gendannelse af billedfilen til en ny blok

Når du er færdig med gendannelsesprocessen og har billedfilen. Du vil måske nu have det til at flytte til det nye drev fra et beskadiget drev. For at flytte billedfilen til en ny blok skal du først forbinde den blok til systemet og derefter identificere bloknavnet ved hjælp af lsblk kommando.

Lad os antage, at det er det /dev/sdb , brug følgende kommando til at kopiere billedet til en ny blok.

sudo ddrescue -f recovery.img / dev / sdb logfile.log

Det -f flag bruges til at overskrive den nye blok, hvis der er nogen data. Husk, at navnet på logfilen skal være anderledes for at holde den adskilt fra den tidligere gemte logfil.

Ovenstående handling kan også udføres ved hjælp af dd , en anden kraftfuld kommando, der bruges til at kopiere filerne.

sudo dd hvis =gendannelse.img af = / dev / sdb

Før du laver en gendannelse, skal du huske på, at den nye blok skal være stor nok til at beholde hele den gendannede blok; for eksempel, hvis gendannelsesblokken er 5 GB, skal den nye blok være større end 5 GB.

Hvis den gendannede billedfil gengiver mange af fejlene, kan de repareres ved hjælp af fsck kommando på Linux til en vis grad. Mens du er på Windows, kan du gøre brug af CHKDSK eller SFC kommandoer til at gøre dette. Gendannelsen afhænger dog af antallet af fejl, den beskadigede fil genererede.

Nu er gendannelsesprocessen og gendannelsen færdig. En anden vigtig ting at bemærke er, at du kan gendanne en beskadiget blok direkte på en anden blok i stedet for at oprette en billedfil og derefter kopiere den til den nye blok. Nå, i det efterfølgende afsnit dækker jeg denne proces i detaljer.

Gendannelse af blok til en anden blok

For at gendanne en blok direkte til en ny blok, skal du først tilslutte blokken til systemet og bruge den igen lsblk kommando til at identificere bloknavnet. Forkerte bloknavne kan ødelægge hele processen, og du kan miste data.

Når du har identificeret kildeblokken og destinationsblokken, skal du bruge følgende kommando til at gendanne blokken:

sudo ddrescue -d -f -r2 / dev / [ kilde ] / dev / [ bestemmelsessted ] backup.log

Lad os antage /dev/sdb er destinationsblokken, så for at kopiere /dev/sda mappe til den nye blok brug:

sudo ddrescue -d -f -r2 / dev / sda / dev / sdb backup.log

Se igen de kritiske overvejelser nævnt i de tidligere afsnit, før du forsøger denne proces.

Gendannelse af specifikke data fra de gendannede billedfiler

I mange tilfælde er formålet med datagendannelse at finde de specifikke filer fra beskadigede drev. For at få adgang til den specifikke fil skal du montere billedfilen. På Linux kan den gendannede billedfil udforskes ved at bruge montere kommando.

Før du monterer billedfilen, skal du lave en mappe eller et bibliotek, hvor du vil udpakke indholdet af billedfilen.

mkdir RecoveryMount

Monter derefter billedfilen ved hjælp af:

sudo montere -O loop recovery.img ~ / RecoveryMount

Flaget -o angiver mulighederne, mens loop-indstillingen bruges til at behandle billedfilen som en blokenhed.

Du har nu adgang til billedfilens indhold, som vist på det følgende skærmbillede.

For at afmontere blokken skal du bruge umount kommando.

sudo umount ~ / RecoveryMount

Avancerede egenskaber

For at starte gendannelsen fra et bestemt punkt skal du bruge -jeg flag eller -input-position . Det skal være i bytes, som standard er det 0 bytes. Dette er vigtigt for at genoptage kopiering fra et bestemt punkt. Hvis du f.eks. vil starte kopieringsprocessen fra punktet på 10 GB, skal du bruge følgende kommando.

sudo ddrescue -i10GiB / dev / sda imagefile.img logfile.log

For at definere den maksimale størrelse på inputenheden, -s flag vil blive brugt. Det -s betyder størrelse og kan også bruges som -størrelse i bytes. Hvis værktøjet ikke kan genkende størrelsen på inputfilen, skal du bruge denne indstilling til at angive den.

sudo ddrescue -s10GiB / dev / sda imagefile.img logfile.log

Det -Spørg mulighed kan være ret praktisk, da den beder om bekræftelse af input- og outputblokke, før kopieringsprocessen påbegyndes. Som diskuteret tidligere, tildeler systemet dynamisk navne til blokkene, og de ændres ved genstart. Så i så fald kan denne mulighed være nyttig.

sudo ddrescue --Spørg / dev / sda imagefile.img logfile.log

Desuden er en liste over nogle andre muligheder nævnt nedenfor:

-R -baglæns For at vende kopieringsretningen
-q -temmelig For at undertrykke alle output-meddelelser
-i -ordrig For at uddybe, alle output-meddelelser
-s – forhåndstildele For at forhåndstildele lagerplads til outputfilen
-P –data-preview Visningslinjer for den seneste datalæste standard er 3 linjer

Sådan fungerer ddrescue

Ddrescuen bruger en kraftfuld gendannelsesalgoritme, som er opdelt i fire faser:

1. Kopiering

2. Trimning

3. Skrabning

4. Prøver igen

Ddrescue-algoritmens udførelse er vist i det følgende billede.

Konklusion

Det ddrescue er et kraftfuldt gendannelsesværktøj, der bruges til at gendanne data fra et beskadiget eller defekt drev til et andet drev ved at kopiere dataene. Det kan nemt installeres på enhver Linux-distribution ved hjælp af standardpakkehåndteringen. Bemærk den vigtige overvejelse, før du bruger dette værktøj, som er nævnt i denne vejledning. Processen med at kopiere data er enkel, afmonter drevet og brug ddrescue-kommandoen med kildedrevnavnet og destinationsdrevnavnet. Glem ikke at bruge logfilen, da det bliver ret nyttigt at genoptage gendannelsesprocessen.