Note
The following steps have been successfully tested with Ubuntu guests of:
24.04LTS
22.04LTS
18.04LTS
16.04LTS
using VirtualBox editions of 7.0
, 6.1
, 6.0
, 5.2
and 5.1
as host.
- Install steps
- Mount with guest/host permissions matched
- Allow symlink creation for shared folders
- Reference
-
Create Ubuntu server instance under VirtualBox (obviously).
-
Start VM, goto Devices - Insert Guest Additions CD image to mount the ISO image.
-
From the terminal, run the following commands:
$ sudo su $ apt install gcc make $ mkdir --parents /media/cdrom $ mount /dev/cdrom /media/cdrom $ /media/cdrom/VBoxLinuxAdditions.run $ reboot
-
After reboot:
$ modinfo vboxguest $ sudo usermod --append --groups vboxsf -- "$USER" $ cat /etc/group | grep "$USER"
-
Host shares should now be mounted in Ubuntu guest under
/media
via the installedVBoxService
service, set to start on system boot-up. -
All done.
Note: the above steps can be repeated on an existing VM image for guest addition upgrades, VBoxLinuxAdditions.run
will handle the uninstall and reinstall process automatically.
By default with auto mounted shares, VirtualBox will set an interesting set of ownership and file/directory permissions for the guest which (for me at least) is sub-optimal.
To correct this behavior and correctly mirror permissions between host and guest we can do the following:
-
Shut down the guest (if not already) and ensure "Auto-mount" is disabled.
-
Restart the guest.
-
From the shell, determine the
umask
anduid/gid
of the host user:$ umask 0022 $ id uid=1000(USERNAME) gid=1000(USERNAME) groups=1000(USERNAME),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare)
-
Now mount the share as follows, inserting
UMASK
,UID
,GID
andSHARE_NAME
:$ mkdir --parents /path/to/share $ sudo mount.vboxsf -o umask=UMASK,uid=UID,gid=GID SHARE_NAME /path/to/share
-
If this works, we can now add a permanent entry to
/etc/fstab
, again insertingUMASK
,UID
,GID
andSHARE_NAME
:SHARE_NAME /path/to/share vboxsf umask=UMASK,uid=UID,gid=GID 0 0
-
Remount all file systems
$ sudo mount -a
-
All done.
By default symlink creation by a VirtualBox guest against a shared/host filesystem is not allowed. To unlock run the following:
$ vboxmanage setextradata VBOX_GUID VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARED_FOLDER_NAME 1
A list of active/valid VBOX_GUID
's can be returned via:
$ vboxmanage list vms
or you could just mount the cd in and do ./autorun.sh inside that dir