Skip to content

Instantly share code, notes, and snippets.

@marcosricardoss
Forked from magnetikonline/README.md
Created March 3, 2023 15:44
Show Gist options
  • Save marcosricardoss/9933d280464c8e463af708f3462fd559 to your computer and use it in GitHub Desktop.
Save marcosricardoss/9933d280464c8e463af708f3462fd559 to your computer and use it in GitHub Desktop.
Install VirtualBox 6.1/6.0/5.2/5.1 guest additions on Ubuntu server guest.

Install VirtualBox guest additions onto Ubuntu server guests

Have tested these steps successfully with Ubuntu 18.04LTS and 16.04LTS guests using VirtualBox 6.1, 6.0, 5.2 and 5.1 as host.

Install steps

  • 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 installed VBoxService 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.

Mount with guest/host permissions matched

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 and uid/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 and SHARE_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 inserting UMASK, UID, GID and SHARE_NAME:

     SHARE_NAME /path/to/share vboxsf umask=UMASK,uid=UID,gid=GID 0 0
    
  • Remount all file systems

     $ sudo mount -a
  • All done.

Allow symlink creation for shared folders

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

Reference

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment