- 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.
- ddrescue installieren
- Grundlagen verstehen
- Wichtige Überlegungen
- Verwendung von ddrescue
- Wiederherstellung des beschädigten Blocks
- Wiederherstellen der Bilddatei in einem neuen Block
- Block in einen anderen Block wiederherstellen
- Wiederherstellen bestimmter Daten aus den wiederhergestellten Bilddateien
- Erweiterte Funktionen
- So funktioniert ddrescue
- Abschluss
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 ddrescueFü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, FSTYPEDer -Ö 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 ] .ProtokollNotiz: 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.logIm 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.logDer -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 / SDBBedenken 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.logAngenommen /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.logLesen 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 RecoveryMountAls nächstes mounten Sie die Image-Datei mit:
Sudo montieren -Ö Schleife Recovery.img ~ / RecoveryMountDas 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 ~ / RecoveryMountErweiterte 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.logUm 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.logDer -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.logDarü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.