My Ubuntu 12.04 is installed on /dev/sda5 and Windows 7 on /dev/sda1. When I am running Ubuntu, I would like to use Virtualbox to run Windows 7 in a VM. The Windows 7 partition is 1 TB and is half full, i.e. large, so I don't want to copy it into a virtual hard disk.

I have read that it is possible to use a real hard disk for a Virtualbox VM, but the various instructions I have found differ from each other, and I can't seem to get it to work. Does anyone know a way to make it work in Ubuntu 12.04 and Virtualbox 2.1.12_Ubuntu r77245 (the latest Ubuntu installed the repos)?

Please post how it works for you as I want to retry any method that might work.

  • Why is your MSWIN partition 1TiB? Although, not a complete solution: If possible, move everything that doesn't need to be on there (data...media files?) and then re-size the partition which will make any approach easier. If you wanted to go the image route, clearing then shrinking that partition will leave you with enough space to make a full image of the smaller, new partition. :-)
    – Alastair
    Commented Jan 6, 2014 at 14:58
  • Related: Use physical harddisk in Virtual Box
    – kenorb
    Commented Dec 10, 2018 at 22:59

6 Answers 6


The command you want is

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

This will create a special VMDK virtual disk file (Win7.vmdk) which is actually a pointer to the host disk partition /dev/sda1.

