Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to make a VirtualBox .vdi image out of my hard drive.

I've found howto's online that describe doing this by first usind DD to create a .raw image, then using VBoxManage to convert the .raw to a .vdi. SO if my HD is 1 TB, this process (temporarily) requires 2TB of space, to store both the .raw and .vdi.

I only have a bit more than 1TB of free space. Is there a way to create a .vdi image of a hard drive, without first having to create a .raw image?

share|improve this question
    
This is risky, but if you have your hard drive that you want to P2V, then you could create the image on your spare drive with about 1TB Free. Then format your original drive and copy the RAW file to the original drive. Then convert the RAW to VDI back onto your main drive. However, if it gets screwed up (could happen) then you're stuck with a RAW Image and no original. – kobaltz Jul 2 '13 at 1:03
    
@kolbatz I considered this, but I thought that it had a high chance of failure. When I image the hard drive, the resulting .raw file is the size of the hard drive. But before copying the file back to the original drive, I need to give the drive a filesystem. This involves writing some metadata to the drive, leaving not enough space to hold the drive-sized file. – SuperElectric Jul 2 '13 at 4:30
up vote 19 down vote accepted

You can directly create an image with VBoxManage convertfromraw. First unmount the device, then:

VBoxManage convertfromraw /dev/sda MyImage.vdi --format VDI

Replace /dev/sda with whatever disk or partition you want to clone.

You may need to do this as root to gain access to the device. If so, then you should change ownership of the finished image.

share|improve this answer
    
Works beautifully and out of the box on OSX when you have VirtualBox installed. Thanks for pointing to this solution – JosFaber Apr 16 at 15:32

There are other safer ways to create a file of your current system that Virtualbox can work with. Vdi's are virtualbox specific files and are usually only generated by VB from a fresh virtual hard disk install.

You have many other options.

I recently used disk2vhd to create a .VHD (Microsoft Virtual Hard Disk) that Virtualbox imported beautifully. (Although it was an XP system) I don't think it works well with other OS's.

Alternatively there is Vmwares converter tool that can export your system to a variety of formats that virtualbox as well as other platforms can use. There are open standards for this kind of thing.

http://www.vmware.com/products/converter/features.html

share|improve this answer

I tried the accepted solution but for me it failed:

# VBoxManage convertfromraw /dev/sdg /path/to/file.vdi --format VDI
Converting from raw image file="/dev/sdg" to file="/path/to/file.vdi"...
Creating dynamic image with size 0 bytes (0MB)...
VBoxManage: error: Cannot create the disk image "/path/to/file.vdi": VERR_INVALID_PARAMETER

Maybe it couldn't detect the size because the disk was attached through USB?

So instead I got the size of the disk with fdisk -l

Disk /dev/sdg: 160.0 GB, 160041885696 bytes

And then I used the stdin form of convertfromraw

# dd if=/dev/sdg | VBoxManage convertfromraw stdin /path/to/file.vdi 160041885696 --format VDI
Converting from raw image file="stdin" to file="/path/to/file.vdi"...
Creating dynamic image with size 160041885696 bytes (152628MB)...
share|improve this answer

If you can clean up your source drive, you can shrink the source partition to reduce the amount of space required. Not something to do if you don't have backups, but it would help.

You could also use a dynamic VDI for your target.

share|improve this answer
    
The accepted solution provides already a way to avoid the need for extra spare space during the conversion, and your answer doesn't seem to have any added value compared to the accepted solution. – zagrimsan Sep 21 '15 at 8:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .