Wiederherstellen von Dateien von einem defekten Virtualbox-Computer .vdi

23

Mein Ubuntu 12.04.1, das auf der Virtualbox läuft, hat nicht mehr genügend Speicherplatz, als ich die Software darauf installiert habe, und jetzt wird es nicht neu gestartet . Ich habe Dateien, die ich wiederherstellen muss. Ich habe die ubuntu64.vdiDatei auf meinem Windows 7 (Host) -Laptop und habe mich gefragt, ob es eine Möglichkeit gibt, die Dateien aus der VDI-Datei wiederherzustellen.

Parallel dazu habe ich im selben Laptop eine neue 12.04.1-Maschine auf der virtualbox generiert und benutze diese anstelle der gegabelten.

Ich kann die borked vdizur Liste der Festplatten in der Arbeits hinzufügen . Dann habe ich Gnome Nautilus verwendet, um die gegabelte Scheibe zu montieren.

Ich kann die Akten dort finden, aber sie sind ungefähr 2 Monate alt. Ich denke, dies fällt mit dem letzten Mal zusammen, als ich einen Virtual-Box-Snapshot der Maschine gemacht habe, aber nicht mit dem letzten Mal, als ich eine funktionierende Maschine bekam, was gestern war. Gibt es eine Möglichkeit, den vdiStand von gestern zu montieren, kurz bevor er abgestürzt ist?

BEARBEITET:

Folgendes Virtual Media Managersagt mir über meine ubuntu64.vdiDatei: Bildbeschreibung hier eingeben

EDITED2:

Ich habe es ubuntu.vdiauf einen externen USB-Stick mit viel Speicherplatz kopiert . Ich habe versucht, es mit Windows zu klonen, habe aber einen Fehler erhalten:

Bildbeschreibung hier eingeben

Ich habe dasselbe von der funktionierenden VM über einen freigegebenen Ordner des USB-Laufwerks versucht und das Klonen gestartet. Hat eine Weile gedauert, ist aber erfolgreich zu Ende gegangen:

root@precise64:/media/sf_E_DRIVE/copy_of_ubuntu64_vm_folder_20140224/ubuntu64# 
VBoxManage clonehd ubuntu64.vdi ubuntu64.raw --format RAW
0%...

10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'RAW'. UUID: 90f99198-18e1-40ee-85fe-c083dcbb1ac3

EDITED3:

Nach der RAW - Datei erstellen, laufe ich testdiskmit Deeper Search, ich eine Liste wie diese: Bildbeschreibung hier eingeben

Ater Deeper Searchist fertig, ich bekomme eine Liste wie diese:

Bildbeschreibung hier eingeben

Aber ich weiß nicht, welches welcher Schnappschuss ist ... Irgendwelche Ideen?

719016
quelle
@Takkat, das hört sich cool an. Wie kann ich das machen?
719016
@Takkat, ich habe es gemacht und mit gnome nautilus gemountet, aber ich glaube, es wurde eine zwei Monate alte Version der Maschine gemountet.
719016
2
Das Problem hierbei ist nicht, wie die Festplatte wiederhergestellt wird, sondern wie sie mit dem Snapshot zusammengeführt wird. Wenn Sie versuchen, Ihre VDI zu klonen, hat sie eine andere UUID, und der Snapshot funktioniert damit nicht, und Sie verlieren die neuesten Daten. Ich verwende Snapshots nicht regelmäßig, da ich in der Vergangenheit beschädigte Festplatten hatte und die Basisfestplatte wiederherstellen konnte, aber immer die Deltas verloren habe. Ich hoffe, hier gibt jemand ein gutes Rezept, um sowohl die Basis als auch das Delta wiederherzustellen.
Pablo Marin-Garcia
1
Dies gilt für das nächste Mal: ​​Speichern Sie niemals Daten auf einer virtuellen Maschine, hängen Sie immer ein externes Laufwerk ein ... oder führen Sie häufige Sicherungen / Synchronisierungen durch rsync.
Dee
1
Versuchen Sie, den neuesten Snapshot zu klonen, nicht den Originaldatenträger. Sie sollten verwenden Vboxmanage clonehd 2208...(kopieren Sie die neueste UUID hier). Siehe serverfault.com/a/506581/195528
Rmano

Antworten:

21

Von der Kommandozeile

Falls wir Ubuntu als Host verwenden, können wir unsere .vdi-Festplatte mit dem folgenden Befehl in eine Raw-Festplatte konvertieren:

VBoxManage clonehd <sourcename> <clone.raw> --format RAW

Wir können dann testdisk Installieren Sie die Testdisk mit dieser Datei öffnen , um Dateien auf dem Image des virtuellen Laufwerks wiederherzustellen (siehe auch unten):

testdisk <clone.raw>

Einer virtuellen Maschine

Falls das defekte VDI-Laufwerk-Image noch bei Virtual Box registriert ist, können wir dieses Image möglicherweise als Laufwerk zu unserer neuen virtuellen Maschine hinzufügen:

Bildbeschreibung hier eingeben

