Stellen Sie Daten unter Linux mit ddrescue wieder her

Stellen Sie Daten Unter Linux Mit Ddrescue Wieder Her



ddrescue ist ein Tool zum Wiederherstellen von Daten aus einer Datei oder einem Blockgerät wie einer Festplatte, SSDs, RAM-Disks, CDs, DVDs und USB-Speichergeräten. Es kopiert Daten von einem Blockgerät auf ein anderes, wobei die beschädigten Datenblöcke übrig bleiben und nur die guten verschoben werden. ddrescue ist ein leistungsstarkes Wiederherstellungstool, das vollständig automatisiert ist, da während des Wiederherstellungsvorgangs keine Eingriffe erforderlich sind. Darüber hinaus kann es jederzeit gestoppt und wieder aufgenommen werden ddrescue-Kartendatei . Weitere wichtige Funktionen von ddrescue sind unten aufgeführt:
  • Es überschreibt die wiederhergestellten Daten nicht, füllt aber die Lücken im Falle einer iterativen Wiederherstellung. Es kann jedoch gekürzt werden, wenn das Tool explizit dazu angewiesen wird.
  • Stellen Sie Daten aus mehreren Dateien oder Blöcken in einer einzelnen Datei wieder her.
  • Unterstützt mehrere Arten von Geräteschnittstellen wie SATA, ATA, SCSI, MFM-Laufwerke, Disketten und SD-Karten.

In diesem Leitfaden werde ich dieses unglaublich nützliche Datenwiederherstellungstool näher erläutern. Ich werde auch den Installationsprozess und die Verwendung zum Wiederherstellen eines Blockgeräts oder einer Blockpartition besprechen.

Notiz: Für die Anweisungen in diesem Handbuch verwende ich die Linux-Distribution (Ubuntu 22.04). Der Installationsprozess des Dienstprogramms ddrescue kann unterschiedlich sein, die Anweisungen sind jedoch für alle Linux-Distributionen gleich.







ddrescue installieren

Insbesondere um ddrescue unter Linux zu installieren Ubuntu und seine Aromen bzw Debian-basiert Distributionen, verwenden:



Sudo geeignet Installieren gddrescue

Um es zu installieren REHL , Fedora , Und CentOS , aktivieren Sie zunächst die WARM (Zusätzliche Pakete für Enterprise Linux).



Sudo Lecker installieren warme Freisetzung

Der obige Befehl gilt für neuere Versionen der jeweiligen Distribution.





Führen Sie dann den folgenden Befehl aus, um ddrescue zu installieren:

Sudo Lecker installieren ddrescue

Für Arch-basierte Linux-Distributionen wie z Arch-Linux Und Manjaro , verwenden Sie den unten angegebenen Befehl, um das Wiederherstellungsdienstprogramm ddrescue zu installieren.



Sudo Pacman -S ddrescue

Da ich Ubuntu 22.04 verwende, verwende ich zur Installation den APT-Paketmanager.

Grundlagen verstehen

Bevor Sie das ddrescue-Tool zum Wiederherstellen von Daten verwenden, würde ich Benutzern, die mit dem Wiederherstellungsprozess noch nicht vertraut sind, empfehlen, einige Namenskonventionen von Linux zu verstehen.

Linux erkennt Blöcke (Geräte) als Dateien und platziert sie im /dev Verzeichnis. Um die Dateien im Verzeichnis /dev aufzulisten, verwenden Sie die ls /dev Befehl.

Der Festplatte (Speicherblöcke) werden mit dargestellt sd gefolgt von Alphabeten; Bei mehreren Speichergeräten werden die Dateien als /dev/sd dargestellt A, /dev/sd B, und so weiter.

Wenn das Speichergerät verfügt Partitionen , dann werden sie durch eine Zahl mit dem jeweiligen Laufwerksdateinamen dargestellt, z. B. /dev/sda 1 , /dev/sda 2 , und so weiter.

Um alle Blöcke und andere mit dem System verbundene Geräte aufzulisten, verwenden Sie den Listenblock lsblk Befehl:

lsblk

Der Befehl ddrescue kann den gesamten Block (einschließlich MBR und Partitionen) oder auch eine Partition wiederherstellen. Wenn Sie hingegen nur bestimmte Dateien von einer bestimmten Partition wiederherstellen müssen, ist es besser, die Partition und nicht den gesamten Block wiederherzustellen.

Wichtige Überlegungen

