如何使用命令行安全关闭VirtualBox中的Guest OS


70

我有Ubuntu 10.10,并使用VirtualBox 3.2。作为来宾操作系统,我在VirtualBox中还有另一个Ubuntu。

主机Ubuntu启动后,我将使用以下命令自动启动Guest Ubuntu:

VBoxHeadless -startvm Ubuntu --vrdp on

然后,我可以使用ssh或tsclient访问它。

现在,一旦我关闭主机Ubuntu,就需要自动关闭Guest Ubuntu。有谁知道使用命令行自动关闭Guest Ubuntu的安全方法吗?我发现了两种方法可以关闭来宾操作系统,但是我不确定它们是否安全。他们是:

VBoxManage controlvm Ubuntu acpipowerbutton

要么

VBoxManage controlvm Ubuntu poweroff

Answers:


57

如果打开“ Gnome电源管理”首选项,则可以设置电源按钮时要执行的操作。如果将其设置为关闭,则在使用VBoxManage controlvm Ubuntu acpipowerbutton 命令按虚拟电源按钮时,它将正常关闭。


16

要安全关闭vm,请使用以下命令:

vboxmanage controlvm Ubuntu poweroff soft

9
你能提供你的资料吗?我似乎无法在VBox文档的第8章中找到有关此“软”选项的任何内容。
rbaleksandar 2015年

5
自2013年以来杀死了毫无戒心的vms。也许删除此答案?任何人?
逃难

11

如果要在服务器关闭虚拟机时关闭虚拟机,则必须等待该虚拟机

(在此shellscript中,“ root”是调用者,“ theuser”是“ thevm”的所有者)

我知道命令的输出VBoxManage list runningvms返回空字符串时,vms已完成。

我在shell脚本中使用它

...
stop(){
    su -c "VBoxManage controlvm thevm acpipowerbutton" -s /bin/bash theuser
    while [ "`su -c 'VBoxManage list runningvms' -s /bin/bash theuser`" != "" ]
    do
        echo waiting for VMs to shutdown
        sleep 3
    done
}
...

9

不要这样做:

VBoxManage controlvm Ubuntu poweroff

这等效于拔掉真实计算机上的电源插头。你不想这样做!

使用ACPI关闭方法(检查电源管理设置,如Egil建议),或者savestate尝试使用保存状态方法()。


1
应该把不要这样做!在命令之前。我阅读了前两行并运行了命令!
nsane

1
@ nisargshah95请允许我参考此线程给出的示例。务必先阅读所有说明,并在运行任何命令之前先努力理解它。在Linux中尤其如此。
塞缪尔·哈默

2
我了解,但在最常见的情况下,阅读命令后,一个人会推断这是解决方案(无需进一步阅读)
nsane

我同意@nsane –我建议您进行编辑,以免其他情况发生。
亚当·K·迪恩

6

您应该关闭虚拟Ubuntu的电源,就像关闭真实硬件的电源一样。从ssh会话的命令行远程发出:

sudo poweroff

如果要保存机器状态(类似于暂停/休眠),请使用@htorque的答案中的第二点。


-4

我通常会关闭VM(Linux), $ sudo shutdown -h now 因为这是终止VM(不是关闭电源)并提供宽限时间并(可能)将消息提供给登录用户的原因,这是终止VM的最全面的方法。


1
问题与从主机关闭来宾OS有关。如果您是从主机上运行的,则不会达到预期的效果。
戴夫
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.