You are trying to create an image of a CF and then convert it to vdi format.
First step will be the copy. You do not need any virtual machine for this step. I suppose you have a physical computer running Ubuntu.
You have to be sure that the CF device is not mounted (umount it if necessary). I will suppose that CF device is /dev/sdc. Then you have to type this command:
You have to use a virtual machine with Ubuntu or other Linux distro for the second step.
sudo dd if=/dev/sdc of=CF.image.dd
Define an additional virtual disk (.vdi) with just the same size of CF. Do not initialize it. I will suppose that the device assigned to this new virtual disk will be /dev/sdb.
Copy the file CF.image.dd to a folder of the virtual machine and go to that folder.
Then type this command:
Shutdown the virtual machine.
sudo dd if=CF.image.dd of=/dev/sdb
The file vdi will contain the image of the CF converted to vdi format.
An alternative for step 2 (raw disk image to vdi conversion) would be to use the VirtualBox tools: