It is possible to do it, it will be tedious and you might run into problem with disk partitioning. A reinstall would be simpler.
You will need a few tools and mostly time because you cannot boot into an operating system you just currently backing up or restoring, and your (let's say) Original OS is a virtual one. I will name the virtual OS as 'Original' and the to-be-physical OS as 'Target' onward.
If you have other bootable Linux Virtual Machines, you are a bit luckier.
- you will need a bootable Live Linux CD, probably you'll have that Ubuntu around, and you will need an external HDD with space at least the amount of the to-be-converted virtual HDD's size
- properly shut down the Original VM and the other VM
- detach the to-be-converted virtual HDD from the original VM, and attach it to the other VM. The key here is that this virtual HDD shouldn't be used at all (if your Linux automagically mounts it during boot, you will have to unmount it later)
- boot into this other VM.
- look for your newly attached HDD, and umount it
- plug in your external HDD. (Gnome might mount it, if not, you have to mount it manually)
- use the
dd command to create a large image from the entire 'to-be-converted' disk right to your external HDD. READ the
dd help, improper command line parameters can FUBAR your healthy virtual disks.
- when the image file is saved, unmount the external HDD and shut down the VM.
If you don't have other VMs, you'll need to attach the Live CD to the Original VM and boot into the Live CD (This is where a lot of people fails, check twice if CD booting is enabled on the VM). Then mount the external HDD, unmont the Original's HDD and everything is the same as above from "use the
dd command" line.
On the Target machine:
- put the Live CD into the Target machine and boot into the Live CD
- plug in the external HDD and mount it.
- use the
dd command again to recreate the physical disk from the image file you previously made (READ the manual again!) If you mix something up, the worst thing to happen is to copy the entire - emtpy - physical disk into your well-made disk image (that is when you really need time...)
- you will have to readjust the partitions with
gparted as the entire Target's disk will be as large as the virtual disk was. And for completeness' sake check if you can boot the partition (you might need to reinstall grub). Oh, and throw an fsck on the HDD.