VirtualBox: mount.vboxsf: montaż nie powiódł się z błędem: No such device [closed]

Używam VirtualBox z OS X jako host i CentOS na maszynie gościa.

W OS X utworzyłem folder myfolder, dodałem go jako folder współdzielony do maszyny wirtualnej, włączyłem maszynę wirtualną, w folderze stworzonym przez CentOS /home/user/myfolder i wpisałem:

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

I mają wyjście:

/sbin/mount.vboxsf: mounting failed with the error: No such device
Co robię źle?

Aktualizacja:

Guest Additions zainstalowany.

Author: bschlueter, 2015-02-04

21 answers

Mój udostępniony folder / Schowek przestał działać z jakiegoś powodu (prawdopodobnie z powodu instalacji poprawki na mojej maszynie wirtualnej).

sudo mount -t vboxsf Shared_Folder ~/SF/

Dał następujący wynik:

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

Rozwiązanie dla mnie było zatrzymać vboxadd i zrobić konfigurację po tym:

cd /opt/VBoxGuestAdditions-*/init  
sudo ./vboxadd setup
 140
Author: Mats,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-21 16:05:07

Używasz folderów udostępnionych, więc musisz zainstalować VirtualBox Guest Additions wewnątrz maszyny Wirtualnej, aby obsługiwać tę funkcję.

Vagrant

Jeśli używasz Vagrant (OS X: brew cask install vagrant), Uruchom:

vagrant plugin install vagrant-vbguest
vagrant vbguest

Jeśli się nie powiedzie, sprawdź dzienniki, np.

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

Może po prostu brakuje Ci plików nagłówkowych jądra.

VM

Wewnątrz maszyny Wirtualnej, należy zainstalować dodatki Gości, nagłówki jądra i uruchomić usługę i podwoić sprawdź, czy rozszerzenie jądra jest uruchomione.

To zależy od systemu operacyjnego gościa, więc oto krótkie kroki:]}
  1. Install kernel include headers (wymagane przez 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. Zainstaluj Dodatki Gościa (zależy to od systemu operacyjnego).

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

      Jeśli nie możesz go znaleźć, Sprawdź przez aptitude search virtualbox.

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

      Jeśli nie możesz go znaleźć, Sprawdź przez dpkg -l | grep virtualbox.

    • Ręcznie pobierając plik iso wewnątrz maszyny wirtualnej (np. wget) i instalując go, np.

      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

        Extra debug: cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run

  3. Sprawdź dokładnie, czy rozszerzenia jądra są włączone i przebieg:

    • sudo modprobe vboxsf
  4. Uruchom / Uruchom ponownie usługę:

    • ręcznie: sudo /opt/VBoxGuestAdditions*/init/vboxadd setup (dodaj sudo sh -x do debugowania)
    • Debian: sudo /etc/init.d/vboxadd-service start
    • Fedora: sudo /etc/init.d/vboxdrv setup
    • CentOS: sudo service VBoxService start

Budowanie głównego modułu dodatków dla gości

Jeśli powyższe nie działa, oto bardziej wyrafinowane kroki, aby to naprawić. Zakłada to, że masz już zainstalowany vboxguestadditions (jak pokazano powyżej).

Najbardziej częstym powodem, dla którego montowanie folderu udostępnionego nie działa, może być nieudane budowanie modułu dodatków Gościa. Jeśli w /var/log/vboxadd-install.log masz następujący błąd:

Nagłówki bieżącego jądra nie zostały znalezione.

Oznacza to, że albo nie zainstalowałeś źródeł jądra, albo nie można ich znaleźć.

Jeśli zainstalowałeś je już zgodnie z instrukcją powyżej, Uruchom to polecenie:

$ 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

Więc w zasadzie vboxadd skrypt oczekuje źródeł jądra być dostępne w następującym katalogu:

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

Sprawdź, czy katalog jądra istnieje (dowiązanie symboliczne wskazuje na istniejący folder). Jeśli nie, zainstaluj je w odpowiednim folderze (np. w /usr/src/kernels).

Więc vboxadd skrypt może wejść do katalogu źródłowego jądra i uruchomić make kernelrelease, pobrać wartość i porównać z aktualną wersją jądra.

Oto logika:

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

Jeśli wersja jądra nie pasuje do źródeł, być może trzeba uaktualnić Linuksa kernel (w przypadku, gdy źródła są nowsze niż twoje jądro).

CentOS

Przykładowe kroki mocowania dla CentOS:

$ 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
 51
Author: kenorb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-10 14:51:41

Jestem w stanie to rozwiązać, uruchamiając poniżej commmand

modprobe -a vboxguest vboxsf vboxvideo

 50
Author: Atul N,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-22 04:07:25

Oprócz @Mats answer , dodaję jeszcze kilka informacji (pomogło mi to w Debianie 8).

Mój udostępniony folder / Schowek przestał działać z jakiegoś powodu (prawdopodobnie z powodu instalacji poprawki na mojej maszynie wirtualnej).

sudo mount -t vboxsf Shared_Folder ~/SF/

Dał mi następujący wynik:

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

Rozwiązanie dla mnie było zatrzymać vboxadd i zrobić konfigurację po tym:

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

W tym momencie, jeśli nadal pojawi się następujący błąd:

Nie ma takiego urządzenia. Gość Instalacja dodatków nie powiodła się. Błąd został zalogowany /var/log/vboxadd-install.log

Musisz zainstalować nagłówki Linuksa:

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

Następnie możesz zainstalować dodatki gości:

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

I uruchom ponownie Linuksa przez:

reboot

Wtedy będziesz mógł zamontować swój udostępniony folder!

mount -t vboxsf Shared_Folder ~/SF/

Więcej informacji (w języku francuskim), sprawdź tę Stronę.

 19
Author: Froggiz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:03:02

To było jedyne rozwiązanie, które mi się udało:

Zainstaluj wtyczkę Vagrant: vagrant-vbguest, która może utrzymać aktualność dodatków Gości VirtualBox.

vagrant plugin install vagrant-vbguest

Źródło: https://github.com/aidanns/vagrant-reload/issues/4#issuecomment-230134083

 11
Author: xxxbence,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-09 23:57:55

To zostało rozwiązane przez:

yum install gcc kernel-devel make

Obejście jest tutaj: https://gist.github.com/larsar/1687725

 8
Author: cnaize,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-04 02:37:49

Folder współdzielony działał wcześniej dla mnie, ale nagle przestał działać (virualbox-host był Windows 7, gość był OpenSuSe)

modprobe -a vboxguest vboxsf vboxvideo

Wtedy mount -t vboxsf testsf /opt/tsf (testsf jest to folder na dysku Windows C, który został dodany do folderu udostępnionego Virtualbox - - - i {[3] } jest folderem w OpenSuse

 5
Author: MAlam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-04 20:21:16

Moim hostem jest Windows10 moim gościem VM jest ubuntu build by vagrant. To mi się udało:

vagrant plugin install vagrant-winnfsd
 4
Author: Kaiacode,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-18 00:25:08

Uruchamiam VirtualBox 5.1.20 i miałem podobny problem. Oto adres URL do miejsca, w którym znalazłem poprawkę i poprawkę, którą zaimplementowałem:

# 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

Link miał coś podobnego do / usr / lib/VBoxGuestAdditions/other / mount.vboxsf, a nie to co mam w fragmencie skryptu.

Do skryptu build używam w vagrant do dodatków:

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

Wydaje się być fixem w https://www.virtualbox.org/ticket/16670

 3
Author: Raymond Burkholder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-24 19:56:33

Miałem również działający system, który nagle przestał działać z opisanym błędem.

Po poruszaniu się po moim / lib / modules wydaje się, że vboxvfs module już nie istnieje. Zamiast tego modprobe vboxsf było zaklęciem wymaganym do ponownego uruchomienia rzeczy.

Nie wiem, kiedy ta zmiana się pojawiła, ale mnie złapała.
 2
Author: Tim N,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-27 14:34:08

Mogą wystąpić błędy / nieprawidłowe podejście w dwóch scenariuszach. Sprawdź oba i dowiedz się

scenariusz 1 :

      Po uruchomieniu VBoxLinuxAdditions.Uruchom lub VBoxSolarisAdditions.pkg lub VBoxWindowsAdditions.exe, sprawdź czy wszystkie moduły są instalowane poprawnie.

1.1.a. w przypadku VBoxLinuxAdditions , Jeśli
tworzenie modułów jądra VirtualBox Guest Additions nie powiodło się,
sprawdź plik dziennika w /var / log / vboxadd-install.log . Jeśli błąd jest spowodowany wersją jądra zaktualizuj jądro i uruchom ponownie maszynę wirtualną. W przypadku Fedory ,
1.1.B. yum update kernel*
1.1.c. restart
1.2. Jeśli nic nie zawiedzie, wszystko jest w porządku. Masz już oczekiwaną wersję jądra

Scenariusz 2 :

     Jeśli vboxguestadditions jest zainstalowany (sprawdź, czy istnieje folder /opt/VBoxGuestAdditions-* .... * reprezentuje wersję) musisz ją uruchomić przed montażem.

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

      Należy określić identyfikator użytkownika i identyfikator grupy użytkownika maszyny wirtualnej jako opcje polecenia montowania.

2.2.a. uzyskanie uid i gid użytkownika:
      id-u
      id-g
2.2.b. ustawienie uid i gid w opcjach polecenia mount:
      mount-t vboxsf-o uid=x, gid=x    shared_folder_name guest_folder

 2
Author: yottabytt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-02 03:37:54

Na Ubuntu to działało:

sudo apt-get install build-essential linux-headers-`uname -r` dkms
 1
Author: cstroe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-13 19:57:35

Miał ten sam problem z VirtualBox 5.0.16 / rXXX

Zainstalowałem najnowszy VirtualBox 5.0.18 i zainstalowałem najnowszy Vagrant 1.9.3, problem poszedł do przodu.

 1
Author: Arun Sangal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-04 23:07:28

Dodałem jako root user

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

Then

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

I przykładowy skrypt /root/mount-vboxsf.sh (Ustaw własne opcje uid i gid)

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

Musisz dodać

chmod + /root/mount-vboxsf.sh
 1
Author: Diego piccinini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-20 14:22:50

Mam podobny problem, sprawdź nagłówek jeśli nie pasuje to uruchom poniżej polecenia

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

 0
Author: Jayen Chondigara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-13 10:42:07

Jeśli jesteś na Debianie:

1) Usuń wszystkie zainstalowane pakiety poprzez Virtualbox Guest Additions ISO file:

sh /media/cdrom/VBoxLinuxAdditions.run uninstall

2) zainstaluj pakiety Virtualbox:

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

