Herstel gegevens op Linux met ddrescue

Herstel Gegevens Op Linux Met Ddrescue



De ddrescue is een hulpmiddel dat wordt gebruikt om gegevens te herstellen van een bestand of een blokapparaat, zoals een harde schijf, SSD's, RAM-schijven, cd's, dvd's en USB-opslagapparaten. Het kopieert gegevens van het ene blokapparaat naar het andere, waarbij de beschadigde gegevensblokken achterblijven en alleen de goede worden verplaatst. De ddrescue is een krachtige hersteltool die volledig geautomatiseerd is omdat er geen interferentie nodig is tijdens de herstelbewerking. Bovendien kan het op elk moment worden gestopt en hervat dankzij de drescue-kaartbestand . Andere belangrijke kenmerken van ddrescue worden hieronder vermeld:
  • Het overschrijft de herstelde gegevens niet, maar vult de gaten op in geval van iteratief herstel. Het kan echter worden ingekort als het hulpprogramma de opdracht krijgt dit expliciet te doen.
  • Herstel gegevens naar één bestand uit meerdere bestanden of blokken.
  • Ondersteunt meerdere soorten apparaatinterfaces, zoals SATA, ATA, SCSI, MFM-schijven, diskettes en SD-kaarten.

In deze handleiding zal ik deze ongelooflijk nuttige tool voor gegevensherstel verkennen. Ik zal ook het installatieproces bespreken, en hoe je het kunt gebruiken om een ​​blokapparaat of partitie te herstellen.

Opmerking: Ik gebruik de Linux-distributie (Ubuntu 22.04) voor de instructies in deze handleiding. Het installatieproces van het hulpprogramma ddrescue kan verschillen, maar de instructies zijn voor alle Linux-distributies hetzelfde.







Ddrescue installeren

Om ddrescue vooral op Linux te installeren Ubuntu en zijn smaken of Debian-gebaseerd distributies, gebruik:



sudo geschikt installeren gddrescue

Om het op te installeren REHL , Fedora , En CentOS , schakel eerst de WARM (Extra pakketten voor Enterprise Linux).



sudo jammie installeren warme uitgave

De bovenstaande opdracht is voor nieuwere versies van de betreffende distributie.





Voer vervolgens de volgende opdracht uit om de ddrescue te installeren:

sudo jammie installeren redding

Voor Arch-gebaseerde Linux-distributies zoals Arch-Linux En Manjaro , gebruik dan de onderstaande opdracht om het herstelprogramma ddrescue te installeren.



sudo Pacman -S redding

Omdat ik Ubuntu 22.04 gebruik, zal ik de APT-pakketbeheerder gebruiken om het te installeren.

Basisprincipes begrijpen

Voordat ik de ddrescue-tool gebruik om gegevens te herstellen, zou ik gebruikers die nieuw zijn in het herstelproces aanraden enkele naamgevingsconventies van Linux te begrijpen.

Linux herkent blokken (apparaten) als bestanden en plaatst deze in de /ontwikkelaar map. Om de bestanden in de map /dev weer te geven, gebruikt u de ls /dev commando.

De harde schijven (opslagblokken) worden weergegeven met sd gevolgd door alfabetten; in het geval van meerdere opslagapparaten worden de bestanden weergegeven als /dev/sd A, /dev/sd B, enzovoort.

Als het opslagapparaat dat heeft partities , dan worden ze weergegeven door een getal met de respectievelijke bestandsnaam van het station, zoals /dev/sda 1 , /dev/sda 2 , enzovoort.

Gebruik het lijstblok om alle blokken en andere verbonden apparaten met het systeem weer te geven lsblk commando:

lsblk

De opdracht ddrescue kan het volledige blok (inclusief MBR en partities) of ook een partitie herstellen. Aan de andere kant, als u alleen specifieke bestanden van een specifieke partitie wilt herstellen, is het beter om de partitie te herstellen in plaats van het hele blok.

Belangrijke overwegingen

