I followed the steps for sharing folders between Windows 7 and Ubuntu in VirtualBox.

Despite that the folder appears with a X sign and gives me the following message when a try to open it:

The folder content could not be displayed

When I choose Shared Folder from the VirtualBox Device menu, the following warning is displayed:

On the system page, you have assigned more than 50% of your computer's memory (2.93 GB) to the virtual machine...

How can I successfully share folders between Windows and Ubuntu using VirtualBox?

  • Note that you cannot share symlinks! – Joel Sjögren Sep 3 at 10:23
up vote 106 down vote accepted

Access to shared folders in Virtual Box

Command line

By default, VirtualBox shared folders are created with read/write permission for the guest. This can be done from the command line on the host with:

VBoxManage sharedfolder add "VM name" --name sharename --hostpath "C:\test"

By adding the option --readonly we can restrict these for read-only access. Use the --transient option if you only want the shares to appear in the present session but not persistent for following sessions. There are some limitations for shared folders (see this question for details). If prerequisites are met we may mount these shared folders manually by running the following commands in the guest:

mkdir /home/<user>/vboxshare
sudo mount -t vboxsf -o uid=1000,gid=1000 sharename /home/<user>/vboxshare  

Of course, we can also use different mount options to mount as read/only or mount with read access only to root.

Auto-Mount through Virtual Box Manager

In case we enabled auto-mounting on creating a shared folder from the Virtual Box Manager those shared folders will automatically be mounted in the guest with mount point /media/sf_<name_of_folder>. To have access to these folders users in the guest need to be a member of the group vboxsf.

sudo usermod -aG vboxsf userName

The user will need to logout and log back in to see their new group added.

Source and further reading: Virtual Box User Manual

  • 12
    i set a shared folder in the GUI and also set the Auto-Mount. restarted the VM, went to /media but still nothing there – amphibient Aug 19 '13 at 20:11
  • 2
    @amphibient @laike9m I had to restart the VM to see the folder in /media/ – David_G Apr 4 '16 at 0:53
  • 5
    This command, suggested by another answer here, seems clearer and has better output: sudo adduser your_username vboxsf – Jordan Brough Aug 14 '17 at 14:28
  • 1
    @JordanBrough: totally correct - all ways lead to Rome. You can even use a graphical frontend users-admin. The command was edited in by another user. – Takkat Aug 14 '17 at 17:40
  • Thanks for your answer.. in the command you mentioned above sudo mount -t vboxsf -o uid=1000,gid=1000 share /home/<user>/vboxshare, I don't see a mention of the sharename, which is used when creating the shared folder using VBoxManage sharedfolder add "VM name" --name "sharename" --hostpath "C:\test". If there are multiple shared folders.. how does VirtualBox know which sharename to associate the folder vboxshare with? Or do you mean that sharename should be the same as vboxshare? – alpha_989 Jul 2 at 16:44

Actually there is an easy way to do that:

  1. Install the extension pack for VirtualBox.
  2. Restart your virtual machine
  3. Install Guest Additions in your guest Ubuntu

    • You can mount the ISO which is on /media or press Left Control+D
  4. Reboot

  5. Try to access /media/sf_your_shared_folder_name. If you still don't have access, that means you don't belong to the vboxsf group, as Nilo said. This command will solve your problem:

    sudo adduser your_username vboxsf
    
  6. Log out and log in again to apply changes of adduser. See comments by kol and atcold below.

  7. If you still can not see the shared folder, you have to mount it. You can activate automount for the shared folder in the options of VirtualBox Manager.
  8. Restart again.
  • 7
    THIS. I wasn't in the user group. Seems like that should have been automated by the gest additions or at least stated clearly. – AwokeKnowing Jun 17 '14 at 0:39
  • 1
    seems the problem for me is that my username is not root. That should have been mentioned somewhere – AwokeKnowing Jun 17 '14 at 0:47
  • 21
    IMPORTANT: You must reboot the computer after calling adduser. – kol Jan 17 '15 at 15:04
  • 3
    @kol No, you need only to log out and log in again. – Atcold Sep 12 '15 at 23:41
  • @Atcold Logging out and in again adds the group to the current user (session) but did not trigger auto-mount of the shared folder in my case. Only a reboot did. – scai Oct 30 '16 at 12:27

First, please make sure you have installed the Guest Additions

  1. Start your VM

  2. Devices > Insert Guest Additions CD image... Insert Guest Additions CD image...

  3. Mount the CD:

    sudo mount /dev/cdrom /media/cdrom
    
  4. Install the necessary packages:

    sudo apt-get install make gcc linux-headers-$(uname -r)
    
  5. Install:

    sudo /media/cdrom/VBoxLinuxAdditions.run
    

Second, add your user to the group 'vboxsf':

~$ echo $USER; 
ahmed
~$ sudo usermod -a -G vboxsf ahmed

Reboot

Know that the label of your shared folder is lpi (for example):

Edit shared folder

Prepend sf_ to the label. Then, you will find your shared folder under /media/sf_lpi

