web-dev-qa-db-fra.com

Erreur de vagabondage: impossible de monter les dossiers partagés de VirtualBox (Guest Additions, vboxsf)

Le problème

J'ai installé Vagrant sur Windows 10 pour pouvoir créer un environnement de développement local personnel sur une machine virtuelle. D'après tout ce que j'ai lu sur Vagrant, je peux même mettre en place plusieurs systèmes et tester la communication entre eux avec le transfert de port NAT. Mais d’abord, je veux simplement créer une machine virtuelle d’environnement de développement avant d’aller trop loin avec le reste.

J'ai installé VirtualBox, Vagrant, PuTTY et PuTTYGen, conformément au didacticiel de SitePoint: https://www.sitepoint.com/getting-started-vagrant-windows/ . Ensuite, j'ai créé un dossier de projet vagrant sur le lecteur C:, ai vagrant init, supprimé la Vagrantfile et enfin, vagrant init ubuntu/trusty64. Puis j'ai fait vagrant up, mais le processus a échoué avec l'erreur suivante:

Vagrant n'a pas pu monter les dossiers partagés de VirtualBox. Ceci est généralement parce que le système de fichiers "vboxsf" n'est pas disponible. Ce système de fichiers est mis à disposition via VirtualBox Guest Additions et le module de noyau . Veuillez vérifier que ces ajouts d'invité sont correctement installés dans le client. Ce n’est pas un bug dans Vagrant et est généralement causé par une erreur Boîte vagabonde. Pour le contexte, la commande tentée était:

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

La sortie d'erreur de la commande était:

: Aucun fichier ou répertoire de ce nom

Voici une capture d'écran de ma ligne de commande Windows:

 Screenshot of Vagrant/VirtualBox error

Et voici une version texte:

C:\vagrant\sitepoint-test-2017-02-05>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/trusty64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/trusty64' is up to date...
==> default: A newer version of the box 'ubuntu/trusty64' is available! You currently
==> default: have version '20160602.0.0'. The latest is version '20170202.0.0'. Run
==> default: `vagrant box update` to update.
==> default: Setting the name of the VM: sitepoint-test-2017-02-05_default_1486399403587_55255
==> 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: Forwarding ports...
    default: 22 (guest) => 2222 (Host) (adapter 1)
==> 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: Warning: Remote connection disconnect. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/vagrant/sitepoint-test-2017-02-05
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:

: No such file or directory

Ma configuration

OS: Microsoft Windows [Version 10.0.14393]
VirtualBox Version: 4.3.10 r93012
GuestAdditions Version: ???
Vagrant Version: 1.9.1 (Latest)
PuTTY Version: 0.67
PuTTYGen Version: 0.67

Plugins et extensions installés

Vagrant:
- vagrant-share (1.1.6, system)
- vagrant-vbguest (0.13.0)

Ce que j'ai déjà essayé

Ce post semblait le plus prometteur dans mes recherches. 

