ViennaAustria
12.06.08, 16:42
Hallo!
Ich hab ein ärgerliches Problem: ich habe unabsichtlich ein VMDK (VMware Disk) File gelöscht und natürlich keine aktuelle Sicherung. Die VM läuft aber noch! D.h., das File selbst ist noch nicht gelöscht, wie man auch schnell mit `lsof´ erkennt
host001.selfnet.at:~ 16:15# lsof | grep "vmdk.*deleted"
vmware-vm 4060 vmware 130u REG 9,0 2201092096 11027273 /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at/vbrad02.video-broadcast.at.vmdk (deleted)
oder im /proc Dateisystem
host001.selfnet.at:/proc/4060/fd 16:16# l -i | grep deleted
266109038 lrwx------ 1 root root 64 Jun 12 16:14 110 -> /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at/564dd0c5-92a7-08fe-af02-141ae27a7b73.vmem (deleted)
266109058 lrwx------ 1 root root 64 Jun 12 16:14 130 -> /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at/vbrad02.video-broadcast.at.vmdk (deleted)
266108945 lrwx------ 1 root root 64 Jun 12 16:14 17 -> /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at/vmware.log (deleted)
266108985 lrwx------ 1 root root 64 Jun 12 16:14 57 -> /tmp/vmware-vmware/ram0 (deleted)
Ich weiss also, dass die Daten im Inode 266109058 liegen. Doch wie kann ich für den wieder einen Verzeichniseintrag machen? Sonst sind die Daten futsch, sobald ich die VM beende, weil der RefCount vom Inode dann ja auf 0 geht! :eek:
Mit `debugfs´ konnte ich kein Ergebnis produzieren, denn das kann anscheinend mit gelöschten Inodes auch nicht umgehen:
debugfs: ln <266109058> /tmp/vbrad02.video-broadcast.at.vmdk
<266109058>: Illegal inode number while reading inode 269582466
(/tmp und /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at liegen am selben Root-FS; daran kann's also nicht gelegen haben)
Ausserdem würde es vermutlich nicht viel Nützen, denn lt. debugfs Manpage wird damit der RefCount vom Inode nicht inkrementiert, bliebe damit auf 1 und das File würde trotzdem beim Beenden der VM von der Platet entfernt werden.
Hat jemand eine Idee oder zumindest einen Ansatz?
Danke & liebe Grüsse,
Thomas
P.S.: es handelt sich bei meinem Problem nicht um eines mit VMware (dewegen auch nicht dort gepostet), sondern möchte ich allgemein herausfinden, ob/wie man eine gelöschte Datei wieder ins Dateisystem zurück linken kann, wenn sie noch von einem Prozess geöffnet und somit noch nicht physisch gelöscht sind.
Ich hab ein ärgerliches Problem: ich habe unabsichtlich ein VMDK (VMware Disk) File gelöscht und natürlich keine aktuelle Sicherung. Die VM läuft aber noch! D.h., das File selbst ist noch nicht gelöscht, wie man auch schnell mit `lsof´ erkennt
host001.selfnet.at:~ 16:15# lsof | grep "vmdk.*deleted"
vmware-vm 4060 vmware 130u REG 9,0 2201092096 11027273 /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at/vbrad02.video-broadcast.at.vmdk (deleted)
oder im /proc Dateisystem
host001.selfnet.at:/proc/4060/fd 16:16# l -i | grep deleted
266109038 lrwx------ 1 root root 64 Jun 12 16:14 110 -> /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at/564dd0c5-92a7-08fe-af02-141ae27a7b73.vmem (deleted)
266109058 lrwx------ 1 root root 64 Jun 12 16:14 130 -> /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at/vbrad02.video-broadcast.at.vmdk (deleted)
266108945 lrwx------ 1 root root 64 Jun 12 16:14 17 -> /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at/vmware.log (deleted)
266108985 lrwx------ 1 root root 64 Jun 12 16:14 57 -> /tmp/vmware-vmware/ram0 (deleted)
Ich weiss also, dass die Daten im Inode 266109058 liegen. Doch wie kann ich für den wieder einen Verzeichniseintrag machen? Sonst sind die Daten futsch, sobald ich die VM beende, weil der RefCount vom Inode dann ja auf 0 geht! :eek:
Mit `debugfs´ konnte ich kein Ergebnis produzieren, denn das kann anscheinend mit gelöschten Inodes auch nicht umgehen:
debugfs: ln <266109058> /tmp/vbrad02.video-broadcast.at.vmdk
<266109058>: Illegal inode number while reading inode 269582466
(/tmp und /var/lib/vmware/Virtual Machines/vbrad02.video-broadcast.at liegen am selben Root-FS; daran kann's also nicht gelegen haben)
Ausserdem würde es vermutlich nicht viel Nützen, denn lt. debugfs Manpage wird damit der RefCount vom Inode nicht inkrementiert, bliebe damit auf 1 und das File würde trotzdem beim Beenden der VM von der Platet entfernt werden.
Hat jemand eine Idee oder zumindest einen Ansatz?
Danke & liebe Grüsse,
Thomas
P.S.: es handelt sich bei meinem Problem nicht um eines mit VMware (dewegen auch nicht dort gepostet), sondern möchte ich allgemein herausfinden, ob/wie man eine gelöschte Datei wieder ins Dateisystem zurück linken kann, wenn sie noch von einem Prozess geöffnet und somit noch nicht physisch gelöscht sind.