Virtualbox 在 Windows 上无头启动 VM

Virtualbox 在 Windows 上无头启动 VM

Windows 上的 Oracle VirtualBox

大家好,

有没有办法启动无头虚拟机(vboxheadless -s),但可以关闭该命令窗口,或者如果我将其添加为启动项,是否会使其静默运行?

我已经成功导出了一个设备(linux vm),当我进行批量导入时,它会保留我最初配置的设置吗?还是必须分配桥接适配器、内存数量等?

非常感谢您的建议!诚挚的问候

编辑:Iain,如果有人想在 CentOS VM 首次启动时编写 GuestAdditions 安装脚本,我是否应该将命令 ./VBOXLinux-x86-additions.run 放入 bash 脚本中,它将在启动时运行,对此的任何想法都会非常有帮助。

亲切的问候

答案1

如果你使用

vboxmanage import ovffile.ovf --dry-run

您将收到一份报告,告知您导入实际完成时将应用哪些配置。您还将获得有关如何进行更改(如果需要)的建议。

至于从命令行和窗口分离运行 vboxheadless,这并不像你想象的那么简单。一个简单的

start /b vboxheadless -s vmname

似乎可以工作,因为它脱离了命令行,但是如果您关闭窗口,子进程也会死亡,并且“电源线”会从您的虚拟机中拔出。

为了解决这个问题,使用一个小的 vbs 脚本 test.vbs

Set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("c:\temp\test.bat", 0)
set WshShell = Nothing

我的测试.bat

@echo off
vboxheadless -s vmname

答案2

这是一篇很老的帖子,但我花了很多时间寻找它

这是我使用的

VBoxManage.exe startvm "myvm" --type "headless"

并阻止它

VBoxManage.exe controlvm "myvm" savestate 

或者poweroff

我已将它们放入 Widows 7 任务计划程序中,以便它可以随 Windows 一起启动和停止。

开始:
启动时触发

关机:
触发事件

系统事件:
来源 User32
事件 ID 1074

我发现的一个问题是,如果 IP 发生变化,就很难找出正确的 IP 地址。

答案3

据我所知,当您导入该应用程序时,它将保存您在导出该应用程序的机器上的设置。

看看这个帖子VirtualBox 论坛上可以帮助您。

答案4

我正在使用一个名为服务端,这在这种情况下非常有用。它使您能够以无头模式将 VirtualBox VM 作为 Windows 服务运行(每个 VM 一个服务)。它托管在 Sourceforge 上:

http://vboxvmservice.sourceforge.net/

您可以在一个简单的 ini 文件中将虚拟机配置为作为服务启动。下载时提供文档。

请注意,已启动的虚拟机不会在 VirtualBox GUI 应用程序中显示为已启动(与 Linux 不同,在 Linux 中可以看到)。如果您需要重新配置虚拟机,则需要先关闭服务(VBoxVmService 提供的托盘小应用程序非常有用),然后在 VirtualBox GUI 中进行更改,然后再次启动虚拟机服务。

我添加了这个建议,因为它可能对某些用户来说更方便......

相关内容