- 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.
- Ddrescue installeren
- Basisprincipes begrijpen
- Belangrijke overwegingen
- Ddrescue gebruiken
- Het beschadigde blok herstellen
- Het afbeeldingsbestand herstellen naar een nieuw blok
- Blok herstellen naar een ander blok
- Specifieke gegevens herstellen van de herstelde afbeeldingsbestanden
- Geavanceerde functies
- Hoe drescue werkt
- Conclusie
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 reddingVoor 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, FSTYPEDe -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 ] .logOpmerking: 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.logIn 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.logDe -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 / sdbVoordat 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.logLaten 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.logBekijk 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 HerstelMountMount vervolgens het afbeeldingsbestand met behulp van:
sudo monteren -O lusherstel.img ~ / HerstelMountDe 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 ~ / HerstelMountGeavanceerde 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.logOm 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.logDe -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.logBovendien 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.