NFS-Mount Problem mit Vagrant und OS X Catalina

Fehlermeldung: Stale file handle

Am gestrigen Tag habe ich eine Vagrant-VM mit Ansible unter Mac OS X Catalina erstellt. Leider gab es beim Mounten eines lokalen Ordners des Host-Systems via NFS mit der virtuellen Maschine ein Problem. Die Provisionierung an sich läuft ohne Fehlermeldung durch.

Es handelt sich bei dem Problem wohl um eine Einschränkung der Lese- / Schreibrechte auf dem Host-System. Ich lagere meine Projekte in den Ordner Documents aus, welcher wohl das besagte Problem verursacht.

Mein Code für den synchronisierten Ordner in der Datei Vagrantfile lautet wie folgt:

if host_is_windows then
    config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
    config.vm.synced_folder "./", "/var/www/project"
else
    config.vm.synced_folder "./", "/var/www/project", id: "1", type: "nfs", mount_options: ['actimeo=1']
end

Sobald man nach der Provisionierung via vagrant ssh in den Ordner /var/www/ mittels cd /var/www/ navigiert, und sich dort mit Hilfe von ls -al einmal alle Ordner anzeigt, sieht man folgendes:

Ausgabe der Console nach dem Befehl ls -al

Wie man erkennt, bekomme ich von der Console eine komische Ausgabe bei dem Ordner project. Dieser hat keine Zugriffsrechte und keinen Besitzer. Oben erkennt man außerdem die Fehlermeldung ls: cannot access 'project': Stale file handle.

Meine Software-Versionen lauteten zu dieser Zeit wie folgt:

Vagrant: 2.2.6
Ansible: 2.9.2
Python: 3.7.6
VirtualBox: 6.0.14 r133895 (Qt5.6.3)

Es gibt nun verschiedene Lösungswege, um das Problem zu beheben.

Auslagerung des Projektes

Wenn man seine Software für bspw. Virtualbox aufgrund anderer Projekte o.ä. nicht auf den aktuellsten Stand bringen möchte, kann man folgendes unternehmen.

Die einfachste Möglichkeit ist, seine Projekte einfach aus dem Documents-Ordner auszulagern. Bspw. könnte man die Projekte in den Ordner /Users/[USER]/Development legen.

Anschließend mit dem Befehl rm -rf .vagrant den gecashten Server löschen und die Maschine mit vagrant up neu starten / provisionieren. Daraufhin sind die Ordner, wie man es gewohnt ist, mit dem Host-System synchronisiert.

Dienst „nfsd“ Vollzugriff auf die Festplatte gewähren

Vermutlich hat der Dienst nfsd keinen Zugriff auf den Ordner Documents. Aus diesem Grund gibt es eine weitere Möglichkeit, dem Dienst Zugriff zu gewähren.

Dafür öffnen wir im ersten Schritt die Systemeinstellungen und anschließend den Untermenüpunkt Sicherheit.

Grundlegende Einstellungen im Bereich Datenschutz

Als nächstes suchen wir in der linken Spalte nach dem Bereich Festplattenvollzugriff.

Der Bereich Festplattenvollzugriff

Mit Hilfe des Buttons + fügen wir anschließend den Dienst nfsd aus dem Ordner sbin zum Festplattenvollzugriff hinzu:

Den Dienst nfsd hinzufügen

Anzumerken ist, dass man sich versteckte Ordner anzeigen lassen muss. Dies kann man einfach erledigen, indem man die Festplatte Macintosh HD auswählt und dann die Befehlstaste (⌘) Umschalttaste (⇧) und Punkt (.) gleichzeitig drückt.

Anschließend wählt man den Ordner sbin aus und sucht dort nach der Datei nfsd. Nun klickt man auf den Button Öffnen. Schon hat man den Dienst nfsd in der Liste. Dieser muss mit einem Haken versehen werden.

Der Dienst nfsd befindet sich nun in der Liste

Nun wechsele ich wieder in die Console und verlassen die virtuelle Maschine, sofern man sich noch via SSH in dieser befindet, mit exit. Jetzt noch ein vagrant halt und daraufhin ein vagrant up --provision. Die Provisionierung läuft problemlos durch.

Jetzt nochmals via vagrant ssh in die virtuelle Maschine wechseln und zum Ordner /var/www/ navigieren. Mit einem anschließenden ls -al erhält man das gewünschte Ergebnis:

Das Ergebnis nach dem Befehl ls -al

Solltet ihr noch Probleme mit Vagrant und VirtualBox haben, könnt ihr mich gerne unter Kontakt kontaktieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kontakt

Ihre Full-Stack-Entwickler aus Köln

Seit mehr als 12 Jahren stehe ich meinen Kunden in Köln und deutschlandweit als Full-Stack-Entwickler zur Verfügung.

Neben der grundlegenden Entwicklung von modernen Webseiten liegen meine Stärken bei der Beratung und der Betreuung komplexer Internetanwendungen.

Habe ich Ihr Interesse geweckt? – Dann nehmen Sie doch gerne Kontakt mit mir auf. Ich werde mich umgehend mit Ihnen in Verbindung setzen.

2020 © Thorsten Kötzsch