web-dev-qa-db-fra.com

Erreur vagabonde: impossible de monter des dossiers dans l'invité Linux

J'ai quelques problèmes avec les dossiers partagés Vagrant, mon système de base est le bureau Ubuntu 13.10.

Je ne comprends pas pourquoi j'ai cette erreur est quelque chose qui n'est pas correctement configuré? Est-ce un problème NFS ou des ajouts d'invité Virtualbox? J'ai essayé avec différentes boîtes mais avec le même problème.

Failed to mount folders in Linux guest. This is usually because
    the "vboxsf" file system is not available. Please verify that
    the guest additions are properly installed in the guest and
    can work properly. The command attempted was:

    mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` /vagrant /vagrant
    mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` /vagrant /vagrant

Voici le processus complet après vagrant up:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'u131032'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant_default_1396020504136_46442
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
    default: Error: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
GuestAdditions versions on your Host (4.3.10) and guest (4.2.16) do not match.
 * Stopping VirtualBox Additions
   ...done.
Reading package lists...
Building dependency tree...
Reading state information...
The following packages were automatically installed and are no longer required:
  dkms libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libfontenc1
  libgl1-mesa-dri libglapi-mesa libice6 libllvm3.3 libpciaccess0 libpixman-1-0
  libsm6 libtxc-dxtn-s2tc0 libxaw7 libxcomposite1 libxdamage1 libxfixes3
  libxfont1 libxkbfile1 libxmu6 libxpm4 libxrandr2 libxrender1 libxt6
  x11-common x11-xkb-utils xfonts-base xfonts-encodings xfonts-utils
  xserver-common xserver-xorg-core
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  virtualbox-guest-dkms* virtualbox-guest-utils* virtualbox-guest-x11*
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
After this operation, 11.1 MB disk space will be freed.
(Reading database ... 65615 files and directories currently installed.)
Removing virtualbox-guest-dkms ...

-------- Uninstall Beginning --------
Module:  virtualbox-guest
Version: 4.2.16
Kernel:  3.11.0-18-generic (i686)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

vboxguest.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.11.0-18-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxsf.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.11.0-18-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.


vboxvideo.ko:
 - Uninstallation
   - Deleting from: /lib/modules/3.11.0-18-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod....

DKMS: uninstall completed.

------------------------------
Deleting module version: 4.2.16
completely from the DKMS tree.
------------------------------
Done.
Removing virtualbox-guest-x11 ...
Purging configuration files for virtualbox-guest-x11 ...
Removing virtualbox-guest-utils ...
Purging configuration files for virtualbox-guest-utils ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Reading package lists...
Building dependency tree...
Reading state information...
dkms is already the newest version.
dkms set to manually installed.
linux-headers-3.11.0-18-generic is already the newest version.
linux-headers-3.11.0-18-generic set to manually installed.
The following packages were automatically installed and are no longer required:
  libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libfontenc1 libgl1-mesa-dri
  libglapi-mesa libice6 libllvm3.3 libpciaccess0 libpixman-1-0 libsm6
  libtxc-dxtn-s2tc0 libxaw7 libxcomposite1 libxdamage1 libxfixes3 libxfont1
  libxkbfile1 libxmu6 libxpm4 libxrandr2 libxrender1 libxt6 x11-common
  x11-xkb-utils xfonts-base xfonts-encodings xfonts-utils xserver-common
  xserver-xorg-core
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Copy iso file /usr/share/virtualbox/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
mount: block device /tmp/VBoxGuestAdditions.iso is write-protected, mounting read-only
Installing Virtualbox Guest Additions 4.3.10 - guest version is 4.2.16
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.10 Guest Additions for Linux............
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
Starting the VirtualBox Guest Additions ...done.
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.
An error occurred during installation of VirtualBox Guest Additions 4.3.10. Some functionality may not work as intended.
In most cases it is OK that the "Window System drivers" installation failed.
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Exporting NFS shared folders...
==> default: Preparing to edit /etc/exports. Administrator privileges will be required...
nfsd running
Sudo: /usr/bin/exportfs: command not found
==> default: Mounting NFS shared folders...
==> default: Mounting shared folders...
    default: /vagrant => /home/me/Documents/Work/project/vagrant
Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` /vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` /vagrant /vagrant