Bevor Sie das Dienstprogramm ddrescue verwenden, sollten einige wichtige Punkte berücksichtigt werden:

  • Versuchen Sie nicht, einen gemounteten Block wiederherzustellen. Der Block sollte sich nicht einmal im schreibgeschützten Modus befinden.
  • Versuchen Sie nicht, einen Block mit E/A-Fehlern zu reparieren.
  • Das System kann die Eingabe- und Ausgabegerätenamen beim Neustart ändern. Stellen Sie sicher, dass die Gerätenamen korrekt sind, bevor Sie mit dem Kopiervorgang beginnen.
  • Wenn Sie einen separaten Block als Ausgabegerät verwenden, werden alle Daten auf dem Gerät überschrieben.

Verwendung von ddrescue

Nachdem Sie das Dienstprogramm ddrescue installiert und die Namenskonventionen verstanden haben, besteht der nächste Schritt darin, die fehlerhafte Festplatte zu identifizieren und sie mithilfe des Tools ddrescue wiederherzustellen.

Wiederherstellung des beschädigten Blocks

Das erste Beispiel umfasst den Prozess der Wiederherstellung des gesamten Blocks. Listen Sie zunächst die Blöcke mit auf lsblk Befehl:

lsblk NAME, GRÖSSE, FSTYPE

Der Flag wird verwendet, um anzugeben, welche Art von Informationen (Felder) der Befehl ausgeben soll. Ich habe das erwähnt NAME , GRÖSSE , Und FSTYPE oder Dateisystemtyp.

Jetzt können Sie den Zielblock, die Partition und den Speicherort zum Speichern der geretteten Image-Datei identifizieren.

Ein weiterer wichtiger Punkt ist, dass unter Linux der Blockname beim Booten dynamisch zugewiesen wird und sich die Namen der Blöcke nach dem Neustart ändern können. Seien Sie also vorsichtig, wenn Sie sich die Blocknamen notieren.

Verwenden Sie nun die folgende Syntax, um den Block als Bilddatei mit einer Protokolldatei im Stammverzeichnis zu retten.

Sudo ddrescue -D -rX / Entwickler / [ Block ] [ Weg / Name ] .img [ Protokolldateiname ] .Protokoll

Notiz: Ersetzen [Block] , [Pfad/Name] der Bilddatei und [logfile_name] mit den entsprechenden Wunschnamen.

In diesem Beispiel stelle ich das wieder her /dev/sda im Stammverzeichnis mit dem Bilddateinamen Recovery.img . Die Protokolldatei, auch Map-Datei genannt, ist unerlässlich, wenn Sie die Wiederherstellung jederzeit fortsetzen möchten.

Sudo ddrescue -D -r2 / Entwickler / sda2 Recovery.img Recovery.log

Im obigen Befehl werden zwei wichtige Flags verwendet.

D -indirekt Wird verwendet, um das Tool anzuweisen, direkt auf die Festplatte zuzugreifen und dabei den Kernel-Cache zu ignorieren
rX –retry-passes Wird verwendet, um dem Tool mitzuteilen, dass es den fehlerhaften Sektor X-mal wiederholen soll

Wenn Sie den obigen Befehl ausführen, werden im Dateibrowser zwei Dateien mit den Namen angezeigt Recovery.img Und Recovery.log .

Die Wiederherstellungszeit hängt von der Größe des Eingabeblocks und dem Schaden ab. Wenn Sie einen großen Block wiederherstellen, empfehle ich die Erstellung einer Protokolldatei, da der Vorgang mehrere Stunden oder sogar Tage dauern kann.

Die Ausgabe des obigen Befehls ist unten angegeben:

Im Ausgabebild ipos ist die Eingabeposition der Eingabedatei, von der aus mit dem Kopieren begonnen wird, und die Geschwüre ist die Ausgabeposition in der Ausgabedatei, an der die Daten geschrieben werden.

Der nicht ausprobiert ist die Größe des Blocks nicht ausstehend, um ausprobiert zu werden. Der gerettet gibt die Größe des erfolgreich wiederhergestellten Blocks an. Der pct gerettet gibt die erfolgreiche Datenwiederherstellung in Prozent an. Die Bedingungen, nicht beschnitten , nicht verschrottet , schlechter Sektor , Und schlechte Gegenden sind selbsterklärend. Allerdings ist die Lesefehler Der Begriff gibt die fehlgeschlagenen Leseversuche in Zahlen an.

Der Laufzeit Zeigt die Zeit an, die das Tool benötigt hat, um den Vorgang abzuschließen, während die verbleibende Zeit ist die verbleibende Zeit, um den Wiederherstellungsprozess abzuschließen. Die obige Ausgabe zeigt die verbleibende Zeit 0, da der Prozess abgeschlossen ist. Lesen Sie die Ausgabe im folgenden Bild eines unvollendeten Prozesses.

Mal sehen, was wir in der Protokolldatei erhalten. Um die generierte Protokolldatei zu öffnen, verwenden Sie die vim-Recovery.log Befehl.

Der aktueller Status ist +, was bedeutet, dass der Prozess abgeschlossen ist, während die aktuelle_pos ist die Position auf dem Block.

Eine Liste der aktuellen Status finden Sie in der folgenden Tabelle:

? Kopieren
* Trimmen
/ Verschrottung
Erneuter Versuch
F Füllen der angegebenen Blöcke
G Generieren der Protokolldatei
+ Der Vorgang ist abgeschlossen

Darunter enthält die Protokolldatei Statusanzeigen der zuvor geretteten Blöcke in Form der unten aufgeführten Zeichen:

? Der Block wurde nicht ausprobiert
* Der nicht getrimmte fehlgeschlagene Block
/ Der nicht verschrottete fehlgeschlagene Block
Der fehlerhafte Sektor-Block ist fehlgeschlagen
+ Fertiger Block

Wiederherstellen der Bilddatei in einem neuen Block

Sobald Sie mit dem Wiederherstellungsprozess fertig sind und über die Image-Datei verfügen. Möglicherweise möchten Sie nun, dass es von einem beschädigten Laufwerk auf das neue Laufwerk verschoben wird. Um die Bilddatei in einen neuen Block zu verschieben, verbinden Sie zunächst diesen Block mit dem System und identifizieren Sie dann den Blocknamen mithilfe von lsblk Befehl.

Nehmen wir an, dass es so ist /dev/sdb , verwenden Sie den folgenden Befehl, um das Bild in einen neuen Block zu kopieren.

Sudo ddrescue -F Recovery.img / Entwickler / sdb logfile.log

Der -F Flag wird verwendet, um den neuen Block zu überschreiben, wenn Daten vorhanden sind. Beachten Sie, dass der Name der Protokolldatei unterschiedlich sein muss, um sie von der zuvor gespeicherten Protokolldatei zu trennen.

Der obige Vorgang kann auch mit durchgeführt werden dd , ein weiterer leistungsstarker Befehl zum Kopieren der Dateien.

Sudo dd Wenn =recovery.img von = / Entwickler / SDB

Bedenken Sie vor einer Wiederherstellung, dass der neue Block groß genug sein muss, um den gesamten wiederhergestellten Block zu behalten; Wenn der Wiederherstellungsblock beispielsweise 5 GB groß ist, sollte der neue Block größer als 5 GB sein.

Wenn die wiederhergestellte Bilddatei viele Fehler aufweist, können diese mithilfe von repariert werden fsck Befehl unter Linux bis zu einem gewissen Grad. Unter Windows können Sie Folgendes nutzen CHKDSK oder SFC Befehle, dies zu tun. Die Wiederherstellung hängt jedoch von der Anzahl der Fehler ab, die die beschädigte Datei verursacht hat.

Jetzt sind der Wiederherstellungsprozess und die Wiederherstellung abgeschlossen. Ein weiterer wichtiger Punkt ist, dass Sie einen beschädigten Block direkt in einem anderen Block wiederherstellen können, anstatt eine Image-Datei zu erstellen und diese dann in den neuen Block zu kopieren. Nun, im folgenden Abschnitt beschreibe ich diesen Prozess im Detail.

Block in einen anderen Block wiederherstellen

Um einen Block direkt in einen neuen Block wiederherzustellen, verbinden Sie den Block zunächst mit dem System und verwenden Sie ihn erneut lsblk Befehl zur Identifizierung des Blocknamens. Falsche Blocknamen können den gesamten Prozess durcheinander bringen und es kann zu Datenverlust kommen.

Nachdem Sie den Quellblock und den Zielblock identifiziert haben, verwenden Sie den folgenden Befehl, um den Block wiederherzustellen:

Sudo ddrescue -D -F -r2 / Entwickler / [ Quelle ] / Entwickler / [ Ziel ] backup.log

Angenommen /dev/sdb ist der Zielblock, also zum Kopieren /dev/sda Verzeichnis zum neuen Block verwenden:

Sudo ddrescue -D -F -r2 / Entwickler / sda / Entwickler / sdb-backup.log

