VirtualBox: mount.vboxsf: Das Mounten ist mit dem Fehler fehlgeschlagen: Kein solches Gerät [geschlossen]


160

Ich verwende VirtualBox mit OS X als Host und CentOS auf der Gast-VM.

In OS XI erstellte Ordner myfolder, fügte ihn als freigegebenen Ordner zur VM hinzu, schaltete die VM ein, in CentOS erstellten Ordner /home/user/myfolderund tippte ein:

sudo mount -t vboxsf myfolder /home/user/myfolder

und haben Ausgabe:

/sbin/mount.vboxsf: mounting failed with the error: No such device

Was mache ich falsch?

AKTUALISIERT:

Guest Additions Eingerichtet.


Stellen Sie sicher, dass Guest Additions ordnungsgemäß installiert ist. Möglicherweise müssen Sie ein Upgrade von sudo apt-get durchführen. sudo ma vorbereiten; Sie müssen sehen, dass das Modul "Gastanzeigen" erstellt wird ...
ntg

9
An den zufälligen Internet-Surfer, der dieses Problem hat: Tun Sie sich selbst einen Gefallen und schauen Sie sich die zweite Antwort an.
Jrharshath

4
ein Tipp - sudo mount -t vboxsf sf_folder /home/user/folder, hier die sf_folderund folder muss verschiedene Namen sein
cnaize

5
@ jrharshath Welches ist die "zweite Antwort"? Die Sortierung kann sich ändern. Klicken Sie sharein der Antwort auf, um den Permalink zu erhalten.
wisbucky

Antworten:


166

Mein freigegebener Ordner / meine freigegebene Zwischenablage funktionierte aus irgendeinem Grund nicht mehr (wahrscheinlich aufgrund einer Patch-Installation auf meiner virtuellen Maschine).

sudo mount -t vboxsf Shared_Folder ~/SF/

Gab folgendes Ergebnis:

VirtualBox: mount.vboxsf: mounting failed with the error: No such device

Die Lösung für mich war, vboxadd zu stoppen und danach ein Setup durchzuführen:

cd /opt/VBoxGuestAdditions-*/init  
sudo ./vboxadd setup

1
Nach dem Upgrade von Ubuntu 12.04 vm auf Ubuntu 14.04 waren meine freigegebenen Ordner in vm leer, und beim Versuch, manuell zu mounten, wurde der Fehler angezeigt /sbin/mount.vboxsf: mounting failed with the error: No such device. Nachdem ich die oben genannten Schritte ausgeführt und das System neu gestartet hatte, wurden meine freigegebenen Ordner wie vor dem Upgrade angezeigt. Danke!
Angelo

Das Problem besteht in VirtualBox 5.0.18 mit einem Ubuntu 16.04-Gast weiterhin, und diese Lösung hat bei mir funktioniert.
Ivan Perez

7
Wie stoppen Sie vboxadd?
Aristofun

1
Vielen Dank! Ich musste auch das vagrant-vbguest Plugin installieren - stackoverflow.com/a/23752848/2043134
thomas_inckx

1
@aristofun @ brainmurphy1: In demselben Verzeichnis sudo ./vboxadd setupkönnen Sie dies zuvor tun sudo ./vboxadd stop. Ich bin mir nicht sicher, ob es noch notwendig ist, aber ich vermute, das ist es, was dieser Satz bedeutet.
Hraban

76

Sie verwenden Freigabeordner, daher müssen Sie VirtualBox Guest Additions in Ihrer virtuellen Maschine installieren , um diese Funktion zu unterstützen.

Landstreicher

Wenn Sie Vagrant (OS X :) verwendenbrew cask install vagrant , führen Sie Folgendes aus:

vagrant plugin install vagrant-vbguest
vagrant vbguest

Falls dies fehlschlägt, überprüfen Sie die Protokolle, z

vagrant ssh -c "cat /var/log/vboxadd-install.log"

Vielleicht fehlen Ihnen nur die Kernel-Header-Dateien.