Ma configuration de Vagrantfile est:

# -*- mode: Ruby -*-
# vi: set ft=Ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

personalization = File.expand_path("../Personalization", __FILE__)
load personalization

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = $base_box
  config.vm.box_url = $base_box_url

  config.vm.hostname = $vhost + ".dev"

  config.hostsupdater.aliases = ["api." + $vhost + ".dev", "mysql." + $vhost + ".dev"]
  config.hostsupdater.remove_on_suspend = true

  # set auto_update to ture to check the correct 
  # additions version when booting the machine
  config.vbguest.auto_update = true
  config.vbguest.auto_reboot = true

  config.vm.network :private_network, ip: $ip

  config.vm.synced_folder "../", "/srv/www/vhosts/" + $vhost + ".dev", type: "nfs"

  config.vm.provider :virtualbox do |v|
    v.customize ["modifyvm", :id, "--memory", 2048]
    v.customize ["modifyvm", :id, "--cpus", "1"]
    v.customize ["modifyvm", :id, "--cpuexecutioncap", "100"]
    v.customize ["modifyvm", :id, "--ioapic", "off"]
    v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end

  config.vm.provision "Shell" do |s|
    s.path = "vagrant-bootstrap.sh"
    s.args = $vhost + " " + $mysql_password + " " + $application_database
  end
end

Le fichier de personnalisation est:

# Name of the vhost to create
$vhost = "project"

# Use the Ubunut 32bit or 64bit
$base_box_url = "http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-i386-vagrant-disk1.box"

# VM IP
$ip = "192.168.7.7"

# Base box name
$base_box = "u131032"

# MySQL
$mysql_password = "admin"
$application_database = "project"

Les plugins suivants sont activés dans Vagrant:

$ vagrant plugin list
vagrant-hostsupdater (0.0.11)
vagrant-login (1.0.1, system)
vagrant-share (1.0.1, system)
vagrant-vbguest (0.10.0)
276
Ek Kosmos

Le plugin vagrant-vbguest GitHubRubyGems résolu mon problème:

$ vagrant plugin install vagrant-vbguest

Sortie:

$ vagrant reload
==> default: Attempting graceful shutdown of VM...
...
==> default: Machine booted and ready!
GuestAdditions 4.3.12 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Exporting NFS shared folders...
==> default: Preparing to edit /etc/exports. Administrator privileges will be required...
==> default: Mounting NFS shared folders...
==> default: VM already provisioned. Run `vagrant provision` or use `--provision` to force it

Assurez-vous simplement que vous utilisez la dernière version de VirtualBox

354
karlingen

J'ai trouvé cette question traitée ici questions vagabondes. Deux façons de le faire:

  1. Exécutez ceci sur l'invité (c'est-à-dire après que vous avez ssh dans vbox via vagrant ssh)

    Sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
    

    Ensuite, exécutez vagrant reload pour monter correctement les dossiers.

  2. Comme @klang l'a souligné, mettez à jour le fichier VBoxGuestAdditions.iso sur votre Mac:

    wget https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.11-93070.iso‌​
    Sudo cp VBoxGuestAdditions_4.3.11-93070.iso /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso
    

MISE À JOUR (16mai2014)

