Używam VirtualBox z OS X jako hostem i CentOS na maszynie wirtualnej gościa.
W utworzonym folderze OS XI myfolder
, dodałem go jako folder współdzielony do maszyny wirtualnej, włączyłem maszynę wirtualną, w folderze utworzonym przez CentOS /home/user/myfolder
i wpisując:
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.
macos
centos
virtual-machine
virtualbox
cnaize
źródło
źródło
sudo mount -t vboxsf sf_folder /home/user/folder
tutaj nazwysf_folder
ifolder
MUSZĄ być różnymishare
odpowiedź, aby uzyskać bezpośredni link.Odpowiedzi:
Mój folder współdzielony / 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ązaniem dla mnie było zatrzymanie vboxadd i wykonanie konfiguracji po tym:
źródło
/sbin/mount.vboxsf: mounting failed with the error: No such device
. Po uruchomieniu powyższego i ponownym uruchomieniu systemu, moje udostępnione foldery pojawiły się tak, jak przed aktualizacją… dzięki!sudo ./vboxadd setup
możesz to zrobićsudo ./vboxadd stop
. Nie jestem pewien, czy nadal jest to konieczne, ale domyślam się, że to właśnie oznacza to zdanie.Używasz folderów współdzielonych, więc musisz zainstalować dodatki VirtualBox Guest Additions na maszynie wirtualnej, aby obsługiwać tę funkcję.
Włóczęga
Jeśli używasz Vagrant (OS X :)
brew cask install vagrant
, uruchom:W przypadku niepowodzenia sprawdź logi, np
Może po prostu brakuje Ci plików nagłówkowych jądra.
VM
Wewnątrz maszyny wirtualnej należy zainstalować dodatki gościa, nagłówki jądra i uruchomić usługę oraz dokładnie sprawdzić, czy rozszerzenie jądra jest uruchomione.
Zależy to od systemu operacyjnego gościa, więc oto krótkie kroki:
Zainstaluj nagłówki jądra (wymagane przez VBoxLinuxAdditions).
sudo apt-get update && sudo apt-get install kernel-devel
sudo yum update && sudo yum -y install kernel-headers kernel-devel
Zainstaluj dodatki dla gości (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ź
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ź
dpkg -l | grep virtualbox
.ręcznie, pobierając plik iso wewnątrz maszyny wirtualnej (np.
wget
) i instalując go, npwget 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
Dodatkowy debug:
cd ~/install && sh -x ./install.sh /mnt/VBoxLinuxAdditions.run
Dokładnie sprawdź, czy rozszerzenia jądra są uruchomione i działają:
sudo modprobe vboxsf
Uruchom / uruchom ponownie usługę:
sudo /opt/VBoxGuestAdditions*/init/vboxadd setup
(dodajsudo sh -x
do debugowania)sudo /etc/init.d/vboxadd-service start
sudo /etc/init.d/vboxdrv setup
sudo service VBoxService start
Tworzenie głównego modułu dodatków dla gości
Jeśli powyższe nie zadziałało, oto bardziej wyrafinowane kroki, aby to naprawić. Zakłada się, że masz już zainstalowany VBoxGuestAdditions (jak pokazano powyżej).
Najczęstszy powód, dla którego montowanie folderu współdzielonego nie działa, może być związany z niepowodzeniem budowania modułu Guest Additions. Jeśli
/var/log/vboxadd-install.log
masz następujący błąd: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:
Zasadniczo
vboxadd
skrypt oczekuje, że źródła jądra będą dostępne w następującym katalogu:Sprawdź, czy katalog jądra istnieje (dowiązanie symboliczne wskazuje na istniejący folder). Jeśli tak nie jest, zainstaluj je w odpowiednim folderze (np. W
/usr/src/kernels
).Więc
vboxadd
skrypt może wejść do katalogu ze źródłami jądra i uruchomićmake kernelrelease
, pobrać wartość i porównać z bieżącą wersją jądra.Oto logika:
Jeśli wersja jądra nie pasuje do źródeł, być może musisz zaktualizować jądro Linuksa (w przypadku, gdy źródła są nowsze niż jądro).
CentOS
Próbować:
Jeśli nie zadziała, wypróbuj następujące ręczne kroki dla CentOS:
źródło
vagrant plugin install vagrant-vbguest
vagrant vbguest
działa również na centos 7 i rozwiązał problem. DziękiJestem w stanie rozwiązać ten problem, uruchamiając poniższe polecenie
modprobe -a vboxguest vboxsf vboxvideo
źródło
vboxsf
potrzebne są tutaj foldery współdzielone VirtualBox. Możesz wymienić te 3 pliki po jednym w wierszu w pliku/etc/modules-load.d/
(nazwij to możevirtualbox.conf
), aby ta zmiana była zachowana po ponownym uruchomieniu.Oprócz odpowiedzi @Mats , więcej informacji (pomogło mi to w Debianie 8).
Mój folder współdzielony / schowek przestał działać z jakiegoś powodu (prawdopodobnie z powodu instalacji poprawki na mojej maszynie wirtualnej).
Dał mi następujący wynik:
Rozwiązaniem dla mnie było zatrzymanie vboxadd i wykonanie konfiguracji po tym:
W tym momencie, jeśli nadal pojawia się następujący błąd:
Musisz zainstalować nagłówki linux:
następnie możesz zainstalować dodatki dla gości:
i zrestartuj Linuksa przez:
wtedy będziesz mógł zamontować swój udostępniony folder!
Więcej informacji (po francusku), sprawdź tę stronę .
źródło
apt-get install linux-headers-virtual
pomógł z Lubuntu 15.04 na VirtualBoxTo było jedyne rozwiązanie, które zadziałało:
Zainstaluj wtyczkę Vagrant: vagrant-vbguest , która może aktualizować dodatki dla gości VirtualBox.
Źródło: https://github.com/aidanns/vagrant-reload/issues/4#issuecomment-230134083
źródło
Zostało to rozwiązane przez:
obejście jest tutaj: https://gist.github.com/larsar/1687725
źródło
uname -r
dkmsshare
Folder współdzielony wcześniej działał dla mnie, ale nagle przestał działać (Virualbox - hostem był Windows 7, Guest to OpenSuSe)
modprobe -a vboxguest vboxsf vboxvideo
wtedy
mount -t vboxsf testsf /opt/tsf
(testsf
był to folder na dysku Windows C, który został dodany do folderu współdzielonego Virtualbox --- i/opt/tsf
jest folderem w OpenSuseźródło
Mój host to Windows10, mój gość VM to ubuntu build by vagrant. To zadziałało dla mnie:
źródło
Miałem też działający system, który nagle przestał działać z opisanym błędem.
Po przeczesaniu się po moim / lib / modules wydaje się, że
vboxvfs
modułu już nie ma. Zamiast tegomodprobe vboxsf
było wymagane zaklęcie, aby wszystko zaczęło się od nowa.Nie jestem pewien, kiedy nastąpiła ta zmiana, ale mnie zaskoczyła.
źródło
Używam 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:
Link miał coś podobnego do /usr/lib/VBoxGuestAdditions/other/mount.vboxsf, a nie to, co mam w fragmencie skryptu.
W przypadku skryptu kompilacji, którego używam w włóczęgach do dodatków:
https://github.com/rburkholder/vagrant/blob/master/scripts/additions.sh
Wydaje się, że jest to poprawka na https://www.virtualbox.org/ticket/16670
źródło
Rozwiązaniem dla mnie było, aby aktualizować dodatki gości
(kliknij Urządzenia -> Wstaw obraz CD z dodatkami dla gości)
źródło
W dwóch scenariuszach mogą wystąpić błędy / nieprawidłowe podejście. Sprawdź oba i dowiedz się.
SCENARIUSZ 1:
Po uruchomieniu VBoxLinuxAdditions.run lub VBoxSolarisAdditions.pkg lub VBoxWindowsAdditions.exe sprawdź, czy wszystkie moduły są poprawnie instalowane.
1.1.a. W przypadku VBoxLinuxAdditions , jeśli
budowa modułów jądra VirtualBox Guest Additions nie powiedzie 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 jądro *
1.1.c.reboot
1.2. Jeśli nic nie zawodzi, wszystko jest w porządku. Masz już oczekiwaną wersję jądra
SCENARIUSZ 2:
Jeśli VBoxGuestAdditions jest zainstalowany (sprawdź, czy folder / opt / VBoxGuestAdditions- * jest obecny .... * reprezentuje wersję), musisz go uruchomić przed zamontowaniem.
2.1. cd / opt / VBoxGuestAdditions - * / init && ./vboxadd start
Musisz określić identyfikator użytkownika i identyfikator grupy użytkownika maszyny wirtualnej jako opcje polecenia mount.
2.2.a. Pobieranie UID i GID użytkownika:
id -u <'user'>
id -g <'user'>
2.2.b. Ustawianie UID i GID w opcjach polecenia mount:
mount -t vboxsf -o uid = x, gid = x nazwa_folderu_wspólnionego guest_folder
źródło
U mnie na komputerze Mac okazało się, że mam na komputerze stary obraz VirtualBox, który nie miał metadanych, więc nie był aktualizowany do najnowszej wersji.
Ten stary obraz miał zainstalowaną starszą wersję wtyczki vbguest, z którą nowsza wtyczka vbguest na moim komputerze nie mogła działać.
Aby to naprawić, po prostu usunąłem obraz, na którym był oparty mój Vagrant, a następnie Vagrant pobrał nowszą wersję i działało dobrze.
Możesz dowiedzieć się, które skrzynki buforujesz na swoim komputerze, uruchamiając:
Zaktualizowałem również moją wtyczkę vbguest we wcześniejszych próbach uruchomienia tego, używając następującego procesu, ale nie sądzę, aby to pomogło. FYI!
Jeśli okaże się, że przy dodawaniu gościa nie powiedzie się, możesz spróbować wykonać następujące czynności, aby upewnić się, że wtyczki zostaną poprawnie zainstalowane. Spowoduje to pobranie najnowszego obrazu bazowego dla twojego systemu (dla mnie CentOS) i może rozwiązać problem (zrobił to dla mnie!)
źródło
W Ubuntu to zadziałało:
źródło
Miał ten sam problem z VirtualBox 5.0.16 / rXXX
Zainstalowałem najnowszą wersję VirtualBox 5.0.18 i zainstalowałem najnowszą wersję Vagrant 1.9.3, problem powędrował.
źródło
Dodałem jako użytkownik root
następnie
i przykładowy skrypt
/root/mount-vboxsf.sh
(ustaw własne opcje uid i gid)musisz dodać
źródło
Mam podobny problem, sprawdź nagłówek, jeśli nie pasuje, a następnie uruchom poniższe polecenie
CentOS: sudo yum update && sudo yum -y install kernel-headers kernel-devel
źródło
Jeśli korzystasz z Debiana:
1) Usuń wszystkie zainstalowane pakiety za pomocą pliku ISO Virtualbox Guest Additions:
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ł zostanie poprawnie załadowany),vboxsf.so
wywoła plik wykonywalny o nazwiemount.vboxsf
, który jest dostarczany przezvirtualbox-guest-utils
. Zignorowanie tego uniemożliwi zrozumienie prawdziwej przyczyny błędu.strace mount /your-directory
był bardzo pomocny (nie ma takiego pliku lub katalogu/sbin/mount.vboxsf
).źródło
Aktualizacja załatwiła mi sprawę!
źródło
Poniżej dwie komendy działają u mnie.
źródło
Okej, wszystkim brakuje podstawowego faktu.
mkdir /test
- Tworzy podkatalog w bieżącym katalogu.sudo mkdir /test
- Utwórz katalog w Root.Więc jeśli nazwa twojego katalogu współdzielonego to
shared
i wykonasz następujące czynności:Generuje ten błąd:
Ponieważ katalog jest w złym miejscu! Tak, to właśnie mówi ten błąd. Błąd nie mówi, że przeładuj opcje gościa VBOX.
Ale jeśli to zrobisz:
Wtedy działa dobrze.
Naprawdę zdumiewa mnie, jak wiele osób sugeruje ponowne załadowanie dodatków gościa Vbox w celu rozwiązania tego błędu lub napisanie złożonego programu do rozwiązania katalogu utworzonego w niewłaściwym miejscu.
źródło
mkdir /test
utworzy katalog / test w /.sudo mkdir /test
utworzy ten sam katalog, ale należący do roota, a nie do bieżącego użytkownika.kernel-devel.x86_64 0:2.6.32-754.11.1.el6
a następnie uruchomiłem te polecenie -cd /opt/VBoxGuestAdditions-*/init
isudo ./vboxadd setup
. To zadziałało dla mnie.