VM

In VM sollten Sie Guest Additions und Kernel-Header installieren, den Dienst starten und überprüfen, ob die Kernel-Erweiterung ausgeführt wird.

Dies hängt vom Gastbetriebssystem ab. Hier sind kurze Schritte:

  1. Installieren Sie die Kernel-Include-Header (erforderlich für VBoxLinuxAdditions).

    • RHEL: sudo apt-get update && sudo apt-get install kernel-devel
    • CentOS: sudo yum update && sudo yum -y install kernel-headers kernel-devel
  2. Installieren Sie Guest Additions (dies hängt vom Betriebssystem ab).

    • Ubuntu: sudo apt-get -y install dkms build-essential linux-headers-$(uname -r) virtualbox-guest-additions-iso

      Wenn Sie es nicht finden können, schauen Sie vorbei aptitude search virtualbox.

    • Debian :sudo apt-get -y install build-essential module-assistant virtualbox-ose-guest-utils

      Wenn Sie es nicht finden können, schauen Sie vorbei dpkg -l | grep virtualbox.

    • manuell durch Herunterladen der ISO-Datei in VM (z. B. wget) und Installieren der Datei , z

      1. wget http://download.virtualbox.org/virtualbox/5.0.16/VBoxGuestAdditions_5.0.16.iso -P /tmp
      2. sudo mount -o loop /tmp/VBoxGuestAdditions_5.0.16.iso /mnt
      3. sudo sh -x /mnt/VBoxLinuxAdditions.run # --keep

        Zusätzliches Debugging: cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run

  3. Stellen Sie sicher, dass die Kernel-Erweiterungen aktiv sind:

    • sudo modprobe vboxsf
  4. Starten / Starten Sie den Dienst neu:

    • manuell: sudo /opt/VBoxGuestAdditions*/init/vboxadd setup(hinzufügensudo sh -x zum Debuggen )
    • Debian: sudo /etc/init.d/vboxadd-service start
    • Fedora: sudo /etc/init.d/vboxdrv setup
    • CentOS: sudo service VBoxService start

Erstellen des Hauptmoduls "Guest Additions"

Wenn oben nicht funktioniert hat, finden Sie hier komplexere Schritte, um das Problem zu beheben. Dies setzt voraus, dass Sie bereits VBoxGuestAdditions installiert haben (wie oben gezeigt).

Der häufigste Grund, warum das Mounten eines freigegebenen Ordners nicht funktioniert, hängt möglicherweise mit dem Erstellen des fehlgeschlagenen Guest Additions-Moduls zusammen. Wenn /var/log/vboxadd-install.logSie den folgenden Fehler haben:

Die Header für den aktuell laufenden Kernel wurden nicht gefunden.

Dies bedeutet, dass Sie entweder keine Kernelquellen installiert haben oder diese nicht gefunden werden können.

Wenn Sie sie bereits wie oben beschrieben installiert haben, führen Sie diesen Befehl aus:

$ sudo sh -x /opt/VBoxGuestAdditions-5.0.16/init/vboxadd setup 2>&1 | grep KERN
+ KERN_VER=2.6.32-573.18.1.el6.x86_64
+ KERN_DIR=/lib/modules/2.6.32-573.18.1.el6.x86_64/build

Grundsätzlich vboxadderwartet das Skript, dass Ihre Kernelquellen unter folgendem Verzeichnis verfügbar sind:

ls -la /lib/modules/$(uname -r)/build

Überprüfen Sie, ob das Kernel-Verzeichnis vorhanden ist (symbolischer Link verweist auf den vorhandenen Ordner). Wenn nicht, installieren Sie sie bitte im richtigen Ordner (z. B. in/usr/src/kernels . ).

So vboxaddkann das Skript Ihr Kernel-Quellverzeichnis eingeben und ausführen make kernelrelease, den Wert abrufen und mit Ihrer aktuellen Kernel-Version vergleichen.

Hier ist die Logik:

