I have the following error:
Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. For context, the command attempted was:
id -u vagrant
The error output from the command was:
id: 'vagrant': no such user
So I tried to search on for the solution. I have seen a lot of people say that a special vbguest vagrant plugin is needed then run vagrant and in the ssh additional vbguest should be modified.
So I did the following steps:
$ vagrant plugin install vagrant-vbguest
This then added the plugin:
Installing the 'vagrant-vbguest' plugin. This can take a few minutes... Installed the plugin 'vagrant-vbguest (0.13.0)'!
$ vagrant up
$ vagrant ssh
$ sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
This does not print out any messages, so I think it is correct.
Then I reloaded the vagrant.
$ vagrant reload
And I got again the error unfortunately.
$ vagrant reload
==> Project-Yii: Attempting graceful shutdown of VM...
==> Project-Yii: Clearing any previously set forwarded ports...
==> Project-Yii: Clearing any previously set network interfaces...
==> Project-Yii: Preparing network interfaces based on configuration...
Project-Yii: Adapter 1: nat
Project-Yii: Adapter 2: hostonly
==> Project-Yii: Forwarding ports...
Project-Yii: 22 (guest) => 2222 (host) (adapter 1)
==> Project-Yii: Running 'pre-boot' VM customizations...
==> Project-Yii: Booting VM...
==> Project-Yii: Waiting for machine to boot. This may take a few minutes...
Project-Yii: SSH address: 127.0.0.1:2222
Project-Yii: SSH username: ubuntu
Project-Yii: SSH auth method: password
Project-Yii: Warning: Remote connection disconnect. Retrying...
==> Project-Yii: Machine booted and ready!
[Project-Yii] GuestAdditions 5.1.14 running --- OK.
==> Project-Yii: Checking for guest additions in VM...
==> Project-Yii: Setting hostname...
==> Project-Yii: Configuring and enabling network interfaces...
==> Project-Yii: Mounting shared folders...
Project-Yii: /app => /home/xxx/Projects/project-shop
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:
id -u vagrant
The error output from the command was:
id: 'vagrant': no such user
Of course I tried that scenario when I deleted the vagrant and run again vagrant up and reload from the sketch, but the same problem.
Yes, I have tried with the vagrant-hostmanager
plugin too (which is in the yii documentation, but the same problem)
Here is my vagrant file, maybe it can be useful you.
require 'yaml'
require 'fileutils'
domains = {
frontend: 'frontend-yii.com',
backend: 'backend-yii.com'
}
config = {
local: './vagrant/config/vagrant-local.yml',
example: './vagrant/config/vagrant-local.example.yml'
}
# copy config from example if local config not exists
FileUtils.cp config[:example], config[:local] unless File.exist?(config[:local])
# read config
options = YAML.load_file config[:local]
# check github token
if options['github_token'].nil? || options['github_token'].to_s.length != 40
puts "You must place REAL GitHub token into configuration:\n/project-yii/vagrant/config/vagrant-local.yml"
exit
end
# vagrant configurate
Vagrant.configure(2) do |config|
# select the box
config.vm.box = 'ubuntu/xenial64'
# should we ask about box updates?
config.vm.box_check_update = options['box_check_update']
config.vm.provider 'virtualbox' do |vb|
# machine cpus count
vb.cpus = options['cpus']
# machine memory size
vb.memory = options['memory']
# machine name (for VirtualBox UI)
vb.name = options['machine_name']
end
# machine name (for vagrant console)
config.vm.define options['machine_name']
# machine name (for guest machine console)
config.vm.hostname = options['machine_name']
# network settings
config.vm.network 'private_network', ip: options['ip']
# sync: folder 'yii2-app-advanced' (host machine) -> folder '/app' (guest machine)
config.vm.synced_folder './', '/app', owner: 'vagrant', group: 'vagrant'
# disable folder '/vagrant' (guest machine)
config.vm.synced_folder '.', '/vagrant', disabled: true
# hosts settings (host machine)
config.vm.provision :hostmanager
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
config.hostmanager.ignore_private_ip = false
config.hostmanager.include_offline = true
config.hostmanager.aliases = domains.values
# provisioners
config.vm.provision 'shell', path: './vagrant/provision/once-as-root.sh', args: [options['timezone']]
config.vm.provision 'shell', path: './vagrant/provision/once-as-vagrant.sh', args: [options['github_token']], privileged: false
config.vm.provision 'shell', path: './vagrant/provision/always-as-root.sh', run: 'always'
# post-install message (vagrant console)
config.vm.post_up_message = "Frontend URL: http://#{domains[:frontend]}\nBackend URL: http://#{domains[:backend]}"
end
My vagrant version is 1.9.1 and my Virtualbox version is 5.1.14 r112924 (the latest)
Does somebady have the same problem? Which another steps should I take to solve this problem?