Is it possible to "virtualize" an existing PC?

8,488

Solution 1

It'd probably be easier to create a fresh VM, install Ubuntu on it, and then back up your dev box and restore the backup to the VM. That'd give you a VM you could run on any machine where VirtualBox is, or could be, installed.

That said, is there a reason you couldn't just open up VNC or SSH access to your existing dev box, and access it remotely? If possible, that might well be a simpler option -- at the least, it'd save you some suffering every time you want to use the dev box from a new machine.

Hope this helps!

Solution 2

you can dump your hd into an image with dd then convert the image to a vmdk or whatever.

apt-get install qemu (installs QEMU on debian/ubuntu)

qemu-img convert imagefile.dd -O vmdk vmdkname.vmdk

taken from: here

Solution 3

I did this previously on a Windows XP machine, but I guess you can do it in Ubuntu as well. But it uses vmware, not virtualbox...

Install vmware-converter (free product) in your Ubuntu box. Then convert the physical system to a virtual system, after tweaking configuration settings.

After this, you have you virtualized image that can be 'played' with vmplayer.

Solution 4

Another option might be to clone your OS into a VirtualBox disk image:

vboxmanage createhd --filename foo.vdi --size 10240

modprobe nbd max_part=16
qemu-nbd -c /dev/nbd0 foo.vdi

# create a partition (will automatically produce a new device /dev/nbd0p1)
sfdisk -D /dev/nbd0 <<EOF
,,L,
EOF

mkfs -t ext2 /dev/nbd0p1
mount -o loop /dev/nbd0p1 /mnt

# clone your OS
rsync -aH --exclude mnt --exclude dev --exclude proc --exclude sys / /mnt/

# install the boot loader on the virtual disk
mount --bind /dev /mnt/dev
chroot /mnt grub-install /dev/sda

umount /mnt
qemu-nbd -d /dev/nbd0

rmmod nbd

Solution 5

Copied from (http://karim-ouda.blogspot.com/2011/11/how-to-create-virtualbox-image-from.html)

sudo dd if=DRIVE | VBoxManage convertfromraw stdin FILENAME BYTES

Real Example

sudo dd if=/dev/sda | VBoxManage convertfromraw stdin MyLinuxImage.vdi 120034123776

Notes:

  1. To get the number of bytes in partition, you can use the following command sudo fdisk -l /dev/sda

  2. You need to use /dev/xxx not /dev/xxx1 or xxx2 so that the image contains MBR records

Share:
8,488
pnongrata
Author by

pnongrata

Updated on September 18, 2022

Comments

  • pnongrata
    pnongrata almost 2 years

    I'm running Ubuntu Desktop 12.04, and I was wondering if it was possible to somehow take my whole filesystem (everything under /) and create an ISO from it. Then, perhaps, use that ISO as the file system of a VBox VM (obviously, it would have to be Ubuntu, and probably 12.04).

    Basically, I've spent a lot of time configuring my development machine, but need to be able to work on it from whatever computer I happen to be at. VMs seem like the perfect solution. Thanks in advance!

    • Admin
      Admin over 11 years
    • Admin
      Admin over 11 years
      Another possibility (the one my pro friends recommend) is to organize all those config files in such a way that you can pull down a git repo , run a .sh and have basically any deb machine ready to go.
    • Admin
      Admin over 11 years
  • pnongrata
    pnongrata over 11 years
    Thanks @Aaron Miller (+1) - what backup tool might you recommend, and how does it work? Does it back my entire PC into some file that can then be used to overwrite the entire file system on the VM? Thanks again!
  • Aaron Miller
    Aaron Miller over 11 years
    Glad to be of help! As for a backup tool -- man tar is what I'd recommend here; it's not the most welcoming interface, perhaps, but if you just tar up / on the dev box (making sure to avoid /proc, /sys, /dev, and /root via the --exclude option) and untar the result on your VM, you'll probably have about what you need. (I would, though, think hard in your shoes about whether it's possible to just bring across the development stuff without touching the rest -- perhaps copy /home/username across and do the rest via apt, for example. Always best to do the least amount of work necessary, I say.)
  • Mikey
    Mikey over 11 years
    I don't know for sure if this will work but +1 and I'm going to try.
  • Mechanical snail
    Mechanical snail over 11 years
    You can also use the image in VirtualBox. Ubuntu normally installs drivers for various hardware (unlike Windows), making it more portable, so this will generally work.
  • korylprince
    korylprince over 11 years
    This will not just work. The file /etc/fstab is the file your system reads to know what disks mount where. The disks are stored by a uuid, and when you make a new disk this won't be the same. You will need to edit this file on the new system to fix that. Also network cards will be renamed (that would happen anyways.)
  • bfhd
    bfhd over 11 years
    VirtualBox will be able to use VMDKs created in this way.
  • dotancohen
    dotancohen over 11 years
    Though very informative and helpful, this suggestion should be a comment and not an answer. It does not answer the question.
  • nikhil
    nikhil over 11 years
    Also to make the image, you should run a live cd with the disk not mounted. Store the image on another disk.
  • nikhil
    nikhil over 11 years
    Doesn't work that well, you need a vmware server on your network to which it exports the image. I had no luck with it.
  • user66001
    user66001 over 8 years
    Have you tried your solution?