KERN_VER=`uname -r`
KERN_DIR="/lib/modules/$KERN_VER/build"
if [ -d "$KERN_DIR" ]; then
    KERN_REL=`make -sC $KERN_DIR --no-print-directory kernelrelease 2>/dev/null || true`
    if [ -z "$KERN_REL" -o "x$KERN_REL" = "x$KERN_VER" ]; then
        return 0
    fi
fi

Wenn die Kernelversion nicht mit den Quellen übereinstimmt, müssen Sie möglicherweise Ihren Linux-Kernel aktualisieren (falls die Quellen neuer als Ihr Kernel sind).

CentOS

Versuchen:

vagrant plugin install vagrant-vbguest vagrant vbgues

Wenn dies nicht funktioniert, führen Sie die folgenden manuellen Schritte für CentOS aus:

$ sudo yum update
$ sudo yum install kernel-$(uname -r) kernel-devel kernel-headers # or: reinstall
$ rpm -qf /lib/modules/$(uname -r)/build
kernel-2.6.32-573.18.1.el6.x86_64
$ ls -la /lib/modules/$(uname -r)/build
$ sudo reboot # and re-login
$ sudo ln -sv /usr/src/kernels/$(uname -r) /lib/modules/$(uname -r)/build
$ sudo /opt/VBoxGuestAdditions-*/init/vboxadd setup

1
RE das CentOS-Update, es hat mein Problem gelöst, aber stellen Sie sicher, dass Sie gcc installiert haben.
ggdx

1
Mit Chef's Test Kitchen (Vagrant) funktionierte das Vagrant Plugin install vagrant-vbguest für mich
pfernandom

In meinem Fall lag es daran, dass die GuestAdditions nicht die gleichen waren, die zwischen Vagrant und dem Gast deklariert wurden.
AnthonyB

1
vagrant plugin install vagrant-vbguest vagrant vbguestfunktioniert auch auf centos 7 und hat das problem behoben. Vielen Dank
Med Ali Difallah

55

Ich kann dies beheben, indem ich unter dem Befehl laufe

modprobe -a vboxguest vboxsf vboxvideo


Das gleiche Problem trat bei meinem vbox5.0.6- und Centos 7-Gast auf. Das Problem ist, dass ich dies jedes Mal nach dem (erneuten) Booten ausführen muss.
Webbertiger

14
Dies funktioniert, da dies die Kernelmodule sind, die auf einem Gast ausgeführt werden müssen, damit VirtualBox alle Funktionen ordnungsgemäß ausführen kann. Insbesondere wird vboxsf(VirtualBox Shared Folders) hier benötigt. Sie können diese 3 Dateien eine pro Zeile in einer Datei in /etc/modules-load.d/auflisten (nennen Sie es vielleicht virtualbox.conf), damit diese Änderung durch Neustarts erhalten bleibt.
Zwei-Bit-Alchemist

1
Unter Debian 8-Gast hat das Ausführen dieses Befehls die Videoausgabe ruiniert.
CodingWithSpike

23

Zusätzlich zu @Mats antworten ich weitere Informationen hinzu (dies hat mir bei Debian 8 geholfen).

Mein freigegebener Ordner / meine freigegebene Zwischenablage funktionierte aus irgendeinem Grund nicht mehr (wahrscheinlich aufgrund einer Patch-Installation auf meiner virtuellen Maschine).

sudo mount -t vboxsf Shared_Folder ~/SF/

Hat mir folgendes Ergebnis gegeben:

VirtualBox: mount.vboxsf: mounting failed with the error: No such device

Die Lösung für mich war, vboxadd zu stoppen und danach ein Setup durchzuführen:

cd /opt/VBoxGuestAdditions-*/init 
sudo ./vboxadd setup

Wenn Sie zu diesem Zeitpunkt immer noch den folgenden Fehler erhalten:

Kein solches Gerät. Die Installation von Guest Additions ist möglicherweise fehlgeschlagen. Der Fehler wurde angemeldet/var/log/vboxadd-install.log

