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:
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
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
Vagrant:
- vagrant-share (1.1.6, system)
- vagrant-vbguest (0.13.0)
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:
vagrant plugin install vagrant-vbguest
. Vagrant indique que le plug-in est installé, mais je reçois la même erreur sur vagrant up
.
Liste de liens que j'ai lus lors de mes recherches sur ce problème et qui ne fournissaient aucune solution efficace.
Je soupçonne que le problème est avec VirtualBox, pas Vagrant. Est-ce vrai?
Comment puis-je résoudre ce problème afin que je puisse continuer avec le tutoriel?
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.
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 ("/", "\")
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.
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:
Il peut y avoir plusieurs causes:
vagrant plugin install vagrant-vbguest
.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.
Passer à la version 5.1.14 de la version 5.1.16 à Virtual Box fonctionne bien.
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
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.
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.
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.
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.
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....
.
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.
Sudo apt install linux-headers-AMD64
Sudo apt install linux-headers-generic
Merci à @Jayen Chondigara
Sudo yum -y install kernel-headers kernel-devel