Heim > System-Tutorial > LINUX > Hauptteil

So stellen Sie gelöschte Dateien im Linux-System wieder her

王林
Freigeben: 2024-01-14 18:48:05
nach vorne
546 Leute haben es durchsucht
Einführung Wenn ein Benutzer versehentlich eine noch benötigte Datei löscht, gibt es in den meisten Fällen keine einfache Möglichkeit, die Datei wiederherzustellen oder neu zu erstellen. Glücklicherweise gibt es Möglichkeiten, Dateien wiederherzustellen. Wenn ein Benutzer eine Datei löscht, verschwindet die Datei nicht, sondern wird nur für einen bestimmten Zeitraum ausgeblendet.

So funktioniert es. In einem Dateisystem gibt es eine sogenannte Dateizuordnungstabelle, die den Speicherort von Dateien in Speichereinheiten (wie Festplatten, MicroSD-Karten, Flash-Laufwerken usw.) verfolgt. Wenn eine Datei gelöscht wird, führt das Dateisystem eine von zwei Aufgaben in der Dateizuordnungstabelle aus: Markieren Sie den Eintrag der Datei in der Dateizuordnungstabelle als „freien Speicherplatz“ oder löschen Sie den Eintrag der Datei in der Dateizuordnungstabelle und den entsprechenden Speicherplatz wird als freier Speicherplatz markiert. Wenn nun eine neue Datei an einem Speicherort abgelegt werden muss, legt das Betriebssystem die Datei an einem als leer markierten Ort ab. Nachdem die neue Datei in diesen leeren Bereich geschrieben wurde, verschwindet die gelöschte Datei vollständig. Wenn eine gelöschte Datei wiederhergestellt werden muss, darf der Benutzer keine Datei erneut bearbeiten, da die Datei niemals wiederhergestellt werden kann, wenn der der Datei entsprechende „leere Speicherplatz“ belegt ist.

怎样在 Linux 系统中恢复被删除文件

Wie funktioniert Wiederherstellungssoftware?

Die meisten Dateisysteme markieren den Speicherplatz einfach als leer (beim Löschen einer Datei). In diesen Dateisystemen prüft die Wiederherstellungssoftware die Dateizuordnungstabelle und kopiert dann die gelöschten Dateien auf eine andere Speichereinheit. Wenn die Datei auf andere gelöschte Speichereinheiten kopiert wird, die wiederhergestellt werden müssen, kann es sein, dass der Benutzer die gewünschte gelöschte Datei verliert.

Dateisysteme löschen selten Einträge in der Dateizuordnungstabelle. Wenn das Dateisystem dies tut, stellt die Wiederherstellungssoftware die Dateien wieder her. Die Wiederherstellungssoftware scannt die Dateiköpfe in der Speichereinheit. Alle Dateien haben eine spezielle Codierungszeichenfolge am Anfang der Datei, die auch als magische Zahl bezeichnet wird. Die magische Zahl für eine kompilierte JAVA-Klassendatei ist beispielsweise „CAFEBABE“ im Hexadezimalformat. Wenn Sie also Dateien dieses Typs wiederherstellen möchten, sucht die Wiederherstellungssoftware nach „CAFEBABE“ und kopiert die Dateien auf eine andere Speichereinheit. Einige Wiederherstellungssoftware kann nach einem bestimmten Dateityp suchen. Wenn der Benutzer eine PDF-Datei wiederherstellen möchte, sucht die Wiederherstellungssoftware nach der magischen Zahl „25504446“ im Hexadezimalformat, die in der ASCII-Kodierung zufällig „%PDF“ ist. Die Wiederherstellungssoftware sucht nach allen magischen Zahlen und dann kann der Benutzer auswählen, welche gelöschte Datei wiederhergestellt werden soll.

Wenn ein Teil einer Datei überschrieben wird, wird die gesamte Datei beschädigt. Oft kann die Datei wiederhergestellt werden, ihr Inhalt ist jedoch möglicherweise nicht mehr von Nutzen. Beispielsweise wäre die Wiederherstellung einer beschädigten JPEG-Datei sinnlos, da der Bildbetrachter kein Bild aus der beschädigten Datei erstellen kann. Daher ist die Datei nutzlos, selbst wenn der Benutzer Eigentümer der Datei ist.