Starten Sie Ihr virtuelles Ubuntu, zu dem wir die defekte .vdi hinzugefügt hatten, aber mounten Sie das Laufwerk nicht .

  1. Erstellen Sie dort ein Verzeichnis auf einer bereitgestellten Partition, in dem die gesammelten Daten gespeichert werden (z. B. ~/rescued).

  2. Installieren Sie die Testdisk Installieren Sie die Testdisk auf der virtuellen Maschine.

  3. Starten Sie dort testdisk von einem Terminal aus:

    sudo testdisk
    
  4. Wählen Sie das entsprechende Laufwerk aus, von dem Daten erfasst werden sollen (siehe Abbildung für /sdb), und wählen Sie aus[Proceed]

    Bildbeschreibung hier eingeben

  5. Wählen Sie das entsprechende Partitionslayout (normalerweise Intel)

  6. Wählen Sie [Analyse]-[Quick Search]

  7. Wählen Sie die Partition aus, die die zu erfassenden Daten enthält (hier war nur eine einzige NTFS-Partition vorhanden):

    Bildbeschreibung hier eingeben

  8. Drücken Sie P zur Liste Dateien auf dieser Partition.

  9. Navigieren Sie zu dem Verzeichnis, in dem sich die Daten befinden. Sehen Sie sich die Dateinamen an, um sicherzustellen, dass Sie die richtigen ausgewählt haben.

  10. Wählen Sie Verzeichnisse oder Dateien zum Sammeln aus : . Alle ausgewählten Dateien / Verzeichnisse werden grün markiert:

    Bildbeschreibung hier eingeben

  11. Drücken Sie Großbuchstaben, C um alle ausgewählten Verzeichnisse / Dateien in das Rettungsverzeichnis zu kopieren, das im nächsten Schritt ausgewählt wird.

  12. Wählen Sie ein Verzeichnis auf der / den bereitgestellten Partition (en) Ihrer Ubuntu-VM, in dem gerettete Daten gespeichert werden sollen:

    Bildbeschreibung hier eingeben

  13. Drücken Sie c zum Starten der Daten aus dem gebrochenen .vdi zu unserer Rettung Verzeichnis in Ihrem gesunden VM kopieren.

Anmerkungen:

  • Falls wir unsere Dateien mit der [Quick Search]Option in 6 nicht sehen können, müssen wir möglicherweise eine [Deeper Search]. Dadurch werden auch zuvor gelöschte und überschriebene Partitionen aufgelistet. Wir müssen also sicherstellen, dass wir die geeigneten Partitionen auswählen, in denen sich unsere Daten befinden.

  • Wenn wir Snapshots von der .vdi erstellt haben, finden wir diese möglicherweise in .vdi. ~/.VirtualBox/Machines/<Name of Machine>/Snapshots/{###}.vmdkWenn wir jedoch die Snapshot-Funktion von Virtual Box verwendet haben, werden alle Änderungen von einem Snapshot in eine differenzielle Datei geschrieben.

    Um die Differenzdatei mit der Festplatte zusammenzuführen, müssen wir alle Snapshots löschen (was wahrscheinlich nicht das ist, was wir wollen, da wir dann nur den vorherigen Snapshot wiederherstellen können, anstatt die Daten wiederherzustellen), oder wir müssen das Laufwerk des Computers mit folgendem Befehl klonen:

    VBoxManage clonehd <name_of_source> <clone>
    

    Dann binden wir den Klon wie oben dargestellt an unsere Rettungs-VM.

  • Das Schreiben in die beschädigte .vdi-Datei sollte erst erfolgen, nachdem die Daten sicher waren, da dies das Dateisystem weiter beschädigen kann.

  • Falls unser Rettungs-Ubuntu zu klein ist, um die geretteten Daten aufzunehmen, erstellen wir möglicherweise ein weiteres neues virtuelles Laufwerk, um es an die VM zu binden. Dieses Laufwerk muss dann in der VM gemountet werden, um dort Daten von der Testdisk zu speichern.

Takkat
quelle
danke für diese genial detaillierte anleitung. Ich folgte ihnen richtig und fügte die zu kopierenden Dateien meinem geretteten Ordner hinzu. Die Kopie war erfolgreich, aber der Zeitstempel der Dateien war ziemlich alt: Sommer 2013 statt vor zwei Tagen. Ich kann mich nicht erinnern, ob ich vor 8 Monaten etwas Bestimmtes getan habe, aber auf den ersten Blick waren meine Akten von vor zwei Tagen nicht da. Ich benutze jetzt, Deeper Searchum es noch einmal durchzublättern.
719016
@ 213441265152351 - schauen Sie sich auch den Snapshot-Ordner an ... möglicherweise gibt es eine neuere .vmdk-Datei (zumindest bei meinen Systemen hier). Hoffe, Sie finden Ihre Daten :)
Takkat
Ich habe ein Deeper Search, und nach ein paar Stunden, durchsuchte erneut die Inhalte wollte ich erholen: sie weisen nach wie vor auf eine Sommer 2013 Version der virtuellen Maschine, früher , als nur die Partition mit gnome nautilus Montage, die mir gab einen Januar Version 2014, aber noch nicht in der Lage, die Dateien von vor zwei Tagen zu finden.
719016
1
@ 213441265152351: na das ist dann komplizierter. Möglicherweise wurden abweichende Images zum Zeitpunkt des "Absturzes" noch nicht ordnungsgemäß auf das Laufwerk geschrieben. Sie können versuchen, die Festplatte im Virtual Media Manager (siehe virtualbox.org/manual/ch05.html#diffimages ) zu überprüfen, um festzustellen , ob dies der Fall war, aber ich muss sagen, dass ich dann keine gute haben werde Idee, wie Daten aus diesen Bildern wiederhergestellt werden können.
Takkat
2
@Rmano: Tatsächlich enthält ein geklontes VDI keine Snapshots, sondern ist der letzte aktuelle Status der VM mit zusammengeführten Differentialen. Nur für den Fall, dass wir einen früheren Snapshot klonen müssen, können wir einen Snapshot-VDI zum Klonen verwenden. Alle Änderungen, die später als der Snapshot vorgenommen werden, werden jedoch nicht in den Klon einbezogen.
Takkat
5

1) Versuchen Sie, den Schnappschuss von der UUID wiederherzustellen, verwenden Sie folgenden Hack:

  • Wählen Sie die UUID des Status, den Sie wiederherstellen möchten.
  • Öffnen Sie die Datei .xml, vorzugsweise in einem Tool (Internet Explorer funktioniert), das die einfache Navigation in der XML-Datei ermöglicht.
  • Suchen Sie im Abschnitt "Speichercontroller" UNTEN nach der UUID des aktuellen Status und notieren Sie den Namen des Speichercontrollers, den Typ und die Einstellungen für AttachedDevice, den Port und das Gerät.
  • Suchen Sie in der Mitte den gewünschten Schnappschuss.
  • Suchen Sie im Abschnitt Speichercontroller des Snapshots das AttachedDevice mit den Werten (Name / Typ / Typ / Port / Gerät), die den oben abgerufenen Werten entsprechen.
  • Diese Image-UUID identifiziert das Snapshot-Image für die Festplatte. Entfernen Sie die {} Klammern und

