Wie verwendet mount die fstab zum Einhängen von Verzeichnissen?

568
Lorem Ipsum

Ein Mitarbeiter bat mich, einen freigegebenen Windows 10-Ordner in einem Arch Linux-Gast mithilfe von VirtualBox bereitzustellen. Das System war von einem anderen Kollegen eingerichtet worden, der gerade zu Mittag essen wollte.

Der freigegebene Ordner war E:\virtual_shared\. Gastzusätze wurde installiert und aktiviert. Ich konnte den freigegebenen Ordner darin sehen /media/sf_virtual_shared/und dort gab es einen Einhängepunkt /mnt/share/. Ein ls -al /mnt/share/zeigte, dass das Zielverzeichnis leer war. Der Benutzer war Teil der vboxsfGruppe. Alle Berechtigungen schienen sowohl für den Gastgeber als auch für den Gast auszuchecken. Alles schien in Ordnung zu sein. Ich konnte es trotzdem nicht montieren!

Um es zu montieren, benutzte ich es

# mount -t vboxsf /media/sf_virtual_shared/ /mnt/share/ 

und den Fehler bekommen

"/sbin/mount.vboxsf: mounting failed with the error: Protocol error" 

Ich habe versucht, in einen neuen Ordner ( ~/test/) zu mounten, erhielt aber den gleichen Fehler.

Schließlich kam die Person, die das System eingerichtet hat, vom Mittagessen zurück. Er ist einfach gerannt

# mount /mnt/share 

Es stellt sich heraus, dass fstabdas Folgende enthielt:

# # /etc/fstab :static file system information # # <file system> <dir> <type> <options> <dump> <pass> # UUID=5392b506-dde2-4a21-9c7e-86a6f9f94907 /dev/sda2 / ext4 rw,relatime,data=ordered 0 1  # UUID=d6236258-9bea-446a-b38b-0244c048bb1 /dev/sda1 /boot ext2 rw,relatime 0 2 virtual_shared /mnt/share vboxsf defaults 0 0 

Meine Frage ist, warum mountdas Verzeichnis nicht durch den Aufruf mit absoluten Pfaden aktiviert wird. Wie benutzt mountman fstab?

Ich weiß, dass mountdas beim Booten aufgerufen wird und fstabnacheinander durchläuft . War dies /mnt/share/als leer aufgeführt, war dort etwas montiert worden, um zu verhindern, dass der absolute Pfadruf ansteigt? Warum konnte ich den freigegebenen Ordner nicht immer noch anhängen ~/test/?

0
Scheint eine der Antworten in diesem Thread zutreffend zu sein? Https: //askubuntu.com/q/30396 sippybear vor 6 Jahren 0
Nein, leider nicht. Dies war eine der Ressourcen, die ich bei der Fehlerbehebung verwendet habe. Sie sind alle Variationen von `mount -t vboxsf source / target /`. Keiner von ihnen scheint den fstab zu berücksichtigen. Lorem Ipsum vor 6 Jahren 0

1 Antwort auf die Frage

2
grawity

Das vboxsf-Dateisystem hängt keine lokalen Verzeichnisse in anderen Verzeichnissen an. Der Quellparameter ist weder ein relativer noch ein absoluter Pfad. es ist überhaupt kein Weg. Dies ist eine Zeichenfolge, die nur für vboxsf und die VirtualBox-App von Bedeutung ist. (Genauer gesagt, es ist der "Freigabename", den Sie in den VirtualBox VM-Einstellungen konfiguriert haben.)

Daher ist fstab hier nicht verwandt. Die durch diese beiden Mount-Aufrufe angegebenen Quellen sind in keiner Weise gleichwertig.

(Wenn es hilft, stellen Sie sich vor, dass es sich bei vboxsf um ein entferntes Dateisystem handelt, das wie cifs / smbfs funktioniert - weil es das ist, was es wirklich ist. Und genau wie cifs einen entfernten "Freigabenamen" anstelle des lokalen Pfads erfordert, tut dies auch vboxsf.)

Und was ist mit dem freigegebenen Ordner, der sichtbar ist /media/sf_virtual_shared? Nun, dieser Pfad selbst ist ein Mount-Punkt . Wenn Sie sich das anschauen findmnt, werden Sie wahrscheinlich feststellen, dass eine vboxsf-Instanz bereits an diesem Speicherort gemountet wurde. Vermutlich werden sie von den vbox-Gastdiensten automatisch für Sie bereitgestellt. Es ist also keine Quelle, die Sie verwenden können. Es ist ein bereits verwendetes Ziel.

(Wenn Sie wirklich ein lokales Verzeichnis in ein anderes Verzeichnis mounten möchten, verwenden Sie keinen Dateisystemtyp - tun Sie es mit mount --bind.)

Um es für jeden explizit zu machen, dem dies in der Zukunft begegnet, war der Freigabename in meinem Fall "virtual_shared". Ich musste also mount -t vboxsf virtual_shared / mnt / share aufrufen. Lorem Ipsum vor 6 Jahren 1