Bevor wir fortfahren, werden einige Informationen unten hilfreich sein, um die Wiederherstellungssoftware dabei zu unterstützen, die richtige Speichereinheit zu finden. Alle Geräte werden im Verzeichnis /dev/ gemountet. Der Name, den das Betriebssystem jedem Gerät gibt (nicht der Name, den der Administrator jeder Partition oder jedem Gerät gibt), folgt bestimmten Benennungsregeln.

Der Name der zweiten Partition der ersten SATA-Festplatte lautet sda2. Der erste Buchstabe des Namens weist auf den Speichertyp hin, in diesem Fall SATA, aber der Buchstabe „s“ könnte sich auch auf SCSI, FireWire oder USB beziehen. Der zweite Buchstabe „d“ bezieht sich auf die Festplatte. Der dritte Buchstabe bezieht sich auf die Gerätenummer, d. h. der Buchstabe „a“ bezieht sich auf das erste SATA und „b“ auf das zweite. Die letzte Zahl stellt die Partition dar. Ein Gerätename ohne Partitionsnummer repräsentiert alle Partitionen für dieses Setup. Für das obige Beispiel lautet der entsprechende Name sda ​​. Der erste Buchstabe des Namens kann auch „h“ sein, was einer PATA-Festplatte (IDE) entspricht.

Im Folgenden finden Sie einige Beispiele für Benennungsregeln. Angenommen, ein Benutzer verfügt über eine SATA-Festplatte (SDA) und dieses Gerät verfügt über 4 Partitionen – sda1, sda2, sda3 und sda4. Der Benutzer löscht die dritte Partition, aber der Name der vierten Partition, sda4, bleibt unverändert, bis die vierte Partition formatiert wird. Anschließend steckte der Benutzer eine USB-Speicherkarte (sdb) mit einer Partition – sdb1-, fügte eine IDE-Festplatte mit einer Partition – hda1- und dann eine SCSI-Festplatte – sdc1 hinzu. Anschließend entfernte der Benutzer die USB-Speicherkarte (SDB). Jetzt heißt die SCSI-Festplatte immer noch sdc, aber wenn die SCSI-Festplatte entfernt und dann eingesetzt wird, ändert sich ihr Name in sdb. Auch wenn andere Speichergeräte vorhanden sind, hat das IDE-Laufwerk dennoch ein „a“ im Namen, da es das erste IDE-Laufwerk ist und IDE-Gerätenamen getrennt von SCSI-, SATA-, FireWire- und USB-Geräten gezählt werden.

Wiederherstellen mit TestDisk:

Jede Wiederherstellungssoftware verfügt über ihre eigenen unterschiedlichen Funktionen, Features und unterstützten Dateisysteme. Hier sind einige Richtlinien für die Verwendung von TestDisk zum Wiederherstellen von Dateien auf verschiedenen Dateisystemen.

FAT16, FAT32, exFAT (FAT64), NTFS und ext2/3/4:

TestDisk ist eine kostenlose Open-Source-Software, die auf den Betriebssystemen Linux, *BSD, SunOS, Mac OS X, DOS und Windows läuft. TestDisk kann auch durch Eingabe von sudo apt-get install testdisk installiert werden. TestDisk verfügt über viele Funktionen, aber dieser Artikel konzentriert sich nur auf die Wiederherstellung von Dateien.

Öffnen Sie TestDisk vom Terminal aus mit Root-Rechten, indem Sie den Befehl sudo testdisk eingeben.

Jetzt wird die TestDisk-Befehlszeilenanwendung ausgeführt. Die Anzeige des Terminals ändert sich. TestDisk fragt den Benutzer, ob Protokolle aufbewahrt werden können. Dies liegt ganz beim Benutzer. Wenn ein Benutzer Dateien aus dem Systemspeicher wiederherstellt, besteht keine Notwendigkeit, Protokolle zu führen. Die verfügbaren Optionen sind „Generieren“, „Anhängen“ und „Kein Protokoll“. Wenn ein Benutzer Protokolle führen möchte, werden die Protokolle im Home-Verzeichnis des Benutzers gespeichert.

怎样在 Linux 系统中恢复被删除文件

Im nächsten Bildschirm werden die Speichergeräte im /dev/*-Format aufgelistet. Für mein System ist die Speichereinheit des Systems /dev/sda, was bedeutet, dass meine Speichereinheit eine SATA-Festplatte (sd) und die erste Festplatte (a) ist. Die Kapazität jeder Speichereinheit wird in Gigabyte angezeigt. Wählen Sie mit den Auf- und Ab-Tasten ein Speichergerät aus und klicken Sie zur Eingabe.

怎样在 Linux 系统中恢复被删除文件

Der nächste Bildschirm zeigt eine Liste von Partitionstabellen (auch Partitionszuordnungstabellen genannt). So wie Dateien Dateikonfigurationstabellen haben, haben Partitionen Partitionstabellen. Eine Partition ist eine Segmentierung auf einem Speichergerät. Beispielsweise gibt es in fast allen Linux-Systemen mindestens zwei Partitionstypen – EXT3/4 und Swap. Jede Partitionstabelle wird im Folgenden kurz beschrieben. TestDisk unterstützt nicht alle Arten von partitionierten Tabellen, daher ist dies keine vollständige Liste.

怎样在 Linux 系统中恢复被删除文件

  • Intel – Diese Art von Partitionstabelle ist in Windows-Systemen und vielen Linux-Systemen sehr verbreitet. Sie wird auch oft als MBR-Partitionstabelle bezeichnet.
  • EFI GPT – Diese Art von Partitionstabelle wird häufig in Linux-Systemen verwendet. Für Linux-Systeme wird diese Partitionstabelle am meisten empfohlen, da die Konzepte logischer Partitionen oder erweiterter Partitionen nicht für GPT-Partitionstabellen (GUID Partition Table) gelten. Dies bedeutet, dass ein Linux-Benutzer von mehreren Arten von Linux-Systemen mehrfach booten kann, wenn sich in jeder Partition ein Linux-System befindet. Natürlich bietet die Verwendung einer GPT-Partitionstabelle noch weitere Vorteile, diese gehen jedoch über den Rahmen dieses Artikels hinaus.
  • Humax - Die Humax-Partitionskarte ist für Geräte der koreanischen Firma Humax geeignet.
  • Mac – Apple Partition Map (APM) für Apple-Geräte.
  • Keine – Einige Geräte verfügen nicht über eine Partitionstabelle. Beispielsweise verwenden viele Subor-Spielekonsolen keine Partitionszuordnung. Wenn ein Benutzer versucht, Dateien von einem solchen Gerät mit anderen Partitionstabellentypen wiederherzustellen, ist der Benutzer verwirrt darüber, warum TestDisk keine Dateisysteme oder Dateien finden kann.
  • Sun – Sun-Partitionstabelle für Sun-Systeme.
  • Xbox -Xbox ist für Speichergeräte gedacht, die die Xbox-Partitionszuordnung verwenden.

Wenn der Benutzer „Xbox“ auswählt, obwohl sein System die GPT-Partitionstabelle verwendet, kann TestDisk keine Partitionen oder Dateisysteme finden. Wenn TestDisk basierend auf der Auswahl des Benutzers ausgeführt würde, könnte es zu einer falschen Schätzung kommen. (Das Bild unten zeigt die Ausgabe, wenn der Partitionstabellentyp falsch ist)

怎样在 Linux 系统中恢复被删除文件

Wenn der Benutzer die richtige Option für sein Gerät ausgewählt hat, wählen Sie auf dem nächsten Bildschirm die Option „Erweitert“.

怎样在 Linux 系统中恢复被删除文件

Jetzt sieht der Benutzer eine Liste aller Dateisysteme oder Partitionen auf dem Speichergerät des Benutzers. Wenn der Benutzer die falsche Partitionszuordnung auswählt, weiß er in diesem Schritt, dass er die falsche Wahl getroffen hat. Wenn keine Fehler vorliegen, markieren Sie die Partition mit den gelöschten Dateien, indem Sie den Textcursor bewegen. Markieren Sie mit der linken und rechten Pfeiltaste die Liste unten im Terminal. Drücken Sie dann zur Bestätigung die Eingabetaste.

怎样在 Linux 系统中恢复被删除文件

Ein neuer Bildschirm mit einer Liste von Dateien und Verzeichnissen wird angezeigt. Diese weißen Dateinamen sind Dateien, die nicht gelöscht wurden, während rote Dateinamen diejenigen Dateien sind, die gelöscht wurden. Die Spalte ganz rechts ist der Name der Datei, die nächste Spalte von rechts nach links ist das Erstellungsdatum der Datei und die linke Spalte ist die Größe der Datei (in Bytes/Bits), mit „-“ ganz links , " Die Spalten „d“, „r“, „w“ und „x“ repräsentieren die Berechtigungen der Datei. „d“ gibt an, dass es sich bei der Datei um ein Verzeichnis handelt und andere Berechtigungsbedingungen für diesen Artikel kaum relevant sind. Das durch „.“ dargestellte Element oben in der Liste stellt das aktuelle Verzeichnis dar, und das durch „..“ dargestellte Element in der zweiten Zeile stellt das übergeordnete Verzeichnis des aktuellen Verzeichnisses dar, sodass der Benutzer das Verzeichnis durch Auswahl erreichen kann Zeile, in der sich das Verzeichnis befindet.

Zum Beispiel möchte ich in das Verzeichnis „Xaiml_Dataset“ gehen, das im Wesentlichen aus gelöschten Dateien besteht. Durch Drücken der „c“-Taste auf der Tastatur stelle ich die Datei „computers.xaiml“ wieder her und werde dann aufgefordert, ein Zielverzeichnis auszuwählen, natürlich sollte ich die Datei in einer anderen Partition ablegen. Wenn ich jetzt in meinem Home-Verzeichnis bin, drücke ich die Taste „c“. (Bei der Auswahl des Zielverzeichnisses) Es spielt keine Rolle, welches Verzeichnis markiert ist. Das aktuelle Verzeichnis ist das Zielverzeichnis und oben auf dem Bildschirm wird die Meldung „Kopieren abgeschlossen“ angezeigt. In meinem Home-Verzeichnis gibt es ein Verzeichnis mit dem Namen „Xaiml_Dataset“, das eine Xaiml-Datei enthält. Wenn ich bei weiteren gelöschten Dateien „c“ drücke, werden die Dateien in neuen Ordnern abgelegt, ohne dass ich nach dem Zielverzeichnis gefragt werde.

Wenn diese Schritte abgeschlossen sind, drücken Sie wiederholt die Taste „q“, bis Sie das normale Terminal-Erscheinungsbild sehen. Auf das Verzeichnis „Xaiml_Dataset“ kann nur der Root-Benutzer zugreifen. Um dieses Problem zu beheben, verwenden Sie Root-Rechte, um die Berechtigungen dieses Verzeichnisses und seiner Unterverzeichnisse zu ändern. Danach werden die Dateien wiederhergestellt und der Benutzer kann darauf zugreifen.

Special ReiserFS:

Um eine Datei aus dem ReiserFS-Dateisystem wiederherzustellen, müssen Sie zunächst eine Sicherungskopie aller Dateien in der Partition erstellen. Denn diese Methode kann beim Auftreten bestimmter Fehler zu Dateiverlusten führen. Führen Sie dann den folgenden Befehl aus, wobei sich DEVICE auf die Geräte bezieht, die in der Form sda2 benannt sind. Einige Dateien werden im Lost+Found-Verzeichnis abgelegt, während andere an dem Ort gespeichert werden, an dem sie ursprünglich gelöscht wurden.

reiserfsck --rebuild-tree --scan-whole-partition /dev/DEVICE
Nach dem Login kopieren
Gelöschte Dateien wiederherstellen, die von einem Programm geöffnet wurden:

Angenommen, ein Benutzer löscht versehentlich eine Datei und die Datei wird von einem Programm geöffnet. Obwohl die Datei von der Festplatte gelöscht wurde, verwendet das Programm eine Kopie der Datei im RAM. Glücklicherweise haben wir zwei einfache Lösungen, um die Datei wiederherzustellen.

Wenn diese Software über eine Speicherfunktion verfügt, beispielsweise einen Texteditor, kann der Benutzer die Datei erneut speichern, sodass der Texteditor die Datei auf die Festplatte schreiben kann.

Angenommen, es gibt eine MP3-Datei im Musik-Player, aber der Musik-Player kann die MP3-Datei nicht speichern. In diesem Fall dauert die Wiederherstellung der Datei länger als zuvor. Leider kann nicht garantiert werden, dass dieser Ansatz auf allen Systemen und Anwendungen funktioniert. Geben Sie zunächst den folgenden Befehl ein.

lsof -c smplayer | grep mp3
Nach dem Login kopieren

Der obige Befehl listet alle vom smplayer verwendeten Dateien auf. Diese Liste wird vom grep-Befehl über die Pipe durchsucht. Die Eingabe des Befehls ähnelt der folgenden:

smplayer  10037 collier  mp3    169r      8,1  676376  1704294 /usr/bin/smplayer
Nach dem Login kopieren

Geben Sie nun den folgenden Befehl ein, um Dateien direkt aus dem RAM wiederherzustellen (/proc/ ist in Linux-Systemen dem RAM zugeordnet) und kopieren Sie die Datei in den ausgewählten Ordner. Unter diesen bezieht sich cp auf den Kopierbefehl, die Zahl 10037 in der Ausgabe stammt von der Anzahl der Prozesse, die Zahl 169 in der Ausgabe bezieht sich auf den Dateideskriptor, „~/Music/“ ist das Zielverzeichnis und das letzte „ „music.mp3“ ist das gewünschte Verzeichnis des Benutzers. Der Name der wiederhergestellten Datei.

cp /proc/10037/fd/169 ~/Music/music.mp3
Nach dem Login kopieren
Echte Löschung:

Um sicherzustellen, dass eine Datei nicht wiederhergestellt werden kann, gibt es einen Befehl zum „Löschen“ der Festplatte. Durch das Löschen einer Festplatte werden tatsächlich bedeutungslose Daten auf die Festplatte geschrieben. Viele Löschprogramme schreiben beispielsweise Nullen, zufällige Buchstaben oder zufällige Daten auf die Festplatte. Es wird kein Platz belegt oder verloren, der Radierer überschreibt einfach die leeren Bits. Wenn die Speichereinheit mit Dateien gefüllt ist und kein freier Speicherplatz vorhanden ist, verschwinden alle zuvor gelöschten Dateien und können nicht wiederhergestellt werden.

Der Zweck des Löschens der Festplatte besteht darin, sicherzustellen, dass private Daten für andere nicht sichtbar sind. Beispielsweise kann ein Unternehmen einige neue Computer bestellen und der Geschäftsführer beschließt, die alten Computer zu verkaufen. Der neue Computerbesitzer kann jedoch einige vertrauliche oder Kundeninformationen des Unternehmens sehen, wie z. B. Kreditkartennummern, Adressen usw. Glücklicherweise konnten die Computertechniker des Unternehmens die Festplatten löschen, bevor sie die alten Computer verkauften.

Um das Löschprogramm secure-delete zu installieren, geben Sie sudo apt-get install secure-delete ein. Dieser Befehl installiert eine Assembly mit 4 Programmen, um sicherzustellen, dass gelöschte Dateien nicht wiederhergestellt werden können.

  • srm – eine Datei dauerhaft löschen. Verwendung: srm -f ./secret_file.txt
  • sfill – Leerraum löschen. Verwendung: sfill -f /mount/point/of/partition
  • sswap – Swap-Speicherplatz löschen. Verwendung: sswap -f /dev/SWAP_DEVICE

Wenn der Computer diese gelöschten Dateien tatsächlich löscht, dauert die Ausführung des Löschvorgangs länger. Bestimmte Bereiche als leer zu markieren ist schnell und einfach, aber es dauert einige Zeit, die Dateien für immer verschwinden zu lassen. Beispielsweise kann das Löschen einer Speichereinheit mehrere Stunden dauern (abhängig von der Größe der Festplatte). Alles in allem funktioniert das aktuelle System ziemlich gut, denn selbst wenn der Benutzer den Papierkorb leert, hat er noch eine weitere Chance, seine ursprüngliche Meinung (oder seinen Fehler) zu ändern.


Das obige ist der detaillierte Inhalt vonSo stellen Sie gelöschte Dateien im Linux-System wieder her. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:linuxprobe.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!