Malheureusement, aucune des solutions proposées, ni aucun des liens fournis n'a résolu le problème. J'ai déjà essayé pas mal de choses, mais je ne suis pas un administrateur système (ce qui, je suppose, est l'ensemble des compétences dont vous auriez besoin pour résoudre ce problème). Il était particulièrement troublant de constater que nombre des "solutions" de 2013/2014, plus récemment signalées, ne fonctionnent plus. Ces solutions parlent de quelque chose à voir avec les liens symboliques qui ne fonctionnent pas, l'installation de plugins comme vagrant-vbguest et de quelque chose à propos des ajouts de vbox qui ne correspondent pas à quelque chose. Je ne comprends pas vraiment tout cela, mais j'ai fait de mon mieux. Voici ce que j'ai déjà essayé et qui ne l'a pas encore résolu:

  1. vagrant plugin install vagrant-vbguest. Vagrant indique que le plug-in est installé, mais je reçois la même erreur sur vagrant up.

  2. Liste de liens que j'ai lus lors de mes recherches sur ce problème et qui ne fournissaient aucune solution efficace.

Mes questions

  1. Je soupçonne que le problème est avec VirtualBox, pas Vagrant. Est-ce vrai?

  2. Comment puis-je résoudre ce problème afin que je puisse continuer avec le tutoriel?

  3. Il semble y avoir eu une baisse drastique des réponses aux questions vagabondes sur Stack Overflow depuis 2014 environ. Quelle en est la raison? Vagrant/VirtualBox n'est-il plus considéré comme une "meilleure pratique"? Existe-t-il une meilleure solution pour que les utilisateurs ignorent les questions vagabondes?

Encore une fois, je ne suis pas un administrateur système, mais je suis techniquement avisé et capable de suivre des instructions techniques.

Ce problème est résolu dans VirtualBox 5.1.18.

8
chaitan64arun

Vous pouvez rétrograder VirtualBox ou éditer la ligne dans le fichier:

Sur ma configuration, il s’agissait de la ligne 206 de:

C:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.9.2\lib\vagrant\util\platform.rb

sur ma machine hôte.

Je l'ai fait et cela fonctionnait bien sur Windows 10! J'aimerais ajouter ce que j'ai fait avec la ligne 206:

Avant de modifier: "\\? \" + Path.gsub ("/", "\")

Après édition: path.gsub ("/", "\")

28
Anders
vagrant plugin install vagrant-vbguest

Cela ne fonctionne pas pour moi, il semble être incompatible avec vagrant 1.9.2, j'ai désinstallé la dernière version de virtual box (5.1.16) et installé la version 5.1.12 avec la dernière version de vagrant 1.9.2 et Homestead ça marche pour moi.

24
Daniel Carr

Guest Additions est incompatible avec la version de VirtualBox. La mise à jour automatique des ajouts d'invité VirtualBox résoudra probablement le problème lié:

vagrant plugin installer vagrant-vbguest

J'ai exprerienced ce problème avec ces pile:

  • Windows 10
  • Oracle VirtualBox 5.1.16
  • Vagabond 1.9.2
  • config.vm.box = "hashicorp/precise64"
11
YUSUF YILDIZ

Il peut y avoir plusieurs causes:

  1. La version de l'addition d'invité ne correspond pas à la version de VirtualBox. Pour cela, vous pouvez mettre à jour la version de l'addition d'invité en exécutant vagrant plugin install vagrant-vbguest.
  2. Vous rencontrez un bogue de vagrant avec NFS sur Windows: devrait être corrigé, alors essayez de mettre à jour votre logiciel vers la dernière version de Vagrant et VirtualBox
  3. Dans ce numéro de github https://github.com/fideloper/Vaprobash/issues/92 , vous pouvez tester deux éléments: utilisez le plugin winnfsd ( https://github.com/winnfsd/ vagrant-winnfsd ) ou essayez de configurer le montage par défaut sans NFS

J'ai eu le même problème, et c'était juste l'ajout d'invité qui n'était pas à jour ...

UDPATE: le bogue de Vagrant avec NFS sous Windows (point 2) a été corrigé dans la version 5.1.18, réapparaît dans la version 5.1.20 et est de nouveau corrigé dans la version 5.2.

7
loicmathieu

Passer à la version 5.1.14 de la version 5.1.16 à Virtual Box fonctionne bien.

3
Sven

J'utilise Vagrant 1.9.4 et VirtualBox 5.1.20. Aucune solution ici ne m'a aidé.

J'ai enfin résolu le problème en désactivant les mises à jour automatiques pour les ajouts invités:

Vagrant.configure("2") do |config|
    config.vbguest.auto_update = false
    [...]
end

C'est plus une solution de contournement qu'une solution. Je ne sais toujours pas quel est le problème, mais je suppose qu'il est lié à ceci: https://www.virtualbox.org/ticket/16670

3
user3245821

C'est un bug dans Vbox. Il y a une solution à résoudre.

Connexion à la Vbox guestos: le mot de passe par défaut est (vagrant/vagrant)

su
ln -sf /opt/VBoxGuestAdditions-5.1.20/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

fermer

lancer cmd depuis l'ordinateur local cmd Invite:

vagrant up

Ça va marcher. 

2
user3369245

Il existe également une régression dans Virtualbox 5.1.20 

Vagrant issue: https://github.com/mitchellh/vagrant/issues/8502

Problème de boîte virtuelle: https://www.virtualbox.org/ticket/16670#comment:4

Le correctif pour le moment est de revenir à Virtualbox 5.1.18 où cela fonctionnait.

2
Jayflux

J'ai un problème similaire, vérifiez l'en-tête s'il ne correspond pas, puis exécutez la commande ci-dessous.

CentOS: Sudo yum update && Sudo yum -y installe les en-têtes du noyau kernel-devel

rechargement vagabond

ça marche pour moi.

1
Jayen Chondigara

Résumé

Le problème avec les dossiers synchronisés/partagés ne fonctionnant plus tout à coup, c’est que le module de noyau des additions de VirtualBox Guest n’est pas chargé.

Le problème n'est pas directement connecté à la version de VirtualBox! C'était peut-être le cas dans le passé, mais l'explication suivante couvre environ 95% des cas de ce problème.


Explication

Ceci est principalement dû à une mise à jour automatique du noyau Linux, par exemple en ayant cronapt exécuté sur la machine virtuelle.

Si le noyau obtient une nouvelle version, le module dkms pour les ajouts invités ne peut pas être redémarré après un redémarrage de la machine virtuelle . Le fichier de service /etc/init.d/virtualbox-guest-utils vérifie s'il existe un module de noyau dans 

/lib/modules/`uname -r`

dossier pour vboxguest et vboxsf

Soit la version du noyau lors de la configuration initiale des ajouts invités: 1.2.3

Le noyau mis à jour a la version: 1.2.4

uname -r aurait comme résultat 1.2.4, alors que le module dkms était installé avec la version du noyau 1.2.3. Cela entraînerait l’abandon de l’exécution du service d’addition d’invité virtualbox et l’échec d’un message d’erreur comme modprobe xxxx failed.....

Solution

Ce que nous devons faire, c’est installer les en-têtes du noyau en même temps que la nouvelle version du noyau, de manière à ce que le module dkms pour les ajouts d’invités de virtualbox puisse être automatiquement reconstruit avec eux.

Heureusement, il existe un méta-paquet qui nous permet d’installer la version la plus récente des en-têtes du noyau.

Il semble être nommé différemment dans différentes saveurs Linux. En voici une petite liste.

Debian

Sudo apt install linux-headers-AMD64

Ubuntu

Sudo apt install linux-headers-generic

CentOS (non testé)

Merci à @Jayen Chondigara

Sudo yum -y install kernel-headers kernel-devel

0
func0der