Finally, you can also create a link to your home. For example:

ln -s /media/sf_lpi /home/ahmed/lpi

:)

  • Can I use a shared folder from an Ubuntu VM without a harddisk image, but with only a Live CD image? Basically I am trying to add two CD drives, one holding the Ubuntu Live CD, and the other one holding the VBGuestAdditions.iso, and start the machine, then install VBGuestAdditions in the loopback root, and then I would like to be able to access a shared folder. – Sorin Postelnicu Sep 27 '17 at 15:37
  • Also, is there a way to see the shared-folder before mounting, such as by using a command like lsblk or something? – Sorin Postelnicu Sep 27 '17 at 15:46
  • When I try to do "sudo mount -t vboxsf mysharename mysharemountpoint", I always get: "/sbin/mount.vboxsf: mounting failed with the error: No such device" – Sorin Postelnicu Sep 27 '17 at 15:51

Add the shared folder to the virtual machine using vBox graphical interface Make sure to select automount and make permanent

Login to the virtual machine using a root account

Check vboxsf group exists

~$ grep vboxsf /etc/group
vboxsf:x:125:

Check user is not already in vboxsf group

~$ id nilo
uid=1000(nilo) gid=1000(nilo) groups=1000(nilo),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare)

Add user nilo to vboxsf group

~$ sudo usermod -a -G vboxsf nilo

Check again user groups

~$ id nilo
uid=1000(nilo) gid=1000(nilo) groups=1000(nilo),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),124(sambashare),125(vboxsf)

Reboot and login as nilo

Shared folder is now accesible in /media/sf_dropbox (dropbox is the name I gave to the share)

  • Reboot worked for me! – Tarik Sep 16 '17 at 7:42

Share a folder between Host OS-> Windows and Guest OS ->Ubuntu(Virtual box)

Step 1 Install install Guest Additions from VirtualBox’s menu go to Devices->Install Guest Additions This will mount a virtual CD on your /media/cdrom. As root user Open this /media/cdrom added folder using Open with terminal option(Right click with mouse).

Step 2 Run the program VBoxLinuxAdditions.run. When the program completes reboot your VirtualBox.

$ sudo ./VBoxLinuxAdditions.run

Step 3 Create a shared folder. From Virtual menu go to Devices->Shared Folders then add a new folder in the list, this folder should be the one in windows which you want to share with Ubuntu(Guest OS). Make this created folder auto-mount. Example -> Make a folder on Desktop with name Ubuntushare and add this folder.

Step 4 When done with you shared folder(s) specification, we mount folder from Ubuntu(Guest OS). Create a mountpoint, this a directory in Ubuntu that will share files with the shared folder from Windows. Run this to create a directory in Ubuntu

$ sudo mkdir ~/Desktop/windowsshare

Step 5 With your mountpoint created you can now mount the shared folder. Run this command to share the folder:

$ sudo mount -t vboxsf Ubuntushare ~/Desktop/windowsshare

Ubuntushare is the name of folder we add in VirtualBox Devices section this folder is in Windows(Host OS). ~/Desktop/windowsshare is the directory in Ubuntu(Guest OS)

CONGRATULATIONS-> Now you can share the files between Windows and Ubuntu. Try adding any file in windows(Host OS) Ubuntu share folder now check Ubuntu(Guest OS) windowsshare directory the file will be reflected.

My Article

Shared folder b/w windows and ubuntu

  1. Install the program called 'Programs and Group' from the Software Center
  2. Choose the current user and click on Manage Groups
  3. Choose vboxsf and click 'Add'
  4. Reboot
  • Could not find in software center Mint 17.1 but menu had users and groups, is this it?? – russ_hensel Sep 26 '16 at 14:55
  • @russ_hensel Mint is not an official Ubuntu flavour. Ask your question at Unix & Linux instead. – wjandrea Nov 28 '16 at 0:49
  1. Create a dir where you're going to mount this, like mkdir docs

  2. Install Guest Additions into the guest Ubuntu machine.

  3. Shutdown the Ubuntu guest, then configure it.

  4. In Storage, setup your shared folder and make a note of what you set as the name in the second field. For example "crazy". Check the box for Auto-Mount.

  5. Boot the Ubuntu guest.

  6. Like you said, it won't actually be accessible. (This is the key part of your question.) You'll find instead it is present at /media/sf_crazy, where 'crazy' is the name you gave it. And, it will also be present in your home dir at ~/crazy.

  7. You now need to take one more step to actually mount it:

    sudo mount -o uid=1000,gid=1000 -t vboxsf ~/crazy ~/docs
    

Perform these steps after installing Guest Additions. For Windows 10 host environment, on the Windows machine I had to share folders.

  1. Right click folder to share
  2. Select "Share with"
  3. Select "Specific People"
  4. Chose Everyone, read/write options
  5. On client Ubunto machine run command: sudo adduser xxxxxxx vboxsf

where xxxxxx is your user account name. Log out and log back in to Ubuntu.

protected by Elder Geek Sep 28 '17 at 20:19

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.