VMware virtuelle Platte zu physischer Platte

Huschi

Moderator
Moin moin!
Mal ne Frage am Rande (evtl. hat das schon mal jemand gemacht):
Ich habe in einer VMware einen Rechner voll eingerichtet. Bisher aber nur mit einer virtuellen Festplatte.
Nun soll diese Maschine aber eine Datenbank hosten, die relativ viele HD-Zugriffe hat. Dazu möchte ich zur Steigerung der Performance ihm eine eigene reale Partition zuweisen.
Das Brimborium mit zwei HD's (eine Virtuelle zum Starten und die Physikalische für die Daten) habe ich mir zwar überlegt, aber lieber wäre es mir, wenn ich die Virtuelle vollständig inkl. Boot-Sektor etc. auf die Partition kopieren könnte.
Hat dazu jemand eine Idee, wie man dies tun kann?

huschi.

PS: Das Hostsystem ist übrigens Ubuntu und das Gast-System ein Debian. Ich würde das Selbe aber auch gerne mit meinem Windows-Gast machen.
 
Last edited by a moderator:
Hallo Huschi,

was spricht dagegen, die Zielplatte in den Wirtsrechner einzubauen?

Vor dem Einschalten des Gastrechners baust du die phyikalische Platte ein.

Anschließend kannst du die Kopie auf dem Wirtsrechner vornehmen wie gewöhnlich.


Pfiffikus,
der es noch nicht selbst durchexerziert hat
 

Attachments

  • PhPlatte.jpg
    PhPlatte.jpg
    60.2 KB · Views: 195
Hallo Pfiffikus,

die Platte ist schon drin und ich kann sie auch als 2 Platte in die VM einhängen. Aber ich möchte die ganze virtuelle Platte mit allem Drum und Dran in eine real existierende, physikalische und voll zugriffsfähige Festplatten-Partition verwandeln.

Ein dd reicht wahrscheinlich nicht bzw. ist zuviel, da die Partition auch deutlich größer ist, als die Virtuelle. Ich hatte mir schon überlegt darin erstmal ein Debian zu installieren, so daß der MBR und Boot-Rekord vorhanden ist und ich dann nur noch per cp alle Dateien rüber schieben muß. Halte ich aber für etwas riskant.

huschi.
 
Alles (offline, also mit einem Live-System) zu kopieren sollte den Job machen.

Die Platte am besten mit dem Gastsystem vorbereiten (Partitionieren, Formatieren) und dann alle Dateien rüber. Inkl. aller Metadaten geht das am besten so:
Code:
cd <altes root-dir>
find . |cpio -pamd <neues root-dir>
Beachten: Das steigt nicht über Dateisystemgrenzen hinab. Also ggf. für weitere Dateisysteme wiederholen. (Immer vom root-dir aus.)

Dann die virtuelle Platte raus und mit dem Live-Linux ggf. die fstab anpassen und den Grub installieren.

Es sollte dann fertig sein und laufen.
 
Hallo,
Ein dd reicht wahrscheinlich nicht bzw. ist zuviel, da die Partition auch deutlich größer ist, als die Virtuelle.
Ich meine mich errinern zu können, dass ich mal gelesen hab, das aber genau das der Weg ist, den man gehen muss um eine VM HD in eine reale HDD umzuwandeln.
Zum größen Problem:
Spricht was dagegen erstmal die Partition so wie sie ist per dd zu klonen und danach mit gparted etc zu vergrößern auf die reale Größe?

Offtopic: Wie wäre es das ganze noch mal neu zu installieren auf einem richtigen System und einfach die Konfigurationen rüber zu kopieren ;)
 
Da es sich um ein Linux handelt ist das recht entspannt. Linux reicht es, komplett kopiert zu werden und eine passende fstab zu haben.
Für die Installation von Grub reicht ein einfaches Knoppix von dem man bootet.
 
Hi Huschi,

Hab das schon paar mal gemacht. Am besten ne Maschine aufsetzen die und das Grundsystem installieren.