Sie müssen Linux-Header installieren:

apt-get install linux-headers-$(uname -r)

dann können Sie Guest Additions installieren:

sh /media/cdrom/VBoxLinuxAdditions.run --nox11

und starten Sie Ihr Linux neu durch:

reboot

Dann können Sie Ihren freigegebenen Ordner bereitstellen!

mount -t vboxsf Shared_Folder ~/SF/

Weitere Informationen (auf Französisch) finden Sie auf dieser Seite .


3
apt-get install linux-headers-virtualhalf mit Lubuntu 15.04 auf VirtualBox
fider

/ media / cdrom ois leer in meinem Fall
CCC

Haben Sie im Menü Geräte auf Gastzusätze installieren geklickt?
Froggiz


9

Dies wurde gelöst durch:

yum install gcc kernel-devel make

Problemumgehung finden Sie hier: https://gist.github.com/larsar/1687725


Lief alle Updates überhaupt kein Glück. Entschuldigung, die Antwort mit 13 Up-
Votes

Ich verwende einen Windows 7-Host mit RHEL 7 und dies hat das Problem für mich behoben (einschließlich der Informationen aus dem Hauptlink) - Vielen Dank!
Chris Townsend

Unter Ubuntu funktionierte dies: sudo apt-get install build-essential linux-headers- uname -rdkms
cstroe

4
@ AndrewShatnyy "Antwort mit 13 Stimmen" ist nicht eindeutig. Bitte posten Sie den Permalink zu der Antwort, auf die Sie sich beziehen (klicken Sie shareunter die Antwort)
wisbucky

1
@wisbucky du hast recht, sorry. stackoverflow.com/a/29456128/849187 arbeitete bereits zweimal
Andrew Shatnyy

6

Der freigegebene Ordner funktionierte früher für mich, aber plötzlich funktionierte er nicht mehr (Virualbox - Host war Windows 7, Gast war OpenSuSe)

modprobe -a vboxguest vboxsf vboxvideo

