Uruchom VirtualBox w tle, bez okna?


106

Zastanawiałem się, czy można uruchomić maszynę wirtualną Ubuntu za pomocą VirtualBox w tle, bez otwartego okna.

Chodzi o połączenie przez SSH z hostem Linux, który działałby w tle.

Czy ktoś kiedykolwiek zrobił coś takiego? Czy to możliwe?


Masz na myśli połączenie przez SSH z gościem z Linuksem ? Możesz to zrobić bardzo łatwo za pomocą QEMU, która faktycznie uruchomi gościa w twoim terminalu.
Felix

Możesz być także zainteresowany konfiguracją SSH: superuser.com/questions/424083/virtualbox-host-ssh-to-guest
Fabricio PH


1
Pozostawiając otwarte, ponieważ to pytanie jest lepiej traktowane jak oryginał; głosował za zamknięciem jako duplikat drugiego pytania.
bwDraco

Całkowicie zgadzam się z @DragonLord - kliknij tutaj, aby przejść do drugiego pytania i zamknąć je jako duplikat tego pytania.
Raystafarian,

Odpowiedzi:


92

VBoxManage startvm $VM --type headless uruchomi określoną maszynę wirtualną w tle.

Aby go zamknąć, poproś gościa o wyłączenie.


Połączenie SSH z urządzeniem będzie możliwe tylko wtedy, gdy poprawnie skonfigurujesz sieć. Myślę, że musisz użyć mostka, aby maszyna wirtualna i komputer znajdowały się w tej samej sieci. Ponadto VirtualBox będzie nadal uruchamiał GUI docelowego systemu operacyjnego i możesz się z nim połączyć za pośrednictwem zdalnego pulpitu, „rdesktop” (pobierz od apt, ponieważ jesteś w Ubuntu)
basszero

1
Prawdziwe. Zakładam, że maszyna wirtualna jest zwykle uruchamiana za pośrednictwem interfejsu GUI VirtualBox, aby ją zainstalować i skonfigurować. Używaj VBoxManage tylko wtedy, gdy wszystko (łącznie z siecią) działa.
Developmentalinsanity

Z innym oprogramowaniem VM mogę zamknąć okno, aby nie zawsze było otwarte i nadal działało w tle, ale otwórz okno, gdy chcę się z nim połączyć. Czy to właśnie to robi?
JFA

Upewnij się, że ssh na maszynie nie ma opcji -X lub -Y, ponieważ wydają się powodować, że powyższe polecenie dołącza proces do powłoki, więc jeśli wyjdziesz, maszyna wirtualna przerywa działanie.
moritz


23

Absolutnie! Szukasz bezgłowej instalacji (Virtualbox). Sposób uruchomienia maszyny z wiersza poleceń jest podobny do:

VBoxHeadless --startvm Debian --vrdp=off

Będziesz jednak potrzebować sposobu na połączenie. To co robię, to mapowanie portów między gościem a hostem. W tej konfiguracji port hosta 2222 zostanie zmapowany na port 22 komputera-gościa.

VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22  
VBoxManage setextradata "Debian" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222  

Następnie możesz zalogować się za pomocą:

ssh localhost -p2222

VM musi słuchać połączeń ssh, prawda? Być może warto to wyjaśnić.
Matheus Santana

3

alternatywą VBoxManage startvm "{VMName}" --type headlessjest
VBoxHeadless -startvm "{VMName}"

Zabawne, że właśnie skończyłem wymyślać, jak uruchomić maszynę wirtualną bezgłową przez RDP.

Uwaga - przynajmniej w systemie Windows zablokuje okno poleceń. Jeśli musisz nadal korzystać z okna konsoli, otwórz kolejne, aby uruchomić maszynę wirtualną.

Aby zamknąć maszynę wirtualną, należy poprosić system operacyjny gościa o zamknięcie. VBoxHeadlesszwalnia konsolę, gdy gość jest całkowicie zamknięty (możesz Ctrl+C, ale myślę, że może to być analogiczny do twardego resetu na prawdziwej maszynie).


Fakt, że vboxheadless blokuje konsolę, bardzo przeczy celowi trybu bezgłowego. W systemie Mac OS X (i prawdopodobnie w systemach Linux i Solaris) tryb bezgłowy działa, gdy wysyłasz vboxheadless w tle za pomocą &.
Andrew J. Brehm

Wyobrażam sobie, że można to zrobić w systemie Windows, po prostu go nie znalazłem. W każdym razie bezgłowy VM z pewnością zużywa mniej zasobów na komputerze serwera niż ten z pełnym GUI.
Fałszywe imię

2

Używam VBoxTool ze strony http://vboxtool.sourceforge.net/ i działa dla mnie idealnie. Może automatycznie uruchamiać maszyny wirtualne podczas rozruchu oraz zatrzymywać / zapisywać maszyny wirtualne podczas zamykania i zapewnia prosty czysty interfejs wiersza poleceń.


2

Nie sądzę, aby tryb płynny był dokładnie tym, czego on tutaj szuka, myślę, że właściwą rzeczą byłoby VBoxHeadless, które szczegóły można znaleźć w instrukcji. Działa przy użyciu interfejsu wiersza polecenia i byłby używany na przykład, jeśli na serwerze działała maszyna wirtualna, ale serwer nie potrzebował wyświetlania. Będziesz mógł zdalnie uruchomić pulpit na maszynę (pod warunkiem, że wiesz, jak ustawić tę opcję za pomocą wiersza poleceń).

Polecam zadawanie tego pytania na forach virtualbox. Właściwie najpierw wykonaj wyszukiwanie, ponieważ oczekuję, że zostało to już zadane.


Przepraszam, VBoxManage było właściwą rzeczą. Połącz informacje w instrukcji http://www.virtualbox.org/manual/ch08.html


2

Aby uruchomić w trybie bezgłowym za pomocą GUI:

Przytrzymaj klawisz Shift podczas uruchamiania maszyny wirtualnej.

Następnie będziesz mógł również łączyć się i odłączać od GUI (Korzystanie z Show and Machine -> Odłącz opcje GUI ).


1

Odkryłem, że tryb bezgłowy wydaje się działać dobrze w tle w Linuksie (CentOS 5.6), ale tracisz dostęp do funkcji RDP, dopóki proces jest w tle. Wykonaj „fg”, aby przywrócić proces na pierwszy plan, a funkcja RDP zostanie przywrócona. Wygląda na to, że uruchomienie bezgłowego vm najlepiej jest wykonać za pomocą skryptu init, w którym interakcja z konsolą nie jest wymagana.


1

Możesz użyć VBoxHeadless lub (i zastanawiam się, dlaczego nikt wcześniej o tym nie wspominał) możesz po prostu wybrać jedną z opcji uruchamiania, która uruchomi maszynę wirtualną bez żadnego GUI.

Przytrzymaj klawisz Shift i uruchom maszynę lub kliknij maszynę prawym przyciskiem myszy i wyszukaj coś takiego jak „Uruchom bez danych wyjściowych” w pozycji „Uruchom”


0

Dodałem te linie do mojego .bashrc:

VM='anakim'
alias vm='VBoxManage startvm $VM --type headless'
alias sshvm='ssh -p2222 localhost'

Aby uzyskać dostęp do ssh, nie musisz zmieniać konfiguracji, po prostu zachowaj NAT i możesz skonfigurować tabelę przekierowania portów w następujący sposób:

Name      | Protocol | Host Port | Guest Port
guestssh  | TCP      | 2222      | 22
localhost | TCP      | 8080      | 80

Po wstawieniu localhost: 8080 do przeglądarki komputera strona z VM (na porcie 80) zostanie otwarta.


0

Jeśli maszyna wirtualna jest uruchomiona, a ekran się wyświetla, możesz ją ukryć, wykonując następujące kroki.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.