Danach ein einfach rsync -avz / ZIELRECHNER:/ und dann halt --exclude=/etc/fstab und so weiter ausschließen.

Greetz Centro
 
Danke für die vielen Tipps. Auf cpio wäre ich jetzt gar nicht gekommen aber ich hatte bereits daran gedacht tar mit zu benutzten um die mangelnde Einsicht von cp zu umgehen.
Auch rsync ist eine gute Idee.

Also:
1. Neue Dummy-VM mit der HD aufsetzten in das ich ein mini-Debian installiere.
2. Die Server-VM starten und die HD hinzufügen.
3. Mounten der HD und per rsync/cpio die Daten rüber schieben.
4. Der Server-VM die virtuelle Platte weg nehmen und die Dummy-VM wieder löschen.

PS: Ich hab noch ein "vmware-mount.pl". Damit kann man die VM-Platte im Host-System mounten. Evtl. kann ich damit den 2. und 3. Schritt abhandeln.

Preisfrage:
Und wie mach ich das dann mit einer Windows-VM?

Wie wäre es das ganze noch mal neu zu installieren
Du weißt schon, das alte Problem: Es steckt bereits viel viel Arbeit drin.
Die VM ist (so zu sagen) bereits im produktiven Einsatz.

huschi.
 
Oder Acronis True Image.

Aber das Beste wäre denke ich mal, die "dd" Variante!
 
Ich kämpfe gerade noch mit einem anderen Problem:
Die Debian-VM will partout nicht ohne virtueller Platte starten. Ich mußte also eine Boot-Partition auf der Virtuellen erstellen. Ok, ich will das Debian auch niemals so booten. Aber ein bisschen ärgern tut es mich schon.

Ach, wegen Fakten Fakten Fakten: :)
Wenn ich die virtuelle Platte in einer frischen VM (noch ohne OS) rausnehme und dann das netinstaller-Iso als CD boote kommt (und bleibt bis zum Reset):
Code:
GRUB loading stage1.5.

GRUB loading, please wait...
Error 17
Mit einer v-Platte als SCSI 0:0 geht es.

huschi.
 
Last edited by a moderator:
Arg!!!!!
Ich glaube es liegt daran, daß die verwendete Partition auf der selben Platte liegt wie das Hostsystem (inkl. den gesamten Boot-System).
Ich bräuchte dafür also eine eigenständige Platte. Damit würde mein gewünschter Performance-Gewinn aber wieder schrumpfen, weil /dev/sda ein RAID 5 ist.
Also lasse ich es dabei eine virtuelle Boot-Partition zu verwenden.
Aber das Windows-System bekommt eine eigene Platte, weil sonst wird das nix.

huschi.
 
Hier die Codes:
Code:
Errors Reported by the Stage 2
The general way that the Stage 2 handles errors is to abort the operation in question, print an error string, then (if possible) either continue based on the fact that an error occurred or wait for the user to deal with the error.