Geben Sie den Befehl ein C:> VBoxManage clonehd <UUID> CloneDisk.vdi

Hoffe es hilft, ich habe die Lösung hier gefunden: ( https://forums.virtualbox.org/viewtopic.php?t=791 )

2) Wenn die Schritte in 1) nicht funktionieren, können Sie hier weitere Schritte ausprobieren. So klonen Sie den aktuellen Status einer Festplatte:

  • Öffnen Sie den Virtual Media Manager (Menü: Datei> Virtual Media Manager).
  • Navigieren Sie zu der Festplatte, die Sie klonen möchten, und erweitern Sie die Struktur vollständig (verwenden Sie die Taste * auf dem Ziffernblock).
  • Suchen Sie die VDI-Datei {hexUUID}, die an die VM angehängt ist, deren aktuellen Status Sie klonen möchten. Dies ist eine der Blattdateien am Ende eines Zweigs. Wenn Sie diese Option auswählen, wird im Text "Angefügt an:" am unteren Rand des Fensters Folgendes angezeigt: "Angefügt an:", ohne einen (Snapshot-Namen) in Klammern.
  • Klicken Sie auf den Dateinamen rechts neben dem Ort, der am unteren Rand des Fensters angezeigt wird.
  • Strg + C / Kopieren, um den Text in die Zwischenablage zu kopieren. Dies sieht ungefähr so ​​aus: (Pfad) {b6441469-5ccb-418c-8fdd-73c5e1a17314} .vdi
  • Strg + V / Einfügen und extrahieren Sie den hexUUID-Wert (entfernen Sie die {} Klammern) und führen Sie clonehd aus, um ihn zu klonen!

Diese Lösung ist von hier: ( http://www.im-code.com/blog/blog/2012/02/04/virtualbox-clone-snapshots/ ) Beide sprechen meistens ungefähr gleich.

Dee
quelle
1

Ich hatte ein Linux-System beschädigt /und fsckkonnte es nicht beheben . Ich habe den folgenden einfachen Ansatz gewählt:

  1. Fügen Sie der Maschine eine neue Ersatz-VDI hinzu.
  2. Laden Sie eine neue Linux-ISO herunter.
  3. Booten Sie und installieren Sie ein neues Linux auf der Festplatte, die Sie in (1) hinzugefügt haben.
  4. Hängen Sie den Datenträger in Ihr neues System ein und kopieren Sie die benötigten Dateien. Normalerweise bedeutet dies das Kopieren des /home/user/Ordners. Denken Sie daran, die versteckten Dateien (Einstellungsdateien) zu kopieren.

Hat bei mir gut funktioniert. Die Festplattenbeschädigung hat nur den Start behindert, es gab keinen Datenverlust in meinem privaten Ordner.

Deleet
quelle