Zauważ, że nawet jeśli modprobe vboxsf nic nie zwróci (więc moduł jest poprawnie załadowany), vboxsf.so wywoła plik wykonywalny o nazwie mount.vboxsf, który jest dostarczany przez virtualbox-guest-utils. Ignorowanie tego uniemożliwi zrozumienie prawdziwej przyczyny błędu.

strace mount /your-directory był bardzo pomocny (brak takiego pliku lub katalog na /sbin/mount.vboxsf).

 0
Author: Yvan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-30 21:27:50

Rozwiązaniem dla mnie było Aktualizacja dodatków gości

(kliknij Devices - > Insert Guest Additions CD image)

 0
Author: Arch Linux Tux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-18 07:02:58

Dla mnie, na Macu, okazało się, że mam stary obraz VirtualBox przechowywane na moim komputerze, który nie ma metadanych, więc nie był aktualizowany do najnowszej wersji.

Ten stary obraz miał starszą wersję wtyczki vbguest zainstalowanej w nim, z którą nowsza wtyczka vbguest na moim komputerze nie mogła pracować.

Więc aby to naprawić, po prostu usunąłem obraz, na którym mój Włóczęga był oparty, a następnie Vagrant pobrał nowszą wersję i działało dobrze.

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

Możesz znaleźć jakie pola zostały zapisane w pamięci podręcznej na komputerze przez uruchomienie:

$ vagrant box list

Miałem również uaktualniony mój vbguest plugin w moich wcześniejszych próbach uzyskania to do pracy, za pomocą następującego procesu, ale nie sądzę, że to pomogło. Dla twojej wiadomości !

# Get rid of old plugins
vagrant plugin expunge 

# Globally install the latest version of the vbguest plugin`
vagrant plugin install vagrant-vbguest 
 0
Author: Brad Parks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-18 17:41:06

Aktualizacja mi pomogła !

$ vagrant box update
$ vagrant plugin install vagrant-vbguest 
 0
Author: jetpackdata.com,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-02 09:09:56

Poniżej dwa polecenia działają dla mnie.

vagrant ssh
sudo mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant
 -1
Author: SayOwl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-06 11:40:09

/ Align = "center" bgcolor = "# e0ffe0 " / cesarz japonii / / align = center /

mkdir /test - tworzy podkatalog w bieżącym katalogu.

sudo mkdir /test - Utwórz katalog w katalogu głównym.

Więc jeśli nazwa katalogu współdzielonego to {[5] } i wykonujesz następujące czynności:

mkdir /test
sudo mount -t vboxsf shared /test

Generuje ten błąd:

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

Ponieważ katalog jest w złym miejscu! Tak właśnie mówi ten błąd. Błąd nie mówi przeładować opcje gościa VBOX.

Ale jeśli to zrobisz:

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

Wtedy to działa dobrze.

To naprawdę zadziwia mnie, jak wiele osób sugeruje przeładowanie dodatków gościa Vbox, aby rozwiązać ten błąd lub napisanie złożonego programu, aby rozwiązać katalog utworzony w niewłaściwym miejscu.

 -8
Author: CRANKYOLDGUY,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-24 18:50:36