Voordat u het hulpprogramma ddrescue gebruikt, moeten enkele zeer belangrijke punten in overweging worden genomen:

  • Probeer een aangekoppeld blok niet te herstellen; het blok mag niet eens in de alleen-lezen-modus staan.
  • Probeer niet een blok met I/O-fouten te repareren.
  • Het systeem kan de namen van de invoer- en uitvoerapparaten wijzigen bij het opnieuw opstarten. Zorg ervoor dat de apparaatnamen correct zijn voordat u het kopieerproces start.
  • Als u een afzonderlijk blok als uitvoerapparaat gebruikt, worden alle gegevens op het apparaat overschreven.

Ddrescue gebruiken

Nadat u het hulpprogramma ddrescue hebt geïnstalleerd en de naamgevingsconventies hebt begrepen, is de volgende stap het identificeren van de defecte schijf en deze herstellen met behulp van het hulpprogramma ddrescue.

Het beschadigde blok herstellen

Het eerste voorbeeld omvat het proces van het herstellen van het hele blok. Maak eerst een lijst van de blokken met behulp van de lsblk commando:

lsblk -O NAAM, GROOTTE, FSTYPE

De -O flag wordt gebruikt om aan te geven welk type informatie (velden) de opdracht moet uitvoeren. Ik heb de genoemd NAAM , MAAT , En FSTYPE of bestandssysteemtype.

Nu kunt u het doelblok, de partitie en de locatie identificeren waar u het geredde afbeeldingsbestand wilt opslaan.

Een ander belangrijk ding om op te merken is dat op Linux de bloknaam dynamisch wordt toegewezen tijdens het opstarten en dat na het opnieuw opstarten de namen van de blokken kunnen veranderen. Wees dus voorzichtig bij het noteren van de bloknamen.

Gebruik nu de volgende syntaxis om het blok te redden als een afbeeldingsbestand met een logbestand in de hoofdmap.

sudo redding -D -rX / ontwikkelaar / [ blok ] [ pad / naam ] .img [ logbestand_naam ] .log

Opmerking: Vervangen [blok] , [pad/naam] van het afbeeldingsbestand, en [logbestand_naam] met de bijbehorende voorkeursnamen.

In dit voorbeeld herstel ik de /dev/sda in de hoofdmap met de naam van het afbeeldingsbestand herstel.img . Het logbestand, ook wel het kaartbestand genoemd, is essentieel als u het herstel op elk gewenst moment wilt hervatten.

sudo redding -D -r2 / ontwikkelaar / sda2 herstel.img herstel.log

In de bovenstaande opdracht worden twee belangrijke vlaggen gebruikt.

D –indirect Wordt gebruikt om het hulpprogramma te vertellen rechtstreeks toegang te krijgen tot de schijf, waarbij de kernelcache wordt genegeerd
rX –herhalingspassen Wordt gebruikt om de tool te vertellen de slechte sector X aantal keren opnieuw te proberen

Wanneer u de bovenstaande opdracht uitvoert, zult u twee bestanden met de namen in de bestandsbrowser zien verschijnen herstel.img En herstel.log .

De hersteltijd is afhankelijk van de grootte van het invoerblok en de schade. Als u een groot blok herstelt, raad ik u aan een logbestand te hebben, omdat het enkele uren of zelfs dagen kan duren om het proces te voltooien.

De uitvoer van het bovenstaande commando wordt hieronder gegeven:

In de uitvoerafbeelding wordt ipo's is de invoerpositie van het invoerbestand waar het kopiëren is begonnen en de zweren is de uitvoerpositie in het uitvoerbestand waar de gegevens worden geschreven.

De niet geprobeerd is de grootte van het blok niet in afwachting van berechting. De gered geeft de grootte aan van het succesvol herstelde blok. De pct gered geeft het succesvolle herstel van gegevens aan in procenten. De voorwaarden, niet-getrimd , niet gesloopt , slechte sector , En slechte gebieden spreken voor zich. echter, de leesfouten term geeft de mislukte leespogingen in cijfers aan.

De looptijd toont de tijd die de tool nodig had om het proces te voltooien, terwijl de overgebleven tijd is de resterende tijd om het herstelproces te voltooien. De bovenstaande uitvoer toont de resterende tijd 0 omdat het proces is voltooid. Lees de uitvoer in de volgende afbeelding van een onvoltooid proces.

Laten we eens kijken wat we in het logbestand krijgen; Om het gegenereerde logbestand te openen, gebruikt u de vim herstel.log commando.

De huidige status is + wat betekent dat het proces is voltooid, terwijl de huidige_pos is de positie op het blok.

Een lijst met huidige statussen vindt u in de volgende tabel:

? Kopiëren
* Trimmen
/ Sloop
Opnieuw proberen
F Het vullen van de opgegeven blokken
G Het genereren van het logbestand
+ Het proces is voltooid

Daaronder bevat het logbestand statusindicaties van de eerder geredde blokken in de vorm van de onderstaande tekens:

? Het blok is niet geprobeerd
* Het niet-bijgesneden mislukte blok
/ Het niet-gesloopte mislukte blok
Het mislukte blok in de slechte sector
+ Afgewerkt blok

Het afbeeldingsbestand herstellen naar een nieuw blok

Zodra u klaar bent met het herstelproces en het afbeeldingsbestand hebt. Mogelijk wilt u nu dat het vanaf een beschadigde schijf naar de nieuwe schijf wordt verplaatst. Om het afbeeldingsbestand naar een nieuw blok te verplaatsen, verbindt u eerst dat blok met het systeem en identificeert u vervolgens de bloknaam met behulp van de lsblk commando.

Laten we aannemen dat dit zo is /dev/sdb , gebruik dan de volgende opdracht om de afbeelding naar een nieuw blok te kopiëren.

sudo redding -F herstel.img / ontwikkelaar / sdb logbestand.log

De -F flag wordt gebruikt om het nieuwe blok te overschrijven als er gegevens zijn. Houd er rekening mee dat de naam van het logbestand anders moet zijn om het gescheiden te houden van het eerder opgeslagen logbestand.

De bovenstaande bewerking kan ook worden uitgevoerd met behulp van de dd , een ander krachtig commando dat wordt gebruikt om de bestanden te kopiëren.

sudo dd als =herstel.img van = / ontwikkelaar / sdb

Voordat u een herstel uitvoert, moet u er rekening mee houden dat het nieuwe blok groot genoeg moet zijn om het gehele herstelde blok te behouden; Als het herstelblok bijvoorbeeld 5 GB bedraagt, moet het nieuwe blok groter zijn dan 5 GB.

Als het herstelde afbeeldingsbestand veel van de fouten weergeeft, kunnen deze worden gerepareerd met behulp van de fsck commando op Linux tot op zekere hoogte. Als u Windows gebruikt, kunt u gebruik maken van de CHKDSK of SFC commando's om dit te doen. Het herstel hangt echter af van het aantal fouten dat het beschadigde bestand heeft gegenereerd.

Nu zijn het herstelproces en de restauratie voltooid. Een ander belangrijk ding om op te merken is dat je een beschadigd blok rechtstreeks op een ander blok kunt herstellen, in plaats van een afbeeldingsbestand te maken en dit vervolgens naar het nieuwe blok te kopiëren. Welnu, in het volgende gedeelte behandel ik dit proces in detail.

Blok herstellen naar een ander blok

Om een ​​blok direct naar een nieuw blok te herstellen, sluit u het blok eerst aan op het systeem en gebruikt u het opnieuw lsblk commando om de bloknaam te identificeren. Verkeerde bloknamen kunnen het hele proces in de war sturen en er kunnen gegevens verloren gaan.

Nadat u het bronblok en het bestemmingsblok hebt geïdentificeerd, gebruikt u de volgende opdracht om het blok te herstellen:

sudo redding -D -F -r2 / ontwikkelaar / [ bron ] / ontwikkelaar / [ bestemming ] backup.log

Laten we aannemen /dev/sdb is het bestemmingsblok, dus om het /dev/sda directory naar het nieuwe blok gebruik:

sudo redding -D -F -r2 / ontwikkelaar / sda / ontwikkelaar / sdb backup.log

Bekijk nogmaals de kritische overwegingen die in de eerdere paragrafen zijn genoemd voordat u dit proces probeert.