dann mount -t vboxsf testsf /opt/tsf ( testsfwar der Ordner im Windows C-Laufwerk, der im freigegebenen Virtualbox-Ordner hinzugefügt wurde --- und /opt/tsfist der Ordner in OpenSuse


5

Mein Host ist Windows10, mein VM-Gast ist Ubuntu Build von Vagrant. Das hat bei mir funktioniert:

vagrant plugin install vagrant-winnfsd

3

Ich hatte auch ein funktionierendes System, das plötzlich mit dem beschriebenen Fehler nicht mehr funktionierte.

Nach dem Herumtollen in meinen / lib / Modulen scheint das vboxvfsModul nicht mehr zu sein. Stattdessen modprobe vboxsfwar die erforderliche Beschwörung, um die Dinge neu zu starten.

Ich bin mir nicht sicher, wann diese Änderung eingetreten ist, aber sie hat mich erwischt.


1
Es funktionierte für mich, nachdem ich "sudo modprobe vboxsf"
Viorel Mirea

3

Ich verwende VirtualBox 5.1.20 und hatte ein ähnliches Problem. Hier ist eine URL, wo ich den Fix gefunden und den Fix implementiert habe:

# https://dsin.wordpress.com/2016/08/17/ubuntu-wrong-fs-type-bad-option-bad-superblock/
if [ "5.1.20" == "${VBOXVER}" ]; then
  rm /sbin/mount.vboxsf
  ln -s /usr/lib/VBoxGuestAdditions/mount.vboxsf /sbin/mount.vboxsf
fi

Der Link hatte etwas Ähnliches wie /usr/lib/VBoxGuestAdditions/other/mount.vboxsf und nicht das, was ich im Skriptauszug habe.

Für ein Build-Skript verwende ich in vagrant für die Ergänzungen:

https://github.com/rburkholder/vagrant/blob/master/scripts/additions.sh

Scheint ein Fix unter https://www.virtualbox.org/ticket/16670 zu sein


2

    In zwei Szenarien kann es zu Fehlern / falschem Ansatz kommen. Überprüfen Sie beides und finden Sie es heraus.

SZENARIO 1:

      Überprüfen Sie nach dem Ausführen von VBoxLinuxAdditions.run oder VBoxSolarisAdditions.pkg oder VBoxWindowsAdditions.exe, ob alle Module ordnungsgemäß installiert wurden.

1.1.a. Im Falle von VBoxLinuxAdditions , wenn
Gebäude der VirtualBox Guest Additions - Kernel - Module fehlgeschlagen wird,
überprüfen Sie die Protokolldatei in /var/log/vboxadd-install.log . Wenn der Fehler auf die Kernelversion zurückzuführen ist, aktualisieren Sie Ihren Kernel und starten Sie die VM neu. Im Falle von Fedora ,
1.1.b. yum Update Kernel *
1.1.c.Neustart
1.2. Wenn nichts fehlschlägt, ist alles in Ordnung. Sie haben bereits die erwartete Kernelversion

SZENARIO 2:

     Wenn die VBoxGuestAdditions installiert ist (prüfen Sie, ob ein Ordner / opt / VBoxGuestAdditions- * vorhanden ist .... * die Version darstellt), müssen Sie sie vor dem Mounten starten.

2.1. cd / opt / VBoxGuestAdditions - * / init && ./vboxadd start

      Sie müssen die Benutzer-ID und die Gruppen-ID Ihres VM-Benutzers als Optionen für den Mount-Befehl angeben.

2.2.a. Abrufen von UID und GID eines Benutzers:
      ID -u <'Benutzer'>
      ID -g <'Benutzer'>
2.2.b. Festlegen von uid und gid in den Optionen des Befehls mount:
      mount -t vboxsf -o uid = x, gid = x Name des freigegebenen Ordners Gastname


2

Die Lösung für mich bestand darin, Gastzugänge zu aktualisieren

(Klicken Sie auf Geräte -> CD-Image für Guest Additions einlegen.)


2

Auf einem Mac stellte sich heraus, dass auf meinem Computer ein altes VirtualBox-Image gespeichert war, das keine Metadaten enthielt, sodass es nicht auf die neueste Version aktualisiert wurde.

In diesem alten Image war eine ältere Version des vbguest-Plugins installiert, mit der das neuere vbguest-Plugin auf meinem Computer nicht funktionieren konnte.

Um das Problem zu beheben, habe ich einfach das Image entfernt, auf dem mein Vagrant basiert, und dann hat Vagrant die neuere Version heruntergeladen, und es hat einwandfrei funktioniert.

# Remove an old version of the virtual box image that my vagrant was using    
$ vagrant box remove centos/7 

Sie können herausfinden, welche Boxen Sie auf Ihrem Computer zwischengespeichert haben, indem Sie Folgendes ausführen:

$ vagrant box list

Ich hatte auch mein vbguest-Plugin in meinen früheren Versuchen, dies zum Laufen zu bringen, mithilfe des folgenden Prozesses aktualisiert, aber ich glaube nicht, dass dies geholfen hat. Zu Ihrer Information!

# Get rid of old plugins
vagrant plugin expunge 

# Globally install the latest version of the vbguest plugin`
vagrant plugin install vagrant-vbguest 

Wenn Sie feststellen, dass das Bringen der Box bei Gastzugaben fehlschlägt, können Sie die folgenden Schritte ausführen, um sicherzustellen, dass die Plugins korrekt installiert werden. Dadurch wird das neueste Image für Ihr System (für mich CentOS) heruntergeladen und möglicherweise das Problem behoben (für mich!).

$ vagrant box update

1

Unter Ubuntu funktionierte dies:

sudo apt-get install build-essential linux-headers-`uname -r` dkms

1

Hatte das gleiche Problem mit VirtualBox 5.0.16 / rXXX

Installierte neueste VirtualBox 5.0.18 und installierte neueste Vagrant 1.9.3, Problem ging toodles.


1

Ich habe als Root-Benutzer hinzugefügt

/etc/rc.d/rc.local 
/root/mount-vboxsf.sh

dann

chmod +x /etc/rc.d/rc.local

und das Beispielskript /root/mount-vboxsf.sh(stellen Sie die Optionen uid und gid selbst ein)

modprobe -a vboxguest vboxsf vboxvideo
mount -t vboxsf NAME_SHARED_DIRECTORY /media/sf_NAME_SHARED_DIRECTORY -o rw,uid=0,gid=0

Sie müssen hinzufügen

chmod + /root/mount-vboxsf.sh

0

Ich habe ein ähnliches Problem. Überprüfen Sie den Header, wenn er nicht übereinstimmt. Führen Sie ihn dann unter dem Befehl aus

CentOS: sudo yum update && sudo yum -y install kernel-headers kernel-devel


0

Wenn Sie auf Debian sind:

1) Entfernen Sie alle installierten Pakete über die ISO-Datei von Virtualbox Guest Additions:

