250

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?

1
  • Note that you cannot share symlinks! Sep 3, 2018 at 10:23

10 Answers 10

225

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 $USER

The guest will need to restart to have the new group added.

Source and further reading: Virtual Box User Manual

12
  • 19
    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, 2013 at 20:11
  • 2
    @amphibient @laike9m I had to restart the VM to see the folder in /media/
    – David_G
    Apr 4, 2016 at 0:53
  • 9
    This command, suggested by another answer here, seems clearer and has better output: sudo adduser your_username vboxsf Aug 14, 2017 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, 2017 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, 2018 at 16:44
149

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
  1. Reboot

  2. 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. Run this command in the virtual machine:

     sudo adduser your_vm_username vboxsf
    
  3. Log out and log in again to apply changes of adduser. If you still can not access the folder, try rebooting.

  4. 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.

  5. Restart again.

11
  • 9
    THIS. I wasn't in the user group. Seems like that should have been automated by the gest additions or at least stated clearly. Jun 17, 2014 at 0:39
  • 1
    seems the problem for me is that my username is not root. That should have been mentioned somewhere Jun 17, 2014 at 0:47
  • 25
    IMPORTANT: You must reboot the computer after calling adduser.
    – kol
    Jan 17, 2015 at 15:04
  • 5
    @kol No, you need only to log out and log in again.
    – Atcold
    Sep 12, 2015 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, 2016 at 12:27
109

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

:)

3
  • 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. Sep 27, 2017 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? Sep 27, 2017 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" Sep 27, 2017 at 15:51
24

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)

1
  • Reboot worked for me!
    – Tarik
    Sep 16, 2017 at 7:42
17

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

7

As of now (version 6.0.10 of VirtualBox) there are make permanent and auto-mount options for shared folder, also mount point (At) in GUI of virtualbox. For me the following worked:

  1. On guest Ubuntu: sudo apt-get install virtualbox-guest-utils
  2. Add shared folder in GUI of VirtualBox.
  3. Restart guest OS

Folder on mount point specified in GUI was created automatically and ls showed files located on host Windows PC.

2
  • 1
    Running the sudo command created vboxsf inside of my Virtualbox! Jul 1, 2020 at 20:47
  • Thank you. After updating Ubuntu, my shared folders showed up empty. After installing this package and re-adding them they showed what they were meant to. Jan 24, 2022 at 13:12
6

Late to the party, but here is the solution that worked well for me:

  1. Make sure that you have Guest Additions installed

    • And all the necessary packages: linux-headers, build-essential, gcc, make...
  2. Add Shared folder

    • In VirtualBox Manager select your Virtual Machine (VM)
    • Settings >> Shared Folders >> Add new shared folder
    • Folder path: path to the folder to be shared with your VM
    • Folder name: name of the shared folder to be displayed in your VM
    • Tick the Auto-mount option, so that it automatically mounts the folder on VM startup
  3. After adding a shared folder, your folder appears in your VM as sf_<folder_name>

    • Problem is that you cannot access it unless you are logged in as root user
  4. Give permissions to the shared folder. Open terminal (Ctrl+Alt+T) and enter these commands:

    sudo usermod -a -G vboxsf <username>
    sudo chown -R <username>:users /media/sf_<folder_name>
    
    • where <username> - your user name, <folder_name> - shared folder name
    • What these commands do is:
      1. adds a user to vboxsf group
      2. changes the ownership of the shared folder (it's all files and subdirectories) to the user
  5. Restart your VM

1
  • 1
    This worked perfectly in VirtualBox 6.1.32 with an Ubuntu 20.04.3 LTS guest VM.
    – dan
    Jan 31, 2022 at 16:11
3
  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
2
  • Could not find in software center Mint 17.1 but menu had users and groups, is this it?? Sep 26, 2016 at 14:55
  • @russ_hensel Mint is not an official Ubuntu flavour. Ask your question at Unix & Linux instead.
    – wjandrea
    Nov 28, 2016 at 0:49
2
  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
    
1

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 Ubuntu machine run command: sudo adduser xxxxxxx vboxsf

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

You must log in to answer this question.

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