Specifieke gegevens herstellen van de herstelde afbeeldingsbestanden

In veel gevallen is het doel van gegevensherstel het vinden van de specifieke bestanden van beschadigde schijven. Om toegang te krijgen tot het specifieke bestand moet u het afbeeldingsbestand mounten. Op Linux kan het herstelde afbeeldingsbestand worden verkend met behulp van de monteren commando.

Voordat u het afbeeldingsbestand aankoppelt, maakt u een map of directory waarin u de inhoud van het afbeeldingsbestand wilt extraheren.

mkdir HerstelMount

Mount vervolgens het afbeeldingsbestand met behulp van:

sudo monteren -O lusherstel.img ~ / HerstelMount

De vlag -o geeft de opties aan, terwijl de lusoptie wordt gebruikt om het afbeeldingsbestand als een blokapparaat te behandelen.

U hebt nu toegang tot de inhoud van het afbeeldingsbestand, zoals weergegeven in de volgende schermafbeelding.

Om het blok te ontkoppelen, gebruik je de bedrag commando.

sudo bedrag ~ / HerstelMount

Geavanceerde functies

Om het herstel vanaf een specifiek punt te starten, gebruikt u de -i vlag of –invoerpositie . Het zou in bytes moeten zijn, standaard is dit het geval 0 bytes. Dit is belangrijk om het kopiëren vanaf een specifiek punt te hervatten. Als u bijvoorbeeld het kopieerproces wilt starten vanaf het punt van 10 GB, gebruikt u de volgende opdracht.

sudo redding -i10GiB / ontwikkelaar / sda afbeeldingsbestand.img logbestand.log

Om de maximale grootte van het invoerapparaat te definiëren, gebruikt u de -S vlag zal worden gebruikt. De -S betekent grootte en kan ook worden gebruikt als -maat in bytes. Als het hulpprogramma de grootte van het invoerbestand niet herkent, gebruikt u deze optie om dit op te geven.

sudo redding -s10GiB / ontwikkelaar / sda afbeeldingsbestand.img logbestand.log

De -vragen Deze optie kan erg handig zijn, omdat deze vraagt ​​om bevestiging van invoer- en uitvoerblokken voordat het kopieerproces wordt gestart. Zoals eerder besproken, wijst het systeem dynamisch namen toe aan de blokken, en deze veranderen bij het opnieuw opstarten. In dat geval kan deze optie dus nuttig zijn.

sudo redding --vragen / ontwikkelaar / sda afbeeldingsbestand.img logbestand.log

Bovendien vindt u hieronder een lijst met enkele andere opties:

-R -achteruit Om de kopieerrichting om te keren
-Q -nogal Om alle uitgangsberichten te onderdrukken
-in –uitgebreid Om uit te werken, alle uitvoerberichten
-P –vooraf toewijzen Om opslagruimte voor het uitvoerbestand vooraf toe te wijzen
-P –gegevensvoorbeeld Weergaveregels van de laatste gelezen gegevens zijn standaard 3 regels

Hoe drescue werkt

De ddrescue maakt gebruik van een krachtig herstelalgoritme dat is onderverdeeld in vier fasen:

1. Kopiëren

2. Trimmen

3. Schrapen

4. Opnieuw proberen

De uitvoering van het ddrescue-algoritme wordt weergegeven in de volgende afbeelding.

Conclusie

De redding is een krachtige hersteltool die wordt gebruikt om gegevens van een beschadigde of defecte schijf naar een andere schijf te herstellen door de gegevens te kopiëren. Het kan moeiteloos op elke Linux-distributie worden geïnstalleerd met behulp van de standaard pakketbeheerder. Houd rekening met de belangrijke overweging voordat u deze tool gebruikt die in deze handleiding wordt vermeld. Het proces van het kopiëren van gegevens is eenvoudig: ontkoppel de schijf en gebruik de opdracht ddrescue met de naam van de bronschijf en de naam van de bestemmingsschijf. Vergeet niet het logbestand te gebruiken, aangezien het erg handig kan zijn om het herstelproces te hervatten.