Mam wiele maszyn wirtualnych w moim Ubuntu12.04, za każdym razem, gdy zamykam lub ponownie uruchamiam, muszę je uruchamiać jeden po drugim.
Chcę pomóc w napisaniu skryptu do automatycznego automatycznego uruchamiania maszyn VBox podczas uruchamiania.
boot
scripts
virtualbox
autostart
Maythux
źródło
źródło
Odpowiedzi:
Możesz skorzystać z usługi VirtualBox Auto-start. Dobry samouczek opisujący, jak to zrobić, znajduje się na blogu „Life of a Geek Admin” .
Poniższe kroki zostały dostosowane z połączonego postu na blogu:
Najpierw musisz utworzyć plik
/etc/default/virtualbox
i dodać kilka zmiennych.VBOXAUTOSTART_DB, który zawiera bezwzględną ścieżkę do katalogu bazy danych autostartu i
VBOXAUTOSTART_CONFIG, który zawiera lokalizację ustawień konfiguracji autostartu. Plik powinien wyglądać podobnie do tego:
Teraz musimy utworzyć
/etc/vbox/vbox.cfg
plik i dodaćUwaga: jeśli nazwa pliku
vbox.cfg
nie działa powyżej, spróbuj nazwać jąautostart.cfg
.Jeśli jesteś jedynym użytkownikiem, możesz po prostu dodać wiersz
default_policy = allow
dovbox.cfg
pliku.Ustaw uprawnienia do katalogu na grupę vboxuser i upewnij się, że użytkownicy mogą pisać do katalogu, jak również lepki bit.
Dodaj każdego użytkownika do
vboxusers
grupy.(zamień
USERNAME
na nazwę użytkownika)UWAGA : Jeśli zmieniłeś uprawnienia grupy dla bieżącego użytkownika, wyloguj się i zaloguj ponownie, aby odświeżyć uprawnienia. (kredyt @ kR105)
Każdy użytkownik, który chce włączyć autostart dla poszczególnych komputerów, musi ustawić ścieżkę do katalogu bazy danych autostartu za pomocą
i włącz autostart dla pojedynczej maszyny wirtualnej za pomocą
Spowoduje to utworzenie
myuserid.start
pliku w/etc/vbox
kataloguTeraz uruchom ponownie usługę vboxautostart, aby odczytać zmiany.
Uruchom ponownie system i maszyna wirtualna powinna się uruchomić
źródło
Miałem podobne nieszczęśliwe incydenty podczas próby tej operacji na waniliowym LTS.
W tej wersji plik klucza /etc/init.d/vboxautostart-service nie został zainstalowany.
O ile wiem, wszystkie aplikacje VitualBox i wymagania zostały wprowadzone przez apt-get, więc nie mogę powiedzieć, dlaczego plik „vboxautostart-service” również nie został udostępniony. Ale aby temu zaradzić, oto moja aktualizacja posta kdmurraya.
1) Dla mnie istniał plik / etc / default / virtualbox . Więc należy dodać zmienne:
2) Należy utworzyć plik /etc/vbox/autostart.cfg zgodnie z opcją OP.
6b) Potrzebujesz skryptu usługi vboxautostart i uczynić go wykonywalnym.
6c) Zaalarmuj kontroler rc.d, ale użyłem 24 jako godziny rozpoczęcia. Umieszczenie zaledwie 20 i nie wystartowało. Być może działał jeszcze zanim virtualbox działał.
Następnie ponowne uruchomienie uruchomiło maszynę wirtualną poprawnie.
źródło
vboxdrv
w# Required Start
/# Required Stop
linie przezvirtualbox
. Wygląda na to, że zmienili nazwę usługi, więc system operacyjny nie może poprawnie wykryć priorytetów start / stop. Myślę, że nie potrzebujesz kroku 6c, jeśli zastąpiłeś te linie.Możesz użyć
vboxmanage startvm "my virtual machine" --type=headless|gui|sdl
(jednego z nich). Użyj „headless”, jeśli są to serwery, z którymi łączysz się w inny sposób niż za pomocą GUI.Aby faktycznie uruchomić te polecenia we właściwym czasie podczas rozruchu, powinieneś przeczytać na Upstart.
źródło
Po wielu nieszczęśliwych godzinach próbujących wprowadzić procedury z kdmurray powyżej do pracy, bez powodzenia znalazłem metodę, która działała po prostu.
Najpierw mój host Linux (Mint 17) został skonfigurowany w czasie uruchamiania, aby automatycznie logować się na moje konto główne.
Po drugie, użyłem udogodnień w VirtualBox GUI (v4.3.12), aby utworzyć skrót do każdej maszyny wirtualnej na pulpicie. {kliknij prawym przyciskiem myszy maszynę wirtualną w lewej kolumnie i wybierz „Utwórz skrót na pulpicie”}
Dalej: Odkryłem już, że uruchomienie Menu-> Centrum sterowania -> Aplikacje startowe -> Dodaj i dodanie skrótów pulpitu dało pliki, które nie działały, zauważyłem z innej odpowiedzi na tej stronie, że lokalizacja startupów to / home /USERNAME/.config/autostart, więc kliknąłem prawym przyciskiem myszy każdy ze skrótów VM na pulpicie, a następnie wkleiłem je do tego folderu, zastępując wcześniejsze pliki crap. Teraz opracowali „ładne” ikony VirtualBox.
I oczywiście po ponownym uruchomieniu komputera hosta 3 maszyny wirtualne uruchomiły się automatycznie.
:-)
Bill Williams
PS: Niestety, wciąż czegoś mi brakuje, ponieważ często maszyny wirtualne nie uruchamiają się podczas rozruchu, zamiast tego generują okno dialogowe z błędem, które mówi, że są zablokowane, nawet jeśli kazałem im się zamknąć przed ponownym uruchomieniem hosta.
źródło
Oprócz dobrego opisu powyższej usługi vboxautostart możesz to zrobić
aby automatycznie zatrzymać gościa przy wyłączaniu. W przypadku Ubuntu 14.04 musiałem dodać tryb uśpienia 30 do sekcji zatrzymania usługi vboxautostart, aby poczekał, aż gość zostanie całkowicie zapisany.
źródło
Znalazłem prostszy sposób pod Ubuntu 16.04 z VBox 5.1.34.
Będąc w VBox, kliknij prawym przyciskiem myszy uruchomioną lub bezczynną maszynę wirtualną na liście, wybierz „Utwórz skrót na pulpicie”. Gdy zobaczysz ikonę na pulpicie, otwórz za pomocą dowolnego narzędzia, które pozwoli zobaczyć, jakie polecenie VBox zostało utworzone (na moim system, klikam prawym przyciskiem myszy i wybieram „właściwości”). Skopiuj to do schowka.
Otwórz program, aby zaktualizować „aplikacje startowe” i utwórz nową aplikację, która uruchamia się w czasie rozruchu, wklejając polecenie skopiowane z łącza pulpitu utworzonego przez VirtualBox.
źródło
Aby uruchomić maszynę wirtualną po zalogowaniu się do naszej sesji, możemy chcieć zdefiniować plik .desktop:
Kiedy ten plik został skopiowany lub przeniesiony do naszego katalogu autostartu, zostanie on wykonany po zalogowaniu:
Uruchamianie Virtual Box w przestrzeni użytkownika może pomóc uniknąć niepożądanych efektów ubocznych uruchamiania ich podczas uruchamiania (np. Maszyna wirtualna działa jako root, czas uruchamiania niesamowicie wzrasta, ...).
źródło
Można to zrobić za pomocą interfejsu zarządzania wiersza poleceń VirtualBox. Po prostu uruchom następujący skrypt podczas uruchamiania.
Jest fajny samouczek, aby uzyskać więcej informacji.
źródło
Dodatek do odpowiedzi @kdmurray.
Jeśli pojawi się błąd:
Aby rozwiązać ten problem, musiałem ręcznie utworzyć pliki „nazwa użytkownika” .start i „nazwa użytkownika” .stop za pomocą:
I zmień właściciela za pomocą:
ponownie odtwarzać:
następnie uruchom ponownie usługę:
sprawdzenie, czy wszystko jest w porządku z:
i powinieneś zobaczyć proces „VBox ...” na liście, jeśli maszyna wirtualna jest uruchomiona
źródło
Możesz również uzyskać opisanego tutaj menedżera sesji gnome. Gnome Session Manager Jest w centrum oprogramowania lub możesz po prostu przejść do terminala i wpisać
sudo apt-get install gnome-session-common
Następnie możesz utworzyć mały skrypt do uruchomienia i użyć menedżera sesji gnome, aby go uruchomić. Oto mały przykładowy skrypt na początek ...
źródło
W ten sposób uruchamiam moje Centos (nazwa mojej maszyny wirtualnej) po ponownym uruchomieniu komputera. Używam crontab do tej pracy. Oto mój wpis w crontabie:
źródło
W przypadku serwera Ubuntu 16.04.1 LTS rozwiązałem ten problem, wykonując:
Najpierw aktywuj usługę rc-local.service
Dodaj następujący wiersz
/etc/rc.local
Zauważ, że użytkownik virtual_box_user może zobaczyć maszynę wirtualną (którą chcesz uruchomić) wykonującą polecenie:
Przykład:
Zmodyfikowany
/etc/rc.local
powinien wyglądać takJeśli nie wybierzesz odpowiedniego właściciela virtualbox, powinieneś zobaczyć błąd podczas wpisywania polecenia:
Mam nadzieję, że to może pomóc
źródło
1 - Utwórz plik:
Wklej to:
/bin/su validuser -c "/usr/bin/vboxmanage startvm MACHINENAME2--type headless" /bin/sleep 1
2 - Zrób plik vm-start wykonywalny:
3 - Edytuj plik rc.local
Dodaj:
4 - Uruchom ponownie.
źródło