smb:// would be to NFS mount your shares over a private network interface running the virtio-net drivers. Once mounted, inside the host OS, you'd rsync in the data with:
rsync /some/mount/point /home/myuser/
Or whatever you wanted.
Someone already mentioned Vagrant and, on its own it won't speed up your VirtualBox setup, but it does make doing things like mounting in shares on your Mac via NFS export much, much easier than doing it by hand.
For example, here's a Vagrantfile that ups an Arch Linux installation and mounts your Documents directory on your machine via NFS using virtio drivers to
/documents on the image.
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "losingkeys/arch"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provider "virtualbox" do |vb|
vb.customize ['modifyvm', :id, '--nictype1', 'virtio']
vb.customize ['modifyvm', :id, '--nictype2', 'virtio']
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
vb.memory = 1024
vb.cpus = 2
# Uncomment this to run in not-headless mode
# vb.gui = true
config.vm.synced_folder '.', '/vagrant', type: 'nfs'
config.vm.synced_folder File.join(ENV['HOME'], 'Documents'), "/documents", type: "nfs"
It requires root priveledges to work. You'll need to add:
Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE
to your sudoers file via
visudo for it to work.
Once you've put that Vagrantfile on disk all you have to do is cd to the directory where you saved it and run
vagrant up and you're in business. To connect it's
vagrant ssh or you can uncomment that line I left in there to run it with a display head.
That's the fastest configuration I know of for host/guest I/O with VirtualBox running Linux as a guest OS.