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.
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
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:]}-
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
- RHEL:
-
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.wget http://download.virtualbox.org/virtualbox/5.0.16/VBoxGuestAdditions_5.0.16.iso -P /tmp
sudo mount -o loop /tmp/VBoxGuestAdditions_5.0.16.iso /mnt
-
sudo sh -x /mnt/VBoxLinuxAdditions.run # --keep
Extra debug:
cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run
-
-
Sprawdź dokładnie, czy rozszerzenia jądra są włączone i przebieg:
sudo modprobe vboxsf
-
Uruchom / Uruchom ponownie usługę:
- ręcznie:
sudo /opt/VBoxGuestAdditions*/init/vboxadd setup
(dodajsudo sh -x
do debugowania) - Debian:
sudo /etc/init.d/vboxadd-service start
- Fedora:
sudo /etc/init.d/vboxdrv setup
- CentOS:
sudo service VBoxService start
- ręcznie:
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
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
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ę.
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
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
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
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
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
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.
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
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
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.
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
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
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
).
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)
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
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
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
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.
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