it-swarm.com.de

Vagrant-Fehler: Freigegebene VirtualBox-Ordner (Gastzugänge, vboxsf) können nicht bereitgestellt werden

Die Angelegenheit

Ich habe Vagrant unter Windows 10 installiert, damit ich eine persönliche lokale Entwicklungsumgebung in einer virtuellen Maschine erstellen kann. Alles, was ich über Vagrant gelesen habe, sagte, ich kann sogar mehrere Systeme hochfahren und die Kommunikation zwischen ihnen mit der NAT - Portweiterleitung testen. Aber zuerst möchte ich nur eine virtuelle Entwicklungsumgebung erstellen, bevor ich mit dem Rest zu weit komme.

Ich habe VirtualBox, Vagrant, PuTTY und PuTTYGen in diesem SitePoint-Tutorial installiert: https://www.sitepoint.com/getting-started-vagrant-windows/ . Als Nächstes habe ich einen vagrant-Projektordner auf Laufwerk C: erstellt, vagrant init gelöscht, die Vagrantfile und schließlich vagrant init ubuntu/trusty64 gelöscht. Dann habe ich vagrant up gemacht, aber der Vorgang schlug fehl mit dem Fehler:

Vagrant konnte keine freigegebenen VirtualBox-Ordner bereitstellen. Dies ist normalerweise weil das Dateisystem "vboxsf" nicht verfügbar ist. Dieses Dateisystem ist wird über die VirtualBox Guest Additions und das Kernel-Modul zur Verfügung gestellt. Bitte vergewissern Sie sich, dass diese Gastergänzungen ordnungsgemäß in .__ installiert sind. Gast. Dies ist kein Fehler in Vagrant und wird normalerweise durch ein fehlerhaftes .__ verursacht. Vagrant Box. Für den Kontext wurde folgender Befehl versucht:

mount -t vboxsf -ouid = 1000, gid = 1000 vagrant/vagrant

Die Fehlerausgabe des Befehls war:

: Keine solche Datei oder Ordner

Hier ist ein Screenshot meiner Windows-Befehlszeile:

 Screenshot of Vagrant/VirtualBox error

Und hier ist eine Textversion:

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

Mein Setup

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 & Erweiterungen installiert

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

Was ich schon probiert habe

Dieser Beitrag schien in meiner Forschung am vielversprechendsten. 

Leider konnte weder eine der angebotenen Lösungen noch eine der angebotenen Links das Problem lösen. Ich habe schon ein paar Sachen ausprobiert, aber ich bin kein Systemadministrator (was ich vermute, ist das Skillset, das Sie zur Fehlerbehebung benötigen würden). Besonders beunruhigend war, dass viele der "Lösungen" von 2013/2014 in jüngerer Zeit nicht mehr funktionieren. Diese Lösungen beziehen sich auf etwas, das mit nicht funktionierenden Symlinks zu tun hat, die Installation von Plugins wie vagrant-vbguest und etwas über vbox-Ergänzungen, die nicht mit etwas übereinstimmen. Ich verstehe das alles nicht wirklich, aber ich habe mein Bestes gegeben. Folgendes habe ich bereits versucht, das es noch nicht gelöst hat:

  1. vagrant plugin install vagrant-vbguest. Vagrant zeigt das Plugin als installiert an, aber ich bekomme den gleichen Fehler in vagrant up.

  2. Liste der Links, die ich bei der Erforschung dieses Problems gelesen habe und die keine funktionierende Lösung lieferte.

Meine Fragen

  1. Ich vermute, das Problem liegt bei VirtualBox, nicht bei Vagrant. Ist das wahr?

  2. Wie kann ich das beheben, damit ich mit dem Tutorial fortfahren kann?

  3. Es scheint, dass die Vagrant-Fragen, die auf Stack Overflow beantwortet wurden, seit etwa 2014 drastisch gesunken sind. Was ist der Grund dafür? Wird Vagrant/VirtualBox nicht mehr als "Best Practice" angesehen? Gibt es eine bessere Lösung, damit Benutzer die Vagrant-Fragen ignorieren?

Ich bin kein Systemadministrator, aber technisch versiert und kann technischen Anweisungen folgen.

Dieses Problem wurde in VirtualBox 5.1.18 behoben.

8
chaitan64arun

Sie können VirtualBox herunterstufen oder die Zeile in der Datei bearbeiten:

In meinem Setup war dies die Linie 206 von:

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

auf meinem Host-Rechner.

Ich habe das gemacht und es funktionierte gut unter Windows 10! Ich möchte hinzufügen, was ich mit Zeile 206 gemacht habe:

