VirtualBox has a shared folder feature that allows accessing the host computer’s physical hard drive partition and folders from the virtual machine. Once the VirtualBox guest additions are correctly installed, this can be enabled easily by doing additional steps. But in some cases, if you want to access/mount a physical drive partition to a virtual machine’s settings, you need to follow the steps to accomplish it.
This step by steps method explains how to access the physical disk in VirtualBox. Unfortunately, we can’t do it as quickly as in the VMware workstation.
Few commands and hard drive mapping are involved in mounting and using the physical disk partition in VirtualBox. This method is called ‘Raw Disk’ access. Read more about what is Raw Disk
Summary:
Before starting the procedure, let me explain how it will work.
As I said earlier, it’s not easy as giving access to a physical disk in a VMware workstation. We must create a configuration VMDK file for the host’s entire physical disk or partition, then add the VMDK in the virtual media manager. Then allocate the disk to any Virtual Machine in VirtualBox.
We can use this physical disk access method in VirtualBox to mount and boot the Operating System from any of the secondary hard disks on the host OS. Also, booting a virtual machine from a physical USB drive or live USB is possible by following this method. Do not mount and boot the main host OS partition (mostly the C drive) by this method. This may hamper your physical computer Operating System.
How to Access Entire Physical Disk in VirtualBox
1) Open the Command prompt on the host computer, then go to the installation folder of the VirtualBox program; in most cases, it will be under this location.
C:\Program Files\Oracle\VirtualBox
2) Type the below command:
VBoxManage internalcommands createrawvmdk -filename c: \Users \sunuser \.Virtualbox \VDI \mydrive.vmdk -rawdisk \ \ . \PhysicalDrive0
C: \Users \sunuser \.Virtualbox \VDI \mydrive.vmdk : Location and ‘ mydrive.vmdk’ is the configuration VMDK file of your entire physical drive 0.
Do not think the new VMDK file will be as huge as your physical disk size. It’s just a 1KB size file. After you add this file to Virtual Media Manager, you will get the total size of the physical disk.
\ \. \PhysicalDrive0 : is the physical drive of the host computer. We can identify the disk numbers like 0,1 and 2 from Disk management in Windows OS under Computer Management. Insert the disk number related to your case on Windows 10/11 computer.
3) Successful command execution will create a VMDK file where you specified.
4) Open the VirtualBox, and go to Virtual Media Manager. The latest versions support directly adding this VMDK file to the specific virtual machine’s settings.
5) Add the newly created ‘mydrive.vmdk’ under the hard disk. Read more about how to add a VMDK file in VirtualBox
6) Add the newly added hard disk to the virtual machine and start accessing it from the Guest Operating system. Since this method has the write permission, ensure that overwriting data from the guest VM will not create any issues on the host OS.
How to Access Specific Partitions of Physical Disk from VirtualBox
To attach specific partitions of the host physical disk in VirtualBox, run the same command with additional switches,
VBoxManage internalcommands createrawvmdk -filename c: \Users \sunuser \.Virtualbox \VDI \ mydrive.vmdk -rawdisk \ \. \ PhysicalDrive0 -partitions 1,3
-partitions 1,3: The partition numbers of PhysicalDrive 0. It will allow you to access the first and third partitions of the physical drive 0 in this example.
This command also will create a VMDK file, and you can access the drives as explained in the first method.
help with this one. im using windows 7, running Ubuntu 9.10 inside virtualbox 3.1. when i type the command it shows invalid parameter -users.
please help. desperately want to use my Ubuntu OS and access all my files from the host.
Hi, it’s not – users (parameter). It’s the location of vmdk configuration file. I used Vista as my host, so I created in that location. Windows 7 also must be the same. Try and let me know.
This works great, but the only problem is Windows 7 rearranges the order of the physical disks in disk manager every time I reboot. Annoying.
Hi – Are you positive that you use Vista (or 7) as a host and XP as a guest, XP being on a physical partition ?
I can’t have this to run with my Win7 and XP (BSOD with UNMOUNTABLE_BOOT_VOLUME). The VB logs says that the physical XP partition cannot be written
The vdmk was created w/o problem, my VB runs “elevated”, the XP partition is not “mounted” etc … I’ve even tried installing a Kubuntu host instead of the Win7, and using the _exact_ same XP partition in the Kubuntu host, and this run fine. I’m used to use XP and Kubuntu on physical partition w/o problems for years …
Hi Philippe,
I have Windows 7 and XP as Host and having same Operating systems as guest too. The above steps I tested on Windows vista host but not Windows XP physical partition. To be honest, I’m scared to mount system physical partition inside VirtualBox. But I did later. I mounted Windows XP physical partition in Sun VirtualBox and started same physical computer in VirtualBox. Guess what? Once I restart Host Windows XP later, it says some boot sector or loader corrupted. I struggled to get my host OS back.
So from that point, I don’t boot or mount physical Host OS in VB. It’s little risky. (I’m not sure; I understand your point correctly).
Anyway, Thanks for your comment.
philippe,
This is a new “feature” of Windows, see:
http://www.osnews.com/comments/16243
One should install some kernel-mode hack to workaround this.
Hi
By using this method I have managed to mount my drive under Debian. I have a question though. Is it ok to modify this physical mounted drive under Linux say with Gparted? I mean this way of accessing of a drive is same as accessing it physically. For example can I resize one of the partitions of this drive inside Debian running on Vbox using Gparted?
thanks
@chromn,
I would suggest to NOT doing anything on physical disk ( if its bootable disk for host computer). I have bad experience about this and even VirtualBox says ‘ any changes may case issues on physical host’.
You can transfer data ( copy, cut and paste), but don’t try any partitioning except you leased worry about host OS.
For people having problems with doing this on Windows 7. First got error messages VERR_ACCESS_DENIED. After running cmd and virtualbox as administrator i could complete the listed operations. Don know the exact security implications of this. So try at own responsability!
I am running into a issue when trying to attach to the vmdk created on a Win 7 system. The infor is as follows; create usbboot.vmdk using the command
VBoxManage internalcommands createrawvmdk -filename “c:\Users\admin\Virtualbox VMs\USBboot\usbboot.vmdk” -rawdisk \\.\PhysicalDrive5
run from command prompt as administrator.
I tried to “add Hard disk” virtual disk file to the IDE Controller, running VirtualBox as administrator. It gave me the error “failed to open the hard disk C:\users\admin\virtualbox vms\usbboot\usbboot.vmdk The medium C:\users\admin\virtualbox vms\usbboot\usbboot.vmdk cant be used as the requested device type.”
This makes me think there is a different device type i should be using or need to create the vmdk differently. Please let me know what steps I am missing.
Please note that it is necessary to start VirtualBox as administrator as well. The problem I have got is that my USB stick changes the PhysicalDiskID every time I reboot and recreating the vmdk file doesn’t work, since the UUID is broken. So every time I have to change the contents of the vmdk file manually. But no worries; this file is small, and easy understandable!
To anyone who gets massive long errors in their cmd try copy and pasting this. remember to change the user name. mine was spitting out the errors because it couldn’t create the VDI folder. even though i tried running cmd in admin mode. i’m also using Windows 7 Ultimate x64.
VBoxManage internalcommands createrawvmdk -filename c:\Users\[USERNAME]\.Virtualbox\mydrive.vmdk -rawdisk \\.\PhysicalDrive0
the vmdk file you are creating is just a link to the physical drive that the VM can understand since it is specifically designed to not allow any crossover to contain viruses and such. so if you are using a usb you will just have to recreate the vmdk every time you remove and then reconnect your usb.
Great post, works perfectly in Windows 7 x64 when the parameters are entered correctly without all the extra spaces you added to the sample command line. Looking through some of the comments about problems people have had however it may have been a better idea to simply tell people to run VBoxManage internalcommands createrawvmdk and mention that it’s located in their VirtualBox installation dir. If someone can’t figure this out based on the output from running the command without the filename param then they probably shouldn’t be trying it anyway.
hmm, when i install freebsd, in the partitioning there’s this error:
Error mounting partition /mnt: mount: /dev/ada0a : Invalid argument
i followed the guide and attached the file in the vbox storage manager. any idea? first try to use a physical partition under win7.
Thanks for this howto. Thanks to it I can another tutorial about how to install BackTrack 5 in hard drive. If you want to read it: http://www.iniqua.com/2011/11/17/instalando-backtrack-5-en-nuestro-disco-duro-desde-windows/?lang=en
Regards.
VBoxManage internalcommands createrawvmdk -filename c: \Users \sunuser \.Virtualbox \VDI \mydrive.vmdk -rawdisk \ \ . \PhysicalDrive0
this command not working says……………….invalid parameter users. any solution sir?