Puisque l'iso n'est plus disponible, vous pouvez utiliser celui 4.3.12 ( http://dlc.Sun.com.edgesuite.net/virtualbox/4.3.12/VBoxGuestAdditions_4.3.12.iso )

remarque: la binaire vbox4.3.12 pour os X n'est pas disponible pour le moment.

231
kenzie

Je suis arrivé à cette page en cherchant le même message d'erreur. Pour moi, la cause était différente: j'avais exécuté un yum update sur le système qui avait installé un nouveau noyau. Les ajouts d'invités étaient obsolètes, il ne pouvait donc pas les charger.

Je les ai reconstruit avec

Sudo /etc/init.d/vboxadd setup 

Et un vagrant reload plus tard, mon invité était de nouveau opérationnel.

Je ne fais que l'ajouter ici au cas où quelqu'un d'autre arriverait de la même façon que moi.

Edit (Selon le commentaire de KCD):
Il est possible que vous obteniez une erreur en disant:

Les en-têtes du noyau en cours d'exécution sont introuvables.

Ceci peut être résolu en installant kernel-devel (yum install kernel-devel)

49
Blizz

Fixer étape par étape:

Si vous n'avez pas le plugin vbguest, installez-le:

$ vagrant plugin install vagrant-vbguest

Run vagabond

C'est montrer une erreur.

$ vagrant up

Connexion sur la VM

$ vagrant ssh

Fix!

Dans l'invité (VM connecté).

$ Sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions

De retour sur l'hôte, rechargez Vagrant

$ vagrant reload
28
Dadaso Zanzane

Mise à jour en février 2016

Cela m'a pris des heures pour résoudre indépendamment. Oui, ce problème persiste avec les dernières installations de Vagrant et Virtual Box:

△  vagrant -v
Vagrant 1.8.1
△  vboxmanage -v
5.0.14r105127

Les symptômes pour moi étaient des messages quelque chose comme:

Checking for guest additions in VM... The guest additions on this VM do not match the installed version of VirtualBox!

suivi d'un échec de montage des lecteurs NFS.

1). Installez le plugin vagrant-vbguest.

Selon la version de Vagrant que vous utilisez, exécutez l'une des commandes suivantes:

# For vagrant < 1.1.5
$ vagrant gem install vagrant-vbguest

# For vagrant 1.1.5+
$ vagrant plugin install vagrant-vbguest

Ensuite, faites vagrant halt, suivi de vagrant up - il y a des chances que vous ayez toujours des problèmes.

2) ssh dans votre invité et configurez un lien symbolique vers la version correcte de Guest Additions (ici, 5.0.14).

$ vagrant ssh

$ Sudo ln -s /opt/VBoxGuestAdditions-5.0.14/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
$ exit

$ vagrant reload

Vous devriez être tout bon. Par défaut, le lecteur monté sur l'invité est à /vagrant

Commentaire final:

SI vous avez toujours des problèmes liés au montage de disques NFS, voici une solution de contournement qui a fonctionné pour moi. J'ai eu un vagrantfile avec config quelque chose comme:

Supprimez simplement les informations de montage type et réduisez les paramètres de mount_options pour qu'ils fonctionnent de manière universelle. Vagrant choisira désormais automatiquement la meilleure option de dossier synchronisé pour votre environnement.

14
arcseldon

Installez le plugin vagrant-vbguest en lançant cette commande:

vagrant plugin install vagrant-vbguest
12
ngonidzashe

J'ai rencontré le même problème avec Centos 7, je suppose en raison d'un noyau obsolète associé à une version mise à jour de VirtualBox. D'après la mise à jour de Blizz, voici ce qui a fonctionné pour moi (le plug-in vagrant-vbguest est déjà installé):

vagrant ssh
Sudo yum -y install kernel-devel
Sudo yum -y update
exit
vagrant reload --provision
6
user3006381

Pour moi, avec VBoxGuestAdditions 5.1.20, le problème était que /sbin/mount.vboxsf indiquait le mauvais emplacement.

Sudo ln -sf /opt/VBoxGuestAdditions-5.1.20/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf

corrigé pour moi

5
bartv

Comme mentionné dans numéro Vagrant # 3341 , il s’agit d’un bogue Virtualbox n ° 12879 .

Il n'affecte que VirtualBox 4.3.10 et a été complètement corrigé dans 4.3.12.

4
tsusanka

