Hey Leute,
heute hab ich mal die Virtualisierung vom Server wieder auf OpenVZ umgestellt und wollte natürlich die Daten der VMWare-Maschinen nicht komplett löschen daher hab ich mit einem kleinen Workaround alles rüber geschoben
Also fangen wir mal an…
Zuerst einmal müssen wir den OpenVZ-Container anlegen darauf geh ich aber nicht näher ein das sollte klar sein.. die Architektur muss natürlich auch richtig gewählt werden aber ich glaub das hättet ihr auch selbst gewusst
Ok dann gehts richtig los.. man stoppt erstmal die laufende VMWare Maschine (wenn man das nicht will kopiert man das Disk Image und mountet das kopierte image dann in einer anderen VMWare Maschine), bindet als CD-Laufwerk eine Debian Live CD ein und startet die VMWare Maschine wieder.
Hinweis: Ihr benötigt mindestens den gleichen freien Speicherplatz wie belegten Speicherplatz in euer VMWare Maschine
Achtung: Es kann sein das die VMWare Maschine nicht versucht von der CD zu starten ! Um dies zu ändern stoppt man die VMWare Maschine wieder und geht in ihre Konfiguration. Dort gibt es irgendwo einen Schalter das das BIOS-Setup angezeigt werden soll. Das schaltet man an und startet die VMWare Maschine daraufhin wieder. Nun geht man auf die Boot-Geräte, wählt das CD-Laufwerk aus und drückt solange “+” bis es über der Festplatte ist.
Wenn man jetzt im Debian Live System ist gibt man erstmal “sudo su” ein um root-rechte zu erlangen. Jetzt mountet man seine Festplatte nach “/mnt” (“mount /dev/sda3 /mnt” – es kann sein das die partitionsnummer anders ist da müsst ihr dann etwas rumprobieren, wir benötigen die Systempartition).
Nun wechselt man in das Verzeichnis (“cd /mnt”) und verschiebt erstmal alle Dateien in einen neuen Ordner (“mkdir old; mv * old”). Wenn man seperate Partitionen für z.B. “/usr” benutzt hat sollte man diese nun auch an die richtigen stellen in “old” mounten. (Achtung: “/boot”, “/proc”, “/dev” werden nicht benötigt!).
Nun müssen wir etwas aufräumen.. da OpenVZ den Systemkernel verwendet löschen wir den alten kernel aus dem System: “rm -rf old/boot/* old/lib/modules/* old/usr/src/linux-headers*”
Danach packen wir das ganze “cd old; tar cf ../old.tar *” (Hinweis: Wenn man will kann man zwischen “c” und “f” noch ein “v” setzen um zu sehen was grade gepackt wird. Der Vorgang kann eine ganze Weile dauern..)
Wenn das jetzt fertig ist startet man in der VMWare Maschine den SSH-Server (“/etc/init.d/ssh start”) und ändert das Passwort für “root” (“passwd root”).
Jetzt müssen wir vom HostSystem aus per sftp verbinden (“sftp root@IP” wobei IP nat. durch die IP der vm zu ersetzen ist die man mit “ifconfig” in der VMWare Maschine herausfinden kann)und die Datei runterladen (“get /mnt/old.tar”)
Nun löschen wir alle Dateien aus dem “private” Verzeichnis des OpenVZ-Containers (“rm -rf /vz/private/VEID/*”) und verschieben die “old.tar” in das Verzeichnis. Danach wechseln wir auch noch in das Verzeichnis und entpacken die “old.tar” (“tar xf old.tar”)
Zu guter letzt kann man die “old.tar” natürlich auch noch löschen, ich persönlich empfehle jedoch entweder die “old.tar” oder die vmdk-Datei der VMWare Maschine aufzuheben.. Murphys Law lässt grüßen
Die VMWare Maschine könnt ihr jetzt natürlich stoppen. Falls ihr iptables-Weiterleitungen benutzt habt solltet ihr diese löschen da der OpenVZ-Container sonst nicht zu erreichen ist
Noch dazu: Das ganze funktioniert natürlich nur mit Linux-Distributionen und auch nur wenn diese keine speziellen Kernelmodule benötigen! Natürlich funktioniert das Tutorial mit so ziemlich allen VMWare-Versionen