sh /media/cdrom/VBoxLinuxAdditions.run uninstall

2) Installieren Sie Virtualbox-Pakete:

apt-get install build-essential module-assistant virtualbox-guest-dkms virtualbox-guest-utils

Beachten Sie, dass selbst wenn modprobe vboxsfnichts zurückgegeben wird (damit das Modul korrekt geladen ist), vboxsf.soeine ausführbare Datei mit dem Namen aufgerufen wird mount.vboxsf, die von bereitgestellt wird virtualbox-guest-utils. Wenn Sie diese ignorieren, können Sie die wahre Fehlerursache nicht verstehen.

strace mount /your-directorywar eine große Hilfe (keine solche Datei oder Verzeichnis auf /sbin/mount.vboxsf).



-1

Unten zwei Befehle funktionieren für mich.

vagrant ssh
sudo mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

-8

Okay, jedem fehlt eine grundlegende Tatsache.

mkdir /test - Erstellt ein Unterverzeichnis im aktuellen Verzeichnis.

sudo mkdir /test - Machen Sie ein Verzeichnis in Root.

Wenn Ihr freigegebener Verzeichnisname lautet sharedund Sie Folgendes tun:

mkdir /test
sudo mount -t vboxsf shared /test

Es erzeugt diesen Fehler:

sbin/mount.vboxsf: mounting failed with the error: No such file or directory

Weil das Verzeichnis am falschen Ort ist! Ja, das sagt dieser Fehler. Der Fehler bedeutet nicht, dass die VBOX-Gastoptionen neu geladen werden.

Aber wenn Sie dies tun:

sudo mkdir ~/test
sudo mount -t vboxsf shared ~/test

Dann funktioniert es gut.

Es wundert mich wirklich, wie viele Leute vorschlagen, die Vbox-Gastzusätze neu zu laden, um diesen Fehler zu beheben, oder ein komplexes Programm zu schreiben, um ein Verzeichnis zu lösen, das an der falschen Stelle erstellt wurde.


2
Der aufgetretene Fehler lautet "Kein solches Gerät", nicht "Keine solche Datei oder kein solches Verzeichnis". :)
mjtko

mynttest @ mynttest-VirtualBox: / media / sf_shared $ sudo mkdir ~ / test sudo mount -t vboxsf vbshared ~ / test mkdir: ungültige Option - 't' Versuchen Sie 'mkdir --help', um weitere Informationen zu erhalten.
Berit Larsen

1
mkdir /testerstellt das Verzeichnis / test in /. sudo mkdir /testerstellt dasselbe Verzeichnis, das jedoch dem Root und nicht dem aktuellen Benutzer gehört.
bschlueter

Ich hatte das gleiche Problem. Also habe ich kernel-devel.x86_64 0:2.6.32-754.11.1.el6diese Befehle installiert und dann ausgeführt - cd /opt/VBoxGuestAdditions-*/initund sudo ./vboxadd setup. Das hat bei mir funktioniert.
Vishwanath Sharma
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.