Juste pour référence future, ce problème s'est produit avec moi, avec Vagrant 1.7.4 et VirtualBox 5.0.10 r104061, lorsque j'ai provisionné un dossier partagé dans / et créé un lien symbolique vers mon dossier personnel. Quelque chose comme ça:

/folder
~/folder -> /folder

Apparemment, cette opération n’est pas autorisée par Vagrant pour des raisons de sécurité et renvoie l’erreur décrite.

Je l'ai résolu en fournissant le dossier souhaité directement dans mon répertoire personnel, tel que /home/vagrant/folder.

3
Matheus Portela

Je crois que c’est la réponse la plus à jour à présent et que cela a fonctionné pour moi (Guest Additions Version: 5.0.6, VirtualBox Version: 4.3.16, Ubuntu 14.04 LTS)

https://github.com/mitchellh/vagrant/issues/3341#issuecomment-144271026

En gros, je dis:

Simple and Quick Solution for Failed to mount folders in Linux guest issue.

Add the following line to your Homestead/Vagrantfile:

config.vbguest.auto_update = false
Your Homestead/Vagrantfile should looks like this:

/...

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

   # To avoid install and uninstall VBoxGuessAdditions during vagrant provisioning.
    config.vbguest.auto_update = false

.../
Save it and execute

$ vagrant destroy --force
$ vagrant up
3
psychok7

Dans mon cas, sur une image Ubuntu 16.04 précédemment opérationnelle, l'erreur s'est produite après l'installation de vagrant-vbguest pour une image vagant différente, puis le démarrage de la machine virtuelle Ubuntu. Il a mis à niveau les ajouts d'invités à la version 5.1.20 et, depuis lors, les montages ont commencé à échouer. Mise à jour de la boîte, apt update + upgrade et idem, vbguest installerait la nouvelle version 5.1.20.

Il a été résolu en exécutant manuellement:

Sudo apt-get update
Sudo apt-get install virtualbox-guest-dkms 

Et aussi désactiver le: config.vbguest.auto_update = false pour ce VM (peut ne pas être nécessaire).

2
Nico

Dans la configuration où Windows est un hôte, et Linux est un invité, j'ai trouvé une solution au même problème ailleurs.

Encore une fois, le message d'erreur était "Échec du montage des dossiers dans l'invité Linux. En général, le système de fichiers" vboxsf "n'est pas disponible." (...)

Cela est dû au fait que j'ai commis une erreur en faisant un lien symbolique dans le système invité de/vagrant à/home/vagrant/vagrant. Le fait est que le répertoire/vagrant est un répertoire linux normal qui a un lien symbolique (donc tout va bien), mais lors du démarrage par "vagrant up", il essaie de monter le répertoire windows à cet endroit, et le répertoire windows ne peut pas fonctionner comme un lien symbolique. Windows Host ne prend pas en charge les liens symboliques Linux.

Donc, ce que vous pouvez faire alors, est de ssh en invité, de supprimer le lien symbolique où que vous soyez et de recharger la machine.

Dans ma configuration c'était: Vagrant 1.7.2, VBoxGuestAdditions 4.3.28 et VBox 4.3.28.

1
BartoszK

Nous sommes en 2017. Juste au cas où quelqu'un serait confronté au même problème.

Pour bento/centos-6.7, j'ai eu la même erreur. Cela a été résolu en ajoutant le plugin vagrant-vbguest (0.13.0). c:> vagrant plugin installe vagrant-vbguest

Box url: http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-7.0_chef-provisionerless.box

Cette version centos-7 me donnait la même erreur

Erreur:

==> build: Mounting shared folders...
    build: /vagrant => C:/projects/
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:

mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

Ma configuration:

C:\projects>vagrant -v
Vagrant 1.9.1

C:\projects> vboxmanage -v
5.0.10r104061

C:\projects>vagrant plugin list
vagrant-cachier (1.2.1)
vagrant-hostmanager (1.8.5)
vagrant-hosts (2.8.0)
vagrant-omnibus (1.5.0)
vagrant-share (1.1.6, system)
vagrant-vbguest (0.13.0)
vagrant-vbox-snapshot (0.0.10)