Lesen Sie noch einmal die kritischen Überlegungen, die in den vorherigen Abschnitten erwähnt wurden, bevor Sie diesen Prozess in Angriff nehmen.

Wiederherstellen bestimmter Daten aus den wiederhergestellten Bilddateien

In vielen Fällen besteht der Zweck der Datenwiederherstellung darin, bestimmte Dateien auf beschädigten Laufwerken zu finden. Um auf die spezifische Datei zuzugreifen, müssen Sie die Image-Datei mounten. Unter Linux kann die wiederhergestellte Image-Datei mithilfe von durchsucht werden montieren Befehl.

Erstellen Sie vor dem Mounten der Bilddatei einen Ordner oder ein Verzeichnis, in das Sie den Inhalt der Bilddatei extrahieren möchten.

mkdir RecoveryMount

Als nächstes mounten Sie die Image-Datei mit:

Sudo montieren Schleife Recovery.img ~ / RecoveryMount

Das Flag -o gibt die Optionen an, während die Loop-Option verwendet wird, um die Bilddatei als Blockgerät zu behandeln.

Sie haben nun Zugriff auf den Inhalt der Bilddatei, wie im folgenden Screenshot dargestellt.

Um den Block abzuhängen, verwenden Sie die umount Befehl.

Sudo umount ~ / RecoveryMount

Erweiterte Funktionen

Um die Wiederherstellung von einem bestimmten Punkt aus zu starten, verwenden Sie die -ich Flagge bzw –Eingabeposition . Es sollte standardmäßig in Bytes angegeben werden 0 Bytes. Dies ist wichtig, um den Kopiervorgang an einem bestimmten Punkt fortzusetzen. Wenn Sie beispielsweise den Kopiervorgang ab dem 10-GB-Punkt beginnen möchten, verwenden Sie den folgenden Befehl.

Sudo ddrescue -i10GiB / Entwickler / sda imagefile.img logfile.log

Um die maximale Größe des Eingabegeräts zu definieren, muss die -S Flagge wird verwendet. Der -S bedeutet Größe und kann auch als verwendet werden -Größe in Bytes. Wenn das Tool die Größe der Eingabedatei nicht erkennt, verwenden Sie diese Option, um sie anzugeben.

Sudo ddrescue -s10GiB / Entwickler / sda imagefile.img logfile.log

Der -fragen Diese Option kann sehr praktisch sein, da sie vor Beginn des Kopiervorgangs zur Bestätigung der Eingabe- und Ausgabeblöcke auffordert. Wie bereits erwähnt, weist das System den Blöcken dynamisch Namen zu, die sich beim Neustart ändern. In diesem Fall kann diese Option also nützlich sein.

Sudo ddrescue --fragen / Entwickler / sda imagefile.img logfile.log

Darüber hinaus finden Sie unten eine Liste einiger weiterer Optionen:

-R -umkehren Um die Kopierrichtung umzukehren
-Q -ganz Um alle Ausgabemeldungen zu unterdrücken
-In –ausführlich Zur Erläuterung alle Ausgabemeldungen
-P –vorbelegen Um Speicherplatz für die Ausgabedatei vorab zuzuweisen
-P –Datenvorschau Die Anzeigezeilen der zuletzt gelesenen Daten sind standardmäßig 3 Zeilen

So funktioniert ddrescue

Der ddrescue verwendet einen leistungsstarken Wiederherstellungsalgorithmus, der in vier Phasen unterteilt ist:

1. Kopieren

2. Trimmen

3. Schaben

4. Wiederholen

Die Ausführung des ddrescue-Algorithmus ist im folgenden Bild dargestellt.

Abschluss

Der ddrescue ist ein leistungsstarkes Wiederherstellungstool, mit dem Sie Daten von einem beschädigten oder ausgefallenen Laufwerk auf ein anderes Laufwerk wiederherstellen können, indem Sie die Daten kopieren. Mit Hilfe des Standardpaketmanagers kann es mühelos auf jeder Linux-Distribution installiert werden. Beachten Sie die in diesem Handbuch erwähnten wichtigen Überlegungen vor der Verwendung dieses Tools. Der Vorgang zum Kopieren von Daten ist einfach: Hängen Sie das Laufwerk aus und verwenden Sie den Befehl ddrescue mit dem Namen des Quelllaufwerks und des Ziellaufwerks. Vergessen Sie nicht, die Protokolldatei zu verwenden, da sie sehr nützlich ist, um den Wiederherstellungsprozess fortzusetzen.