In theory, you can then use this as the disk file for a VM to run directly from the actual disk partition, but...

  • (a) I've never tried this, so don't know how reliable it is
  • (b) you may get problems with Windows Activation depending on your license key and whether Windows decides that the detected 'hardware' has significantly changed
  • Thank you. I didn't even think about the activation problem. That's sure to put a stop to my plans.
    – Jazz
    Commented Jul 26, 2012 at 3:52
  • 2
    In addition, even if it worked (which I doubt) you may seriously damage your Windows when running from both boot, and the VM.
    – Takkat
    Commented Jul 26, 2012 at 8:54
  • @ubnewbie2: I'd probably only try this as an experiment and/or when using some sort of Volume Licensing key and I'd probably view it as a one-way operation; i.e. you'd have more difficulties trying to reverse it. I actually run Windows 7 and use a VirtualBox VM with Ubuntu, often in full screen mode so the PC seems only to be running Linux, and would be more confident of running Ubuntu off a raw disk partition.
    – StarNamer
    Commented Jul 26, 2012 at 11:19
  • FYI, I have now tried this, in reverse. I needed to change a machine running Ubuntu over to Win 7, so made freed some space by resizing partitions and creating a new one and installed Win 7. This replaced grub2 with he windows bootloader so I then installed VirtualBox and created a new VM, with a minimal virtual disk to book from, which then uses the existing 'raw' partitions to run from. It works OK, although a bit sluggish due to reduced memory and only seeing 1 CPU core (instead of 4).
    – StarNamer
    Commented Aug 7, 2012 at 12:55
  • -partitions at the end a list of the partitions you want virtual box to "see" (not the partition # you want to use) VBoxManage internalcommands --help will show you other things you can do with the internal commands, as well as what the options mean.
    – boatcoder
    Commented Dec 18, 2013 at 13:10

Yes you can do that with the internal createrawvmdk command, which will not create an entire disk image, but a pointer to the actual hardware.

There are two ways to do that

  • A. Full disk image (of /dev/sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
  • B. Partition image

    As @StarNamer showed, you ca use only one or few partitions.

    To create image of just one (/dev/sda1) partition:

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1

    To create custom partition table which will map /dev/sda2 and /dev/sda1 in that order:

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1

Most striking difference will be that full disk image will use bootloader and partition table exactly as they are in your disk, so in theory (I did that previously only in qemu) you will be able to setup OS from your virtual machine. And from my limited experience I can say that full disk image will work exactly as qemu -hda /dev/sdb.

Note: If you're using user to access the disk, you need to add it to disk and vboxusers groups, e.g.

sudo usermod -aG disk,vboxusers ubuntu

then make sure you re-login or restart your computer.

Further reading:

  • "full disk image will use bootloader and partition table exactly as they are in your disk" - under which scenario, the first (/dev/sdb) or the second (with partitions specified)?
    – naught101
    Commented Jul 22, 2013 at 23:39
  • 1
    Also, virtualbox needs to be run as root, otherwise you get Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
    – naught101
    Commented Jul 22, 2013 at 23:49
  • 3
    "Also, virtual-box needs to be run as root". Actually no, you need to be a member of group disk. Much safer than running virtual-box as root.
    – user193006
    Commented Sep 15, 2013 at 1:14
  • 3
    Here is what worked for me with Ubuntu 16.04 as a host system and Windows 10 as a guest: I created the .vmdk file using sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3. That way I included the windows partition as well as the EFI boot loader partition. I then followed the shilka's instructions on virtualbox.org/ticket/7702 and added cloverefiboot. Works like a charm!
    – dzmanto
    Commented Mar 10, 2017 at 10:03
  • You can also prefix VirutalBox (and VBoxManage) command with sudo -g disk to only grant that the access to virtualbox, but not all your other processes.
    – Jan Hudec
    Commented Jan 2, 2019 at 21:16

There is an Disk option called "Immutable", so in theory if you select this option for the vmdk linking to your raw disk, it should not change the original partition.

To do so open "Virtual Media Manager" found under "File", select your image and click "Modify" (You have to make sure this image is not attached to any machine, otherwise you get an error). Now you can set the media type to "Immutable".

I have not tested this, though. If anyone does (of course with a test setup) it would be good to report back here.

Has anyone considerations which speak against this idea?


For several years now, I have been running dual-booted Windows and Ubuntu with the Ubuntu Partition also booting into Windows VirtualBox to take advantage of the touch-screen capabilities that Linux hasn't yet mastered.

I set it up with instructions similar to below;

The new machines can simultaneously handle both OSs better than single systems on old machines.

Downside: You need to save the instructions you use for setup in case an update disables the VirtualBox connection (my current problem).


After many tries I ended up with a neat and clean solution:

  1. Boot the windows partition you would like to virtualize
  2. Download Disk2VHD utility from Sysinternals
  3. If you have a UEFI partition, follow these instructions
  4. Create a VHD (not VHDX) image of your C: partition, recovery, UEFI (if any) and whatever else you want
  5. Come back to Linux, open VirtualBox and create a VM accordingly to your windows operating system specifications
  6. Attach to that VM the VHD disk created at point 4
  7. That's it
  8. Profit

Troubleshooting in case of UEFI:

  1. In the VM settings, in VirtualBox, check the option "Enable EFI" under System tab
  2. If you get stuck at the EFI Shell, run the following command:

  • Some comment about the downvote?
    – garlix
    Commented Nov 8, 2018 at 13:06
  • I see this happened a few days back, but I don't remember giving you downvotes, at least not on purpose. i'd gladly unvote it, sorry.
    – userfuser
    Commented Nov 11, 2018 at 21:14

VirtualBox has lot of disadvantages. I leave it some years ago. Now I use qemu-kvm and beside other fine feature it can be configured to use the disk device in the same way as the disk image. The trick is to configure the virtual "-drive if=sd,id=sda,format=raw,file=/dev/sda" .

But! You must first make some changes while running the MSW on the bare metal, before you try to virtualise it: look at "Drivers" folder for the proper drivers to be present and the "Registry" tree to be those drivers enabled and set to be run prior the system start like:

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

You have to look for apropriet driver with respect to the virtual machine if you do not want to see the BSOD.

It is hard to say which drivers to activate. The best way is to install a test system first, then search register in it for register key with the "Start"=dword:00000000 and then set these key on the bare metal machine. It is also recomended to check the MAC address on the bare metal to put it in the qemu configuration. You can prevent the system to ask for new activation.

You must log in to answer this question.

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