Comme j'ai déjà le plugin vagrant-vbguest, il tente de mettre à jour VBoxGuestAdditions dans centos-7 lorsqu'il voit que différentes versions de VBGuestAdditions sont installées dans l'hôte 5.0.10 et l'invité 4.3.20.

J'ai même vérifié que le lien symbolique existe.

[root@build VBoxGuestAdditions]# ls -lrt /usr/lib
lrwxrwxrwx.  1 root root   53 Jan 14 12:06 VBoxGuestAdditions -> /opt/VBoxGuestAdditions-5.0.10/lib/VBoxGuestAdditions
[root@build VBoxGuestAdditions]# mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
/sbin/mount.vboxsf: mounting failed with the error: No such device

Cela n'a pas fonctionné comme suggéré par l'utilisateur3006381

vagrant ssh
Sudo yum -y install kernel-devel
Sudo yum -y update
exit
vagrant reload --provision

Solution pour centos-7: telle que donnée par psychok7 travaillée

Mise à jour automatique désactivée. config.vbguest.auto_update = false Alors vagrant destroy --force et vagrant up

Résultat:

javareport: Guest Additions Version: 4.3.20
javareport: VirtualBox Version: 5.0
==> javareport: Setting hostname...
==> javareport: Configuring and enabling network interfaces...
==> javareport: Mounting shared folders...
javareport: /vagrant => C:/projects

C:\project>
1
samarjit samanta

à présent, le montage fonctionne sur certaines machines (ubuntu) et d'autres pas (centos 7), mais l'installation du plugin le résout

vagrant plugin install vagrant-vbguest

sans rien faire de plus, juste

vagrant reload
1
George Mogilevsky

(de mon commentaire ci-dessus)

Suivre le problème jusqu’à ses racines:, en particulier la partie dans les commentaires qui dit ceci:

wget https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_4.3.11-93070.iso‌​ 
Sudo cp VBoxGuestAdditions_4.3.11-93070.iso /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso

Après cela, je fais comme d’habitude avec toutes mes machines virtuelles (et leurs fichiers Vagrant actuels, bien sûr)

Quelque chose ne va pas quand vous devez faire quelque chose dans une machine virtuelle fraîchement créée.

1
klang

Cela semble être dû à une incompatibilité avec le plugin vbguest vagrant et les dernières versions de vagrant. Il essaie de mettre à jour les ajouts d'invité et ne parvient pas à le faire complètement/correctement.

0
Hickeroar

J'utilisais Vagrant avec VirtualBox 5.1.X et devais passer à VirtualBox 5.0.40 et installer le plugin vbguest pour résoudre ce problème.

Mes pas étaient:

  • Désinstallez VirtualBox 5.1.X
  • Installer Vagrant 5.0.4
  • Redémarrer ma machine
  • Exécutez vagrant up pour mon vagabond. Ça va échouer.
  • Exécutez vagrant plugin install vagrant-vbguest pendant que ma VM est en cours d'exécution, pour installer le plug-in vagrant. Ceci gère la synchronisation des versions de VirtualBox Guest entre l'hôte et l'invité.
  • Exécutez vagrant reload pour recharger ma machine virtuelle
  • La magie!
0
Brad Parks

Votre journal se plaint de ne pas trouver exportfs: Sudo: /usr/bin/exportfs: command not found

Exportfs rend les répertoires locaux disponibles pour le montage des clients NFS.

0
kenzie

Essayez comme ça:

vagrant plugin install vagrant-vbguest

Dans Vagrantfile, ajoutez:

config.vbguest.iso_path = "http://download.virtualbox.org/virtualbox/VERSION/VBoxGuestAdditions_VERSION.iso"
config.vbguest.auto_update = false
config.vbguest.installer_arguments = %w{--nox11 -- --force}

Courir:

vagrant vbguest --do install -f -b

vagrant reload
0
user8034098