I've found the solution for virtual disks VMDK compatible machines.

The steps I've done are the following:

  1. Install Virtual Box
  2. Determine the Physical Disk number of the USB drive. To achieve this I run the following script generated by WMI Code Creator:

    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_DiskDrive WHERE Name = '\\\\.\\PHYSICALDRIVE1'",,48) 
    For Each objItem in colItems 
        Wscript.Echo "-----------------------------------"
        Wscript.Echo "MediaType: " & objItem.MediaType
        Wscript.Echo "Model: " & objItem.Model
        Wscript.Echo "Name: " & objItem.Name
    Next
    
  3. Execute this from the VirtualBox folder, changing XXX with the number given by the script:

    VBoxManage internalcommands createrawvmdk -filename "C:\USB.vmdk" -rawdisk \\.\PhysicalDriveXXX -register
    
  4. Just create a new VirtualBox machine with just the whole disk, and start it. I've tried with VMware just forcing to use the USB.vmdk and the virtual machine starts but while loading the Operating System, just shows an error about slow device.


Virtualbox can do this indirectly

Configure your USB drive as a raw disk in VirtualBox (page 105 of the manual). Then the guest will see your USB drive as a IDE drive and will be able to boot on it.