Having worked with VirtualBox for some time, I recently went through a physical-to-virtual migration of my bare-metal Fedora install (in parallel to its hardware migration). The process for a P2V migration is quite straightforward.

Start with a dd of the source drive or drives (entire drive, not partitions):

dd if=/dev/sda of=/storage/fritzdesk_sda

The image must be converted to VDI format before it can be used with a VirtualBox virtual machine, and the VBoxManage command does the trick:

VBoxManage convertdd fritzdesk_sda fritzvbox-disk1.vdi --format VDI
Converting from raw image file="fritzdesk_sda" to file="fritzvbox-disk1.vdi"...
Creating dynamic image with size 40037760000 bytes (38183MB)...

If this image will be associated with a new VM, it seems best to create a bare-bones VM with no disk first. Doing so will create the underlying folder structure within which the image can be copied, and then incorporated into the VM. Otherwise, VirtualBox will be perfectly happy to use the image wherever it lies on the filesystem, a recipe for losing track of things.

The VBoxManage command is quite powerful, and capable of a number of image operations. Another common operation, as we move data around within the VM and storage needs change, is disk resize:

VBoxManage modifyhd fritzvbox-disk1.vdi --resize 50000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

As anywhere, image operations outside the VM will need to be accompanied by disk operations within: pvresize, lvresize, resize2fs, etc.

As for this particular P2V operation, there were but few changes needed for successful boot, namely the removal of VirtualBox host packages such as kmod-VirtualBox (it was once a host itself), and adjusting some network settings. Beyond that, storage re-arrangement akin to operations done in parallel hardware migration, here with the added ease of being a virtual machine.