在没有窗口的背景下运行VirtualBox?


106

我想知道是否有可能在没有任何窗口打开的情况下在后台使用VirtualBox运行Ubuntu虚拟机。

这个想法是通过SSH连接到Linux主机,该主机将在后台运行。

有没有人做过这样的事情?可能吗?


您是说通过SSH连接到linux guest虚拟机?您可以使用QEMU非常轻松地执行此操作,它实际上将在您的终端上运行来宾。
Felix



1
放开这个问题最好将其作为原始问题处理。在另一个问题上,投票以重复方式结束。
bwDraco 2015年

完全同意@DragonLord- 单击此处转到另一个问题,然后将其关闭,作为对这个问题的重复。
Raystafarian 2015年

Answers:


92

VBoxManage startvm $VM --type headless 将在后台启动指定的虚拟机。

要关闭它,请向来宾请求关闭。


如果已正确设置网络,则将只能通过SSH进入计算机。我认为您需要使用桥接,以便VM和您的计算机位于同一网络上。此外,VirtualBox仍将运行目标操作系统的gui,您可以通过远程桌面“ rdesktop”(由于您在ubuntu中而从apt获取)连接到它
basszero 2010年

1
真正。我假设通常首先通过VirtualBox GUI运行VM,以进行安装和配置。一切正常(包括网络连接)都只能使用VBoxManage。
developmentalinsanity

使用其他VM软件,我可以关闭窗口,以便它不总是打开并让它继续在后台运行,但是当我想与之交互时打开窗口。这是这个吗?
JFA 2015年

请确保不使用-X或-Y将ssh连接到计算机,因为这些命令似乎使上述命令将进程附加到了外壳程序上,因此,如果退出,则VM将中止。
moritz


23

绝对!您正在寻找无头安装(Virtualbox)。从命令行启动计算机的方式类似于:

VBoxHeadless --startvm Debian --vrdp=off

但是,您将需要某种方式进行连接。我要做的是在来宾和主机之间映射端口。使用此配置,您的主机2222端口将映射到您的客户机的端口22。

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  

之后,您可以登录:

ssh localhost -p2222

vm必须正在监听ssh连接,对吗?可能值得将其明确。
Matheus Santana'Mar

3

的替代品VBoxManage startvm "{VMName}" --type headless
VBoxHeadless -startvm "{VMName}"

有趣的是,我刚刚弄清楚了如何通过RDP无头运行VM。

注意-至少在Windows上,它将阻止您的命令窗口。如果需要继续使用控制台窗口,请打开另一个窗口以启动VM。

要关闭虚拟机,您要求关闭来宾操作系统。VBoxHeadless完全关闭Guest虚拟机时释放控制台(您可以Ctrl+C,但我认为它可能类似于真实计算机上的硬重置)。


vboxheadless阻止控制台的事实大大破坏了无头模式的目的。在Mac OS X上(大概在Linux和Solaris上),无头模式在使用&将vboxheadless发送到后台时起作用。
Andrew J. Brehm

我想有办法在Windows上做到这一点,但我还没有找到。无论如何,无头虚拟机肯定比运行完整GUI的虚拟机在服务器计算机上使用的资源更少。
假名称


2

我认为无缝模式不是他在这里想要的,我认为正确的方法是VBoxHeadless,您可以在手册中找到详细信息。它使用Command-Lin接口运行,例如,如果虚拟机正在服务器上运行,但不需要从服务器显示该信息,则可以使用它。您将能够将桌面远程安装到计算机上(前提是您知道如何通过命令行设置选项)。

我建议在virtualbox论坛中提出这个问题。实际上,请按我的期望进行搜索。


VBoxManage是对的,对不起。在手册中链接信息http://www.virtualbox.org/manual/ch08.html


2

要使用GUI以无头模式启动:

启动虚拟机时,按住Shift键。

之后,您还可以连接和断开GUI的连接(使用Show and Machine-> Detach GUI options)。


1

我发现无头模式在Linux(CentOS 5.6)中后台运行时似乎可以正常工作,但是只要进程在后台运行,您就无法访问RDP功能。进行“ fg”操作可使该过程回到前台,并恢复RDP功能。好像最好通过init脚本启动无头虚拟机,而无需与控制台进行交互。


1

您可以使用VBoxHeadless,也可以使用VBoxHeadless(或者我想知道为什么没有人在我之前提到它),您可以选择一个启动选项,从而无需任何GUI即可运行VM。

按住Shift键并启动机器,或者右键单击机器并在“运行”项下搜索类似“无输出运行”的内容


0

我已经将这些行添加到我的.bashrc中:

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

对于ssh访问,您无需更改配置,只需保留NAT,就可以按照以下步骤设置端口转发表:

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

当您在计算机浏览器中插入localhost:8080时,将打开VM(端口80)上的页面。


0

如果虚拟机正在运行并且显示屏幕,则可以通过执行以下步骤将其隐藏。

在此处输入图片说明

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.