How can I use external hard drive via USB connection on a virtual machine using VirtualBox?

I ejected the hard disk from OS X host, then the disk becomes available in OS X virtual machine.

Clicking on the disk throws an error:

enter image description here

USB Settings:

enter image description here

Why is that?

EDIT: I added external drive to the USB panel. I am still getting an error `Failed to attach the USB device Seagate Expansion to the virtual machine El Capitan3.

Failed to create a proxy device for the USB device. (Error: VERR_PDM_NO_USB_PORTS).

Result Code: NS_ERROR_FAILURE (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

enter image description here

  • 1
    BTW, I assume you did install the "VirtualBox 5.0.20 Oracle VM VirtualBox Extension Pack". This enables support for USB 2.0 and USB 3.0 devices, VirtualBox RDP and PXE boot for Intel cards. May 19, 2016 at 15:47

2 Answers 2


I assume the you have downloaded and installed the "Oracle VM VirtualBox Extension Pack". This enables support for USB 2.0 and USB 3.0 devices, VirtualBox RDP and PXE boot for Intel cards.

In the Ports window pane, I do not see where you have added a USB Device Filter. Below is where I added a 2 GB USB flash drive.


An alternative to ejecting the USB external drive would be the following:

Unmount the USB drive before starting the virtual machine. The timing is very important, since OS X will try to remount the drive automatically. Use the Terminal application command

diskutil list

to determine the identifier for the external USB drive. For example, say the identifier is disk1, then the command to execute, just before you start the virtual machine, would be

diskutil unmountdisk /dev/disk1


Actually, I was able to gain access to the USB flash drive after starting the virtual machine. All I had to do is execute the

diskutil unmountdisk /dev/disk1

command while the virtual machine was running.

Accessing the External USB Drive as a Virtual SATA Drive

The following Terminal application commands create the file share.vmdk needed to access the external USB drive as a virtual SATA drive. This file will be stored in the folder named Share on the your Desktop. I assume the identifier of the external drive is disk1.

cd ~
cd Desktop
mkdir Share
cd Share
diskutil unmountdisk /dev/disk1
sudo chmod go+rw /dev/disk1*
diskutil unmountdisk /dev/disk1
vboxmanage  internalcommands  createrawvmdk  -filename  "$PWD/share.vmdk"  -rawdisk  /dev/disk1

Note: The effects of the sudo chmod go+rw /dev/disk1* command are temporary. The permissions may revert, if you restart the computer or eject the external USB drive.

You can now add the share.vmdk file as a second drive in your virtual machine. Note: Before clicking on the "Open" button, you will need to execute the command diskutil unmountdisk /dev/disk1.

Before starting the virtual machine, you will be required to execute the command diskutil unmountdisk /dev/disk1.

Note: You can stop OS X from automatically mounting the external USB drive by creating/editing the file /etc/fstab. See man fstab for more information.

Accessing a Read/Write .dmg File as a Virtual SATA Drive

Use the Disk Utility application to create a new blank disk image. Below is a example where the share.dmg is created in the ~/Desktop/Share folder. (This was done using Yosemite OS X 10.10) Other types of disk images can also be created and used.


Again you need to create a share.vmdk file. The commands are given below.

cd ~/Desktop/Share
diskutil unmountdisk /dev/disk1
vboxmanage  internalcommands  createrawvmdk  -filename  "$PWD/share.vmdk"  -rawdisk  /dev/disk1

Next, execute the same steps already given to access the USB drive.

  • I added external harddrive in USB panel. I am still getting an error. Not I get it whenever I eject the external hardrive from host Mac.
    – sanjihan
    May 19, 2016 at 13:21
  • Do you get the message when you unmount the external drive instead of ejecting the drive? May 19, 2016 at 14:02
  • Doesn't matter. Happens regardless of which option I choose.
    – sanjihan
    May 19, 2016 at 14:11
  • You did not mention in your original post the guest was a virtual Hackinosh. I am not sure what happens when you try to run a operating systems on virtual hardware for which Apple neither designed or intended for anyone to do so. May 19, 2016 at 14:26
  • Yes, I am running El Capitan on El Capitan. Really unfortunate. no shared folders, no USB...seems like internet is the only option.
    – sanjihan
    May 19, 2016 at 14:44

Installation of Intel(R)_USB_3.0_eXtensible_Host_Controller_Driver helped me

  • 1
    Can you provide more context? Where did you find this driver at? How did you know it was this driver that created the error? Feb 28, 2018 at 3:35
  • It worked for me. I got the Intel(R)_USB_3.0_eXtensible_Host_Controller_Driver and installed in the Guest system.
    – aruke
    Aug 28, 2018 at 23:31
  • using google to search for Intel(R)_USB_3.0_eXtensible_Host_Controller_Driver gives what is needed Sep 14, 2018 at 18:48

You must log in to answer this question.

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