Vor dem Bearbeiten: "\\?" + Path.gsub ("/", "\")

Nach der Bearbeitung: path.gsub ("/", "\")

28
Anders
vagrant plugin install vagrant-vbguest

Das funktionierte nicht für mich, es scheint mit vagrant 1.9.2 nicht kompatibel zu sein. Ich habe die neueste Version von Virtual Box (5.1.16) deinstalliert und Version 5.1.12 mit der neuesten Version von Vagrant 1.9.2 und Homestead und installiert Für mich geht das.

24
Daniel Carr

Guest Additions ist mit der Version von VirtualBox nicht kompatibel. Durch die automatische Aktualisierung von VirtualBox Guest-Zusätzen werden möglicherweise damit zusammenhängende Probleme gelöst:

vagrant plugin install vagrant-vbguest

Ich habe dieses Problem mit diesen Stapeln ausgeführt:

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

Es kann mehrere Ursachen geben:

  1. Die Version des guest-Zusatzes stimmt nicht mit der Version von VirtualBox überein. Dazu können Sie die Version des guest-Zusatzes aktualisieren, indem Sie vagrant plugin install vagrant-vbguest ausführen.
  2. Sie haben einen Fehler mit NFS unter Windows gefunden: Sollte behoben sein, versuchen Sie möglicherweise, auf die neueste Version von Vagrant und VirtualBox zu aktualisieren
  3. In dieser Github-Ausgabe https://github.com/fideloper/Vaprobash/issues/92 können Sie zwei Dinge testen: Verwenden Sie das winnfsd-Plugin ( https://github.com/winnfsd/ vagrant-winnfsd ) oder versuchen Sie, das Standard-Mount ohne NFS zu konfigurieren

Ich hatte das gleiche Problem, und es war nur der Gastzugang, der nicht auf dem neuesten Stand war ...

UDPATE: Der Fehler in Vagrant mit NFS unter Windows (Punkt 2) wurde in Version 5.1.18 behoben, erscheint in Version 5.1.20 erneut und wurde in Version 5.2 erneut behoben.

7
loicmathieu

Ein Downgrade auf Virtual Box 5.1.14 von 5.1.16 funktioniert gut.

3
Sven

Ich verwende Vagrant 1.9.4 und VirtualBox 5.1.20. Hier hat mir keine Lösung geholfen.

Ich bin endlich um das Problem herumgekommen, indem ich automatische Updates für die Gastzugänge deaktiviert habe:

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

Es ist eher eine harte Workaround als eine Lösung. Ich weiß immer noch nicht genau, was das eigentliche Problem ist, aber ich gehe davon aus, dass es damit zusammenhängt: https://www.virtualbox.org/ticket/16670

3
user3245821

Es ist ein Fehler in Vbox. Es gibt eine Lösung, die behoben werden muss.

Bei Vbox-Gastgebern anmelden: Standardmäßig lautet das Passwort (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

ausschalten

führen Sie cmd von lokaler Maschine aus cmd aus Eingabeaufforderung:

vagrant up

Es wird klappen. 

2
user3369245

Es gibt auch eine Regression in Virtualbox 5.1.20 

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

Virtualbox-Ausgabe: https://www.virtualbox.org/ticket/16670#comment:4

Das Update für jetzt besteht darin, zu Virtualbox 5.1.18 zurückzukehren, wo es funktionierte.

2
Jayflux

Ich habe ein ähnliches Problem. Überprüfen Sie die Kopfzeile, wenn sie nicht übereinstimmt, und führen Sie sie unter dem Befehl aus

CentOS: Sudo yum update && Sudo yum -y installiert Kernel-Header Kernel-Devel

vagrant reload

für mich geht das.

1

Zusammenfassung

Das Problem mit den synchronisierten/freigegebenen Ordnern, die plötzlich nicht mehr funktionieren, ist, dass das Kernel-Modul der VirtualBox Guest-Ergänzungen nicht geladen wird.

Das Problem ist nicht direkt mit der VirtualBox-Version verbunden! Es mag in der Vergangenheit der Fall gewesen sein, aber die folgende Erklärung deckt etwa 95% der Vorkommen dieses Problems ab.


Erläuterung

Dies wird hauptsächlich durch ein automatisches Update des Linux-Kernels verursacht, beispielsweise indem cronapt in der virtuellen Maschine ausgeführt wird.

Wenn der Kernel eine neue Version erhält, kann das dkms-Modul für die Gastergänzungen nach einem Neustart der virtuellen Maschine nicht neu gestartet werden .. Die Dienstdatei /etc/init.d/virtualbox-guest-utils überprüft, ob ein Kernel-Modul vorhanden ist 

/lib/modules/`uname -r`

ordner für vboxguest und vboxsf

Lassen Sie die Kernel-Version beim ersten Einrichten der Guest-Zusätze lauten: 1.2.3

Der aktualisierte Kernel hat die Version: 1.2.4

uname -r würde 1.2.4 zur Folge haben, während das dkms-Modul mit der Kernelversion 1.2.3..__ installiert wurde. Dies würde dazu führen, dass der Virtualbox-Gastadditionsdienst die Ausführung abbricht und mit einer Fehlermeldung wie modprobe xxxx failed.... fehlschlägt.

Lösung

Was wir tun müssen, ist, die Header des Kernels zusammen mit der neuen Kernel-Version zu installieren, damit das dkms-Modul für die Virtualbox-Gastergänzungen automatisch neu erstellt werden kann.

Glücklicherweise gibt es ein Metapaket, mit dem die neueste Version der Kernel-Header installiert werden kann.

Es scheint in verschiedenen Linux-Geschmacksrichtungen anders benannt zu werden. Hier ist eine kleine Liste von ihnen.

Debian

Sudo apt install linux-headers-AMD64

Ubuntu

Sudo apt install linux-headers-generic

CentOS (nicht getestet)

Danke an @Jayen Chondigara

Sudo yum -y install kernel-headers kernel-devel

0
func0der