GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Vagrant hängt beim Mounten von freigegebenen NFS-Ordnern – wie kann man das beheben?

Heute habe ich eine neue virtuelle Maschine mit Arch Linux Vagrant Box erstellt. Ich habe die virtuelle Arch Linux-Maschine mit vagrant up gestartet Befehl, aber es startete nicht. Jedes Mal, wenn ich versuche, die VM zu starten, hängt sich der Vagrant auf, wenn ich freigegebene NFS-Ordner einbinde. Nach mehr als 5 Minuten Wartezeit endete der Befehl mit folgendem Fehler:

 [...]
 ==> default: Mounting NFS shared folders…
 ==> default: Pruning invalid NFS exports. Administrator privileges will be required…
 [sudo] password for sk: 
 ==> default: Removing domain…
 The following SSH command responded with a non-zero exit status.
 Vagrant assumes that this means the command failed!
 mount -o vers=3,udp 192.168.122.1:/home/sk/vagrant/archlinux /vagrant
 Stdout from the command:
 Stderr from the command:
 mount.nfs: Connection refused

Wie Sie sehen können, ist der vagrant up Befehl schlägt beim Mounten von freigegebenen NFS-Ordnern fehl. Mein KVM-Host ist die neueste Fedora 34-Edition. Ich hatte dieses Problem nie mit virtuellen Ubuntu-Maschinen. Dieser Fehler trat nur auf, wenn ich die virtuelle Arch Linux-Maschine starte. Wenn Ihr Vagrant-Rechner beim „Mounten freigegebener NFS-Ordner“ hängen bleibt, können Sie die unten angegebene Problemumgehung verwenden.

Vagrant hängt sich auf, wenn NFS-Freigabeordner unter Linux bereitgestellt werden

Dies wird wahrscheinlich und wahrscheinlicher von Ihrer Firewall verursacht. In meinem Fall ist es tatsächlich das Firewall-Problem. Ich musste die folgenden Dienste durch die Firewall zulassen, um das Problem mit dem Mounten freigegebener NFS-Ordner in Vagrant zu beheben:

  • nfs,
  • mountd,
  • rpc-bind.

Außerdem habe ich den Port 2049 geöffnet für beide tcp und udp .

1. Führen Sie nacheinander die folgenden Befehle aus, um die oben genannten Dienste und den Port 2049 zuzulassen.

$ sudo firewall-cmd --permanent --zone=libvirt --add-service=nfs3
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=nfs
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=mountd
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=rpc-bind
$ sudo firewall-cmd --permanent --zone=libvirt --add-port=2049/tcp
$ sudo firewall-cmd --permanent --zone=libvirt --add-port=2049/udp

2. Laden Sie die Firewall-Regeln neu, um die Änderungen zu übernehmen:

$ sudo firewall-cmd --reload

3. Zeigen Sie die Liste der zugelassenen Dienste mit dem Befehl an:

$ firewall-cmd --list-all

Beispielausgabe:

FedoraWorkstation (active)
  target: default
  icmp-block-inversion: no
  interfaces: wlp9s0
  sources: 
  services: dhcpv6-client mdns mountd nfs rpc-bind samba-client ssh
  ports: 1025-65535/udp 1025-65535/tcp
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Dadurch wird NFS zwischen Ihrem Host und den virtuellen Vagrant-Maschinen aktiviert und die libvirt gehostete Vagrant-VMs, um NFS-Mounts vom Hostsystem zu verwenden.

4. Nachdem ich den nfs-Dienst und den relevanten Port zugelassen hatte, versuchte ich, die Vagrant-VM zu starten. Dieses Mal bin ich auf ein anderes Problem gestoßen:

[...]
mount.nfs: requested NFS version or transport protocol is not supported

5. Um diesen Fehler zu beheben, bearbeiten Sie /etc/nfs.conf Datei im Hostsystem:

$ sudo vi /etc/nfs.conf

6. Entkommentieren Sie die folgenden zwei Zeilen:

[nfsd]
udp=y

Speichern Sie die Datei und schließen Sie sie.

7. Starten Sie den nfs-Dienst neu:

$ sudo systemctl restart nfs-server.service

8. Starten Sie abschließend das Hostsystem neu:

$ sudo reboot

Das ist es. Jetzt sollten Sie den Vagrant-Rechner ohne Probleme starten können.

Wir haben eine vollständige Anleitung zur Verwendung von Vagrant veröffentlicht. Überprüfen Sie den folgenden Link, um zu erfahren, wie Sie Vagrant verwenden.

  • Vagrant-Tutorial – Erste Schritte mit Vagrant unter Linux

Linux
  1. So installieren Sie Vagrant unter Linux

  2. Wie behebt man den Python-Installationsfehler beim Laden gemeinsam genutzter Bibliotheken:libssl.so.1.0.0? [Gelöst]

  3. Freigegebene Ordner automatisch mit Virtualbox mounten?

  4. So beheben Sie AWStats, wenn es keine Statistiken generiert

  5. So installieren Sie Vagrant unter Ubuntu 20.04

So mounten Sie eine NFS-Freigabe unter Linux

So konfigurieren Sie das Netzwerk in Vagrant

So beheben Sie Windows-Updates, die bei 0 % hängen bleiben

So komprimieren Sie Ordner unter Linux

So verwende ich NFS zum Freigeben von Ordnern zwischen verschiedenen Systemen im Homelab-Setup

So mounten Sie NFS unter Debian 11