Aby zawsze montować „folder współdzielony” Virtual Box podczas uruchamiania gościa Ubuntu, mamy dwie opcje. To zależy od osobistych preferencji, która opcja działa najlepiej w naszym otoczeniu.
1. Zamontuj za pomocą fstab
Aby zamontować folder współdzielony za pomocą vboxsf
systemu plików dostarczonego z dodatkami gości, musimy najpierw upewnić się, że spełnione są wymagania wstępne . Następnie możemy umieścić następujący wiersz w naszym etc/fstab
pliku:
<name_of_share> /path/to/mountpoint vboxsf <options> 0 0
Zastąp name_of_share
i /path/to/mountpoint
konfiguracją indywidualną (najpierw należy utworzyć katalog dla punktu montowania). Zobacz stronę podręcznika mount <options>
. Jedną z możliwości jest montaż za pomocą defaults
lub podanie określonych opcji montażu (np rw, suid, exec, auto, users
.).
W niektórych systemach vboxsf
moduł jądra nie jest jeszcze ładowany w momencie fstab
odczytu przy rozruchu. Może to pomóc w dołączeniu vboxsf
modułu jądra do /etc/modules
.
Niektóre systemy mogą potrzebować opcji comment=systemd.automount
we wpisie fstab ( źródło ).
2. Zamontuj za pomocą Virtual Box „automatyczny montaż”:
W najnowszych wydaniach Virtual Box możemy również automatycznie montować foldery współdzielone podczas tworzenia:
Po ponownym uruchomieniu gościa ten folder współdzielony zostanie podłączony do katalogu gości /media/<username>/sf_<name_of_share>
dostępnego dla wszystkich użytkowników, którzy zostali członkami grupy vboxsf
.
noauto
opcji fstab, a następnie później montowanie zwykle w skrypcie startowym (np. profil), opcja 2) głównym problemem jest to, że vboxsf nie jest ładowany przed uruchomieniem fstab, dołączvboxsf
do pliku/etc/modules
, prosząc jądro o załadowanie modułu przed uruchomieniem fstab. Może to pomoże komuś innemu.Edytować
/etc/rc.local
Przed
exit 0
typem:Zapisać
(Opcjonalnie) Utwórz skrót do pulpitu lub folderu domowego:
Aby uruchomić bez błędów, takich jak naciśnięcie S, aby pominąć montaż lub naciśnij M, aby ręcznie naprawić, może być konieczne usunięcie wpisu w
fstab
źródło
/etc/rc.local
tomount -t vboxsf [-o OPTIONS] sharename mountpoint
.sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) windows_share ~/shared/mount_point
i kończyłem umieszczanie następującegomount -t vboxsf windows_share /home/dev/shared/mount_point
pliku w /etc/rc.local, aby działało: gdzie dev jest moim użytkownikiem, FYI / etc / fstab również działa!mount
polecenie wrc.local
skrypcie to moje ID użytkownika (2000
)mount.vboxsf -o rw,uid=1000 /home/mwittie/Dropbox Dropbox vboxsf
. PS Jeśli ktoś szuka samouczka, jak włączyćrc.local
Ubuntu 17.04, to zadziałało dla mnie. PPS Nie musiałem dołączać vboxsf do/etc/modules
.Po wyczerpującym poranku wypróbowanie wszystkich powyższych elementów w Ubutntu 16.04 bezskutecznie działającym w Virtualbox 5.0.20 (szczególnie rozczarowany, że rozwiązanie rc.local nie działa), działało:
Rejestrowanie z menu folderów współdzielonych interfejsu GUI Virtualbox wymaganego katalogu, ale NIE jego automatyczne podłączanie lub stałe montowanie z Virtualbox. W przeciwnym razie katalog hosta jest montowany przez użytkownika root, co utrudnia dostęp użytkownikom innym niż root nawet z grupy administracyjnej.
dodając prosty wpis w fstab:
noauto
Opcja Uwaga - w przeciwnym razie boot loader nie powiedzie się, jak zauważono.Dodaj odpowiedni wiersz
/etc/sudoers
w następujący sposób, używając polecenia visudo z systemu-gościa:Umożliwi to procesom innym niż root specyficzne zamontowanie tego (ponieważ fstab nie może zamontować z opcją „użytkownik” ...)
Dodaj odpowiedni wiersz do .profile użytkownika:
Teraz wybrany podkatalog hosta jest gotowy do instalacji dla wybranego użytkownika po zalogowaniu!
źródło
noauto
?Dla nowszych Systemd systemów opartych trzeba podejść alternatywnych - Najprostsza jest jednym wymieniony w innej odpowiedzi na inne pytanie - co w zasadzie mówi, że trzeba dodać specjalną
comment
opcję do/etc/fstab
wpisu:Jednak aby powyższe działało w niektórych systemach, musisz zaznaczyć pole „Auto-mount” w folderze Shared Folders VirtualBox-> Dodaj, co oznacza, że możesz skończyć z kilkoma zduplikowanymi podłączeniami katalogu.
Dla czystsze montażu - bez duplikatów katalogów ani potrzeby "Auto-mount - trzeba użyć Systemd za montowania oraz montowanie dyrektyw. Aby to zrobić, utwórz dwa wpisy w
/usr/lib/systemd/system/
nazwie po żądanym punkcie montowania, np. W celu dopasowania powyżej punktu montowania fstab, będą one nazwanemy_mount-src_host.mount
i będą zawierać:i
my_mount-src_host.automount
:Następnie muszą włączyć:
Będą teraz montowane przy rozruchu. Jeśli chcesz je zamontować natychmiast (pod warunkiem, że foldery udostępnione zostały utworzone), możesz to zrobić:
Zwróć uwagę, że masz katalogi z nieparzystymi nazwami lub myślnikami (-), a następnie użyj przycisku,
systemd-escape
aby znaleźć odpowiednio unikaną nazwę.źródło
comment=systemd.automount
opcją działa również bez zaznaczonego Automount VBox. Walczyłem przez kilka dni, zanim znalazłem twoje rozwiązanie, dzięki!Próbowałem rozwiązania rc.local, ale nie udało mi się go uruchomić.
Odkryłem jednak, że problem jest związany z folderem, z którego uruchomiono polecenie (nie mam pojęcia, dlaczego). Więc dodałem wiersz, aby zmienić katalog do mojego katalogu domowego przed poleceniem mount, a teraz działa.
Tak więc mój udział w
Dropbox
systemie Windows nazywa się , mój punkt podłączenia to/home/jamie/Dropbox
moja nazwa użytkownikajamie
, oto co wstawiłem do rc.local:źródło
sleep 2
przed montażem urządzenia.Robię to w bardzo podobnym trybie, który został zaproponowany powyżej, ale te skrypty tworzą wymagane i montują lub odmontowują folder współdzielony za pomocą następującego skryptu:
Zapisz to jako
/opt/.scripts/VBoxShared.sh
.Upewnij się, że można to uruchomić. Na typ skorupy:
Teraz dodajemy wiersz uruchamiający ten skrypt
rc.local
:i dodajemy te linie przed ostatnią linią (
exit 0
):Zapisz ( CtrlO) i zamknij ( CtrlX)
W tym momencie montujemy automatycznie wszystkie foldery współdzielone wymienione
<SharedFolder>
podczas uruchamiania.Aby odmontować, potrzebujemy tylko typu:
sudo nano /etc/rc6.d/K99-vboxsf-umount.sh
Zapisz ( CtrlO) i zamknij ( CtrlX)
I to wszystko!
źródło
Oto działające rozwiązanie.
Jako root (IE sudo su) Przejdź do katalogu domowego (cd ~) i utwórz plik cron:
vi cronjobs
Dodaj następujący
@reboot sleep 15; mount -t vboxsf app / mnt / app
Zapisz plik
Uwaga: zamień aplikację na nazwę folderu współdzielonego i / mnt / app w miejscu, w którym chcesz ją zamontować. W tym przypadku najpierw utworzyłem aplikację folderów pod mount (aplikacja mkdir).
Aby włączyć crona jako root (dla powyższej nazwy pliku)
crontab cronjobs
Upewnij się, że cron jest aktywny:
crontab -l
uruchom ponownie i zostanie zamontowany. 15-sekundowy sen zapewnia wystarczająco dużo czasu na przygotowanie się do montażu.
źródło
Ostatnio napotkałem ten wątek, gdy po aktualizacji do Ubuntu LTS-18 (i nie wprowadzeniu żadnych zmian w VirtualBox, a także po ponownej instalacji rozszerzeń i bla-de-blaha), auto-mount przestało działać. Te
sf_xxx
katalogi były obecne/media/
, ale żaden z nich nie zostały właściwie zamontowane.Próby zamontowania ich
/etc/fstab
(jak sugeruje własna dokumentacja VirtualBox) nie działały: rozruch nie powiódł się w „trybie awaryjnym”, nawet gdy zmodyfikowałem/etc/modules
plik.Co było w końcu działać - chociaż uważam go jako stinkin' Hack - to
crontab
trik opisany powyżej.Do dziś nie mam pojęcia „co się zepsuło”.
źródło
Miałem problem z widocznym folderem współdzielonym, ale nie było w nim żadnych plików. Więc zrobiłem włamanie podobne do tego, co pokazano powyżej:
Upewniłem się, że mój użytkownik jest w prawidłowej grupie (grupach) i że w fstab jest wpis dotyczący montowania udziału oraz że uprawnienia zostały ustawione poprawnie, a automatyczne podłączanie było włączone w ustawieniach VirtualBox, ale nadal nie pliki do obejrzenia.
Więc otworzyłem aplikację Startup Applications w GUI Ubuntu 18.04 i stworzyłem zadanie, które uruchamiało „sudo mount -a” zaraz przy starcie. Z jakiegokolwiek powodu folder współdzielony nie był poprawnie montowany, gdy fstab był automatycznie analizowany podczas rozruchu, więc ponowne zamontowanie wszystko wydawało się rozwiązać problem. Teraz widzę pliki w udziale.
źródło
Wypróbowałem wszystkie rozwiązania tutaj i żadne nie zadziałało.
Udało się zainstalować nadzorcę i uruchomić skrypt w języku Python.
zainstaluj nadzorcę
apt-get install supervisor
skrypt Pythona (mój był w /home/ubuntu/shared_folders.py)
utwórz plik konfiguracyjny dla przełożonego
nano /etc/supervisor/conf.d/sharedfolders.conf
[program:shared_folders] command=python shared_folders.py directory=/home/ubuntu process_name=%(program_name)s_%(process_num)s numprocs=1 numprocs_start=0 autostart=true autorestart=true startsecs=1 startretries=3 exitcodes=0,2 stopsignal=TERM stopwaitsecs=10 ;user=pavelp redirect_stderr=true stdout_logfile=/var/log/supervisor/qlistener-stdout.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=10 stdout_capture_maxbytes=0 stdout_events_enabled=false stderr_logfile=/var/log/supervisor/qlistener-stderr.log stderr_logfile_maxbytes=50MB stderr_logfile_backups=10 stderr_capture_maxbytes=0 stderr_events_enabled=false environment=APPLICATION_ENV=development serverurl=AUTO
otwarty nadzór
sudo supervisorctl
przeczytaj konfigurację
reread
dodaj konfigurację
add shared_folders
źródło
(W moim przypadku moim systemem operacyjnym jest Mac OS X, a moim systemem operacyjnym gościa jest Ubuntu)
Żadne z powyższych rozwiązań i rozwiązania wymienione tutaj i tutaj nie działały dla mnie. Wystąpił problem z nimi wszystkimi.
Oto, co w końcu zrobiłem, aby rozwiązać problem:
1- Utworzyłem folder współdzielony w interfejsie VirtualBox, wskazując folder o nazwie
VMShares
w moim Mac OS, nazywając gowd
2- Następnie zainstalowałem narzędzia do dodawania gości Ubuntu (wymagane ponowne uruchomienie)
3- Następnie utworzyłem folder w moim systemie-gościu jako punkt montowania (w moim przypadku była to nazwa
/home/fashid/host
)4- Następnie pobiegłem:
To było polecenie, aby zapewnić, że udział jest dostępny dla systemu-gościa, tymczasem nadal musisz go zamontować w systemie-gościu, aby był on faktycznie dostępny.
Pokaże coś takiego:
To jest podstęp! Pokazuje rzeczywistą nazwę, którą należy wprowadzić poniżej polecenia, aby ją zamontować i udostępnić w systemie-gościu:
Czy zrozumiałeś o co chodzi? Nigdzie później nie używałem wd. W kroku 3 musiałem pobrać rzeczywistą nazwę folderu (hosta) zamiast dowolnej nazwy, którą przypisałem w oknie dialogowym GUI.
Powyższe kroki rozwiązały mój problem.
źródło