Vagrant - How can I mount the virtualbox shared fo

2019-04-09 22:47发布

问题:

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?

回答1:

It worked with 5.1.18 for me.

https://www.virtualbox.org/wiki/Changelog 5.1.18 fixed the following seemingly relevant issues:

  • Shared Folders: fixed case insensitive filename access (5.1.16 regression; Windows guests only; bug #16549)

  • Shared Folders: fixed access to long paths (5.1.16 regression; Windows guests only; bugs

    14651, #16564)