如何从Windows 7 VirtualBox客户端关闭Ubuntu 11.10主机?

我在Ubuntu 11.10主机上安装了虚拟机4.2。

我有Windows 7作为唯一的客户操作系统。

通过在命令选项中使用命令“VBoxMange startvm Win7”在启动应用程序中添加它,我可以在Ubuntu启动时自动启动Windows 7虚拟机。

现在,当我关闭Windows 7时,虚拟机程序正在关闭,但是当我在Virtualbox中单击Windows 7中的Shutdown时,我想要关闭Ubuntu时,我会回到Ubuntu。

这是我的任务。 有人可以帮帮我吗?

此外,当虚拟盒自动启动时,Ubuntu的桌面应该不可见。

执行此操作的方法是编写脚本以启动VM,等待它终止,然后发出关闭命令。

在主文件夹中创建文件夹bin (如果它尚不存在)。

现在创建一个包含以下内容的文件。 我们称之为win7vmshutdown ,并将其保存在bin文件夹中。

 #!/bin/bash VBoxManage startvm 'Win7' # Start the VM. sleep 10s # Give it time to start up. while pgrep VirtualBox >/dev/null # As long as the VM is running... do sleep 5s # Wait a bit before trying again. done gnome-session-quit --power-off # Issue the command to shut down. 

使脚本可执行; 在终端中输入以下内容。

 chmod +x ~/bin/win7vmshutdown 

在启动应用程序中,删除VBoxManage ...命令并将其替换为win7vmshutdown

shutdown命令将提示您关闭; 如果你不回答,它将在60秒内关闭。 这使您有时间在出现意外问题时中断关机。

重新启动计算机以进行测试。

你说:

此外,当虚拟盒自动启动时,Ubuntu的桌面应该不可见。

为此,您需要全屏运行VM。 在VM中安装Guest Additions,重新启动它,然后全屏运行。

您需要创建一个在Windows框中运行的脚本,该脚本执行系统的协调关闭。

根据我的阅读,您希望从Windows 7 VM中触发此操作。

对于Windows 7的脚本化关闭,请使用psshutdown实用程序。

您还需要通知主机关闭。 执行此操作的最佳方法是使用安全shell远程触发它。

在Ubuntu机器上:

您应该专门为此任务创建一个用户,并专门为此用户创建一个SSH密钥。 此用户将运行具有提升权限的脚本,并且应至少对其进行访问。

在Windows机器上:

您将需要一种通过SSH在主机上运行脚本的方法。 Cygwin版本的OpenSSH可能是最好的选择。

所以你的Windows脚本应该

  • 使用SSH在主机上启动脚本
  • 运行psshutdown -t 0 -k

Ubuntu脚本应该

  • 由root拥有
  • 启用setuid属性,使其以root权限运行
  • sleep时间大于Windows机器关机时间
  • 执行/sbin/poweroff

至于其他问题 – 如果你不想随时看到Ubuntu桌面,你就可以不加载它。 添加仅以全屏模式启动VirtualBox实例的用户X会话。