The following is a comprehensive list of error messages for the Stage 2 (error numbers for the Stage 1.5 are listed before the colon in each description):

    * 1 : "Selected item won't fit into memory"

      This error is returned if a kernel, module, or raw file load command is either trying to load it's data such that it won't fit into memory or it is simply too big.

    * 2 : "Selected disk doesn't exist"

      This error is returned if the device part of a device- or full filename refers to a disk or BIOS device that is not present or not recognized by the BIOS in the system.

    * 3 : "Disk read error"

      This error is returned if there is a disk read error when trying to probe or read data from a particular disk.

    * 4 : "Disk write error"

      This error is returned if there is a disk write error when trying to write to a particular disk. This would generally only occur during an install of set active partition command.

    * 5 : "Disk geometry error"

      This error is returned when a read is attempted at a linear block address beyond the end of the BIOS translated area. This generally happens if your disk is larger than the BIOS can handle (512MB for (E)IDE disks on older machines or larger than 8GB in general).

    * 6 : "Attempt to access block outside partition"

      This error is returned if a linear block address is outside of the disk partition. This generally happens because of a corrupt filesystem on the disk or a bug in the code handling it in GRUB (it's a great debugging tool).

    * 7 : "Partition table invalid or corrupt"

      This error is returned if the sanity checks on the integrity of the partition table fail. This is a bad sign.

    * 8 : "No such partition"

      This error is returned if a partition is requested in the device part of a device- or full filename which isn't on the selected disk.

    * 9 : "Bad filename (must be absolute pathname or blocklist)"

      This error is returned if a filename is requested which doesn't fit the syntax/rules listed in the Filesystem Description.

    * 10 : "Bad file or directory type"

      This error is returned if a file requested is not a regular file, but something like a symbolic link, directory, or FIFO.

    * 11 : "File not found"

      This error is returned if the specified filename cannot be found, but everything else (like the disk/partition info) is OK.

    * 12 : "Cannot mount selected partition"

      This error is returned if the partition requested exists, but the filesystem type cannot be recognized by GRUB.

    * 13 : "Inconsistent filesystem structure"

      This error is returned by the filesystem code to denote an internal error caused by the sanity checks of the filesystem structure on disk not matching what it expects. This is usually caused by a corrupt filesystem or bugs in the code handling it in GRUB.

    * 14 : "Filesystem compatibility error, can\'t read whole file"

      Some of the filesystem reading code in GRUB has limits on the length of the files it can read. This error is returned when the user runs into such a limit.

    * 15 : "Error while parsing number"

      This error is returned if GRUB was expecting to read a numbur and encountered bad data.

    * 16 : "Device string unrecognizable"

      This error is returned if a device string was expected, and the string encountered didn't fit the syntax/rules listed in the Filesystem Description.

    * 17 : "Invalid device requested"

      This error is returned if a device string is recognizable but does not fall under the other device errors.

    * 18 : "Invalid or unsupported executable format"

      This error is returned if the kernel image boing loaded is not recognized as Multiboot or one of the supported native formats (Linux zImage or bzImage, FreeBSD, or NetBSD).

    * 19 : "Loading below 1MB is not supported"

      This error is returned if the lowest address in a kernel is below the 1MB boundary. The Linux zImage format is a special case and can be handled since it has a fixed loading address and maximum size.

    * 20 : "Unsupported Multiboot features requested"

      This error is returned when the Multiboot features word in the Multiboot header requires a feature that is not recognized. The point of this is that the kernel requires special handling which GRUB is likely unable to provide.

    * 21 : "Unknown boot failure"

      This error is returned if the boot attempt did not succeed for reasons which are unknown.

    * 22 : "Must load Multiboot kernel before modules"

      This error is returned if the module load command is used before loading a Multiboot kernel. It only makes sense in this case anyway, as GRUB has no idea how to communicate the presence of location of such modules to a non-Multiboot-aware kernel.

    * 23 : "Must load Linux kernel before initrd"

      This error is returned if the initrd command is used before loading a Linux kernel. Similar to the above error, it only makes sense in that case anyway.

    * 24 : "Cannot boot without kernel loaded"

      This error is returned if GRUB is told to execute the boot sequence without having a kernel to start.

    * 25 : "Unrecognized command"

      This error is returned if an unrecognized command is entered into the command-line or in a boot sequence section of a config file and that entry is selected.

    * 26 : "Bad or incompatible header on compressed file"

      This error is returned if the file header for a supposedly compressed file is bad.

    * 27 : "Bad or corrupt data while decompressing file"

      This error is returned the run-length decompression code gets an internal error. This is usually from a corrupt file.

    * 28 : "Bad or corrupt version of stage1/stage2"

      This error is returned if the install command is pointed to incompatible or corrupt versions of the stage1 or stage2. It can't detect corruption in general, but this is a sanity check on the version numbers, which should be correct.


Pfiffkus,
der das nur noch im Google-Cache fand
 
Back
Top