Mam maszynę VirtualBox z systemem Windows XP na hoście systemu Windows XP.
Jak mogę uruchomić VirtualBox jako usługę, aby uzyskać maszynę wirtualną pod maską i nie muszę uruchamiać VirtualBox, aby uzyskać dostęp do mojej maszyny wirtualnej (przez VNC z sieci)?
Przekonałem się, że VirtualBox Manage może być dobrą drogą, ale ponieważ jestem początkujący, nie wiem od czego zacząć.
Jakieś pomysły?
windows-xp
virtualbox
Jhonny D. Cano -Leftware-
źródło
źródło
Zauważ, że aktualnie akceptowana odpowiedź (Molly7244) faktycznie uruchamia maszynę wirtualną podczas logowania - a nie podczas uruchamiania komputera. Innymi słowy, nie jest to usługa.
Do rzeczywistej usługi, która działa podczas uruchamiania komputera, używam dwóch skryptów (oryginalnie stąd ) w połączeniu z cygwin (cygrunsrv). Wykorzystuje tryb VBoxHeadless, jak wspomniano w innym miejscu na tej stronie.
Pierwszy skrypt uruchamia maszynę wirtualną za pośrednictwem VBoxHeadless; pobiera nazwę odpowiedniej maszyny wirtualnej do uruchomienia (i inne informacje, takie jak katalog domowy VBOX) ze zmiennych środowiskowych. Drugi skrypt instaluje usługę dla konkretnej maszyny wirtualnej (używając cygrunsrv do wywołania pierwszego skryptu z ustawionym właściwym ustawieniem środowiska env). Wreszcie jest trzeci plik, który zawiera typowe funkcje. Jeśli umieścisz je wszystkie w jednym katalogu, możesz zainstalować nowy vm w następujący sposób:
Następnie uruchom usługę za pomocą polecenia „net start vboxd-MyVMName” lub „cygrunsrv -S vboxd-MyVMName”.
Oto skrypt działający na maszynie wirtualnej „vboxd”:
A oto skrypt instalatora „vboxd-install”:
I na koniec, oto skrypt „.libcommon”, do którego odwołują się oba:
To rozwiązanie działa świetnie dla mnie; mam nadzieję, że będziesz miał podobne szczęście.
źródło
Wygląda na to, że najprostszą odpowiedzią w tym momencie jest VBoxVMService . Jeszcze tego nie próbowałem, postaram się pamiętać, aby tu przyjechać i zaktualizować odpowiedź, jeśli / kiedy to zrobię.
źródło
Uzgodnione w sprawie VBoxVMService. Jest bardzo łatwy w konfiguracji i wydaje się, że działa dobrze. Tutaj znajdziesz informacje na temat konfiguracji:
http://www.windows-noob.com/forums/index.php?/topic/4931-have-virtualbox-vms-start-as-a-service-on-a-windows-host/
**** EDYCJA **** Zgodnie z poniższym wnioskiem streszczenie linku. Chociaż rozwiązanie zadziałało dla mnie, uznanie należy się Peterowi Upfoldowi - http://peter.upfold.org.uk/
Zastąp w VBOX_USER_HOME folderem .VirtualBox w odpowiednim katalogu domowym użytkownika, a także dyrektywami RunAsUser i UserPassword, i ustaw nazwę docelowej maszyny wirtualnej w aplikacji VirtualBox w VmName. Możesz także dodać dodatkowe sekcje [Vmx] po [Vm0] z innymi maszynami wirtualnymi, aby uruchomić po uruchomieniu komputera.
Gdy konfiguracja jest zadowalająca, z poziomu wiersza polecenia włączonego przez administratora uruchom następujące polecenie, aby zainstalować usługę. Po zainstalowaniu usługi możesz usunąć hasło użytkownika z pliku INI, ponieważ jest ono zapisywane w konfiguracji usługi:
Teraz musisz ponownie uruchomić komputer przed próbą uruchomienia usługi po raz pierwszy, w przeciwnym razie nie będzie w stanie zlokalizować maszyn wirtualnych.
Po ponownym uruchomieniu usługa powinna zostać uruchomiona (z zastrzeżeniem opóźnienia „Automatyczny (opóźniony start)”), a maszyny wirtualne zostaną uruchomione podczas rozruchu.
źródło
Po prostu oferuję to jako kolejną opcję:
Użyj wbudowanego polecenia systemu Windows „sc”, aby utworzyć usługę. Połącz to z „vboxheadless” przeniesie Cię tam, gdzie chcesz być.
Nie testowałem konkretnie z vboxheadless, ale stworzyłem usługę testową, która uruchamia calc.exe. Powinieneś robić coś takiego:
sc create servicenamehere start= auto binPath= "C:\path\to\vboxheadless.exe --startvm name"
Aby uzyskać więcej informacji, zapoznaj się z dokumentacją sc. Uwaga: Te spacje po znaku równości są zamierzone.
źródło
Jeśli skrypty vboxd przysparzają Ci tyle samo kłopotów co mi, możesz spróbować tego; jest to raczej prostsze rozwiązanie, zaimplementowane w Perlu, które zapewnia tę samą funkcjonalność. W szczególności maszyna wirtualna uruchamia się z systemem (zakładając, że usługa jest ustawiona na automatyczne uruchamianie, co jest ustawieniem domyślnym) i spada automatycznie po zatrzymaniu usługi.
Główne różnice w stosunku do rozwiązania vboxd, poza tym, że z mojego doświadczenia jest znacznie prostszy, to to, że ten skrypt nie przekazuje ustawienia portu VRDE do VBoxHeadless, a zamknięcie maszyny wirtualnej jest obsługiwane za pomocą „acpipowerbutton” zamiast „savestate” .
Jeśli to nie pasuje do twoich celów, łatwo to zmienić; w pierwszym przypadku dodaj „-e” TCP / Ports = [, port ...] ”do ciągu wiersza poleceń VBoxHeadless ($ cmd), aw drugim przypadku po prostu zmień„ acpipowerbutton ”na„ savestate ”w moduł obsługi SIGTERM.
Oto skrypt Perla:
A oto wiersz polecenia cygrunsrv, którego użyłem do zainstalowania usługi Windows:
Stamtąd powinno być po prostu kwestia wydania „sc start <nazwa-usługi>” i powinieneś zacząć - pamiętaj, że domyślnie dziennik usług cygrunsrv loguje się do / var / log / <nazwa-usługi> .log, więc jeśli coś źle się zachowuje, jest to pierwsze miejsce, w którym można znaleźć powód.
Należy pamiętać, że kiedy uruchomisz maszynę wirtualną w ten sposób, będzie ona działać pod wbudowanym kontem SYSTEM, a nie z własnym. W takim przypadku nie będzie można administrować maszyną wirtualną za pośrednictwem konsoli VirtualBox, gdy działa ona jako usługa; Wygląda na to, że jest w stanie „Wyłączony” i nie będzie można przejść do jego ustawień. (Próba włączenia maszyny wirtualnej, gdy jest uruchomiona jako usługa, nie jest zalecana - nie wiem, co się stanie, ale w najlepszym razie będzie to brak możliwości działania, aw najgorszym przypadku doprowadzi do jej połączenia z maszyną wirtualną.) Jeśli musisz zmienić ustawienia maszyny Wirtualnej lub uzyskać dostęp do konsoli, najpierw zatrzymaj usługę (i poczekaj na zamknięcie VBoxHeadless.exe), a następnie skonfiguruj ją / włącz w konsoli VirtualBox, jak zwykle.
Prawdopodobnie możesz rozwiązać ten problem, instalując drugą usługę interaktywną w celu uruchomienia konsoli VirtualBox; ponieważ uruchomiłoby to również konsolę na koncie SYSTEM, najprawdopodobniej byłby w stanie zobaczyć działającą maszynę wirtualną i nią zarządzać. Sam nie musiałem tego robić, więc nie jestem pewien, czy to zadziała, ale nie widzę powodu, dla którego by to nie działało. (Jeśli spróbujesz, byłbym wdzięczny za komentarz do tej odpowiedzi, informujący mnie, jak Ci się udało. Dzięki!)
Mam nadzieję że to pomoże!
źródło
vboxd-install
jest pomocne, ponieważ wygodnie ukrywa szczegóły argumentów cygrunsrv. Zgadzam się jednak, żeacpipowerbutton
jest to lepsza opcja „stop” niżsavestate
.