如何配置 Virtualbox VM 在 Windows-10 重启后自动启动?

Tre*_*ith 49 boot virtualbox autostart windows-10

2013 年,我追踪了如何在主机为 Linux 时自动启动/关闭 Virtualbox VM。该过程已正式记录并需要几个步骤。

现在我感兴趣的是,你如何配置 Virtualbox VM 在 Windows-10 重启后自动启动?

是否有正式记录的过程?如果没有,有些人测试过的解决方案是什么?

我天真的尝试将是这样的:

  • 完成:设置窗口以在重新启动时自动登录

  • TODO:使用以下命令创建批处理脚本: sleep 120 && vboxmanage startvm my_vm_name

  • TODO:将批处理脚本放入我用户的启动目录中。(不过,我在 Windows 10 中没有看到任何“启动”目录......)

Une*_*ded 42

启动目录仍然存在,尽管在一个很好的隐藏位置......

通过打开“运行”框(Win + R)并输入来访问它

shell:startup
Run Code Online (Sandbox Code Playgroud)

暂时尽量减少这种情况。

打开 VirtualBox 并右键单击要自动启动的 VM,单击在桌面上创建快捷方式的选项并关闭 VirtualBox。

只需从桌面剪切快捷方式并将其粘贴到之前打开的文件夹中,它应该完全没问题。

  • shell:startup 是在登录时,而不是在系统启动时,对吗?如何在系统启动时执行此操作? (4认同)

Dee*_*ayh 20

真正最一致的选择是使用任务计划程序。

实施解决方案

这需要几个非常简单的步骤,但我将详细解释它们,以确保任何技术背景的任何人都可以进行设置:

  1. 确定您的虚拟机名称
  2. 在任务计划程序中创建任务

1. 确定您的虚拟机名称

导航C:\Users\YourUserNameHere\VirtualBox VMs

VirtualBox VM 文件夹

上面的文件夹名称通常反映了虚拟机名称。您可以通过检查 VirtualBox Manager 本身来确认这一点:

虚拟盒图形用户界面

机器名称是WindowsXPSP3.

2. 在任务计划程序中创建任务

首先单击开始按钮并输入不带引号的“任务计划程序”。然后打开任务计划程序:

任务计划程序搜索

在任务调度程序内部,我们将在左侧看到一个结构树。右键单击Task Scheduler Library. 左键单击New Folder...

任务计划程序新文件夹

将文件夹命名为容易记住的名称,例如User Custom然后单击“确定” (如果您已经有一个想要使用的现有文件夹,也可以跳到下一段)

命名新文件夹

单击您新创建的文件夹(在我的例子中User Custom)以突出显示它。右键单击右侧的空列表,然后左键单击Create New Task...

创建新任务

现在棘手的事情来了。逐字遵循我的指示。如果您因为它不起作用而想投反对票,或者在评论中说“这对我不起作用”,我敢打赌您在这里跳过了一步。回来再试一次。

和可以NameDescription任何你喜欢的,它只是为了美观,不会影响功能。我将以我的虚拟机命名我的虚拟机并进行简短描述。重要的是您的Run whether user is logged on or not选择Run with highest privileges

创建任务:常规

切换到Triggers顶部的选项卡并单击鼠标左键New...。将组合框切换Begin the task:At Startup,然后左键单击“确定”:

新触发器

切换到Actions顶部的选项卡并单击鼠标左键New...。单击“浏览”(不要尝试手动键入此内容,您会让自己头痛)并导航到C:\Program Files\Oracle\VirtualBox。突出显示VBoxManage.exe并左键单击Open

浏览至 VBoxManage

将除可执行文件和引号之外的所有内容复制到:Program/script:Start in (optional):

复制目录路径

最后,将以下行放入Add arguments (optional):并单击“确定”:

startvm "YourVirtualMachineNameFromStep1" --type headless

就我而言,我将使用:

startvm "WindowsXPSP3" --type headless

输入参数

我的Conditions选项卡通常设置为以下内容:

条件选项卡

确保您的Settings选项卡如下所示,但绝对确保您已将标记为黄色的项目设置为与我的选项卡相匹配。这将确保如果某些先决条件尚未准备好,它将重试几次来启动虚拟机,并且虚拟机不会在 3 天后终止。除非您知道自己在做什么,否则我会将其他所有内容保留为默认值。如果你不按照我在这里向你展示的操作,并且最终不起作用,那就是你的问题:

设置选项卡

最后,点击窗口底部的“确定” Create Task你完成了!

测试解决方案

测试上面我的假场景(以及如何测试你的场景)

当我重新启动计算机时,我可以登录并打开 VirtualBox Manager 并看到我的虚拟机正在运行:

运行虚拟机

我还可以打开任务计划程序备份,并验证它是否成功运行,或者如果没有成功,则查看错误是什么(大多数错误将是人们试图手动输入我告诉他们不要输入的位置的目录错误):

任务计划程序成功

测试我的实际用例

在另一台机器上,我将 Linux 服务器设置为虚拟机,并拥有自己的原始固态硬盘。我希望如果机器自动重新启动(崩溃、Windows 更新等),服务器能够自动启动,而无需用户登录。我完全按照上面所述进行了设置,然后重新启动了该机器。我知道它成功运行,因为我能够从另一台计算机访问我的 Samba 共享(外行:其中包含我通过网络共享到其他计算机的内容的文件夹),而无需先登录到运行服务器 VM 的计算机。这 100% 确认它确实在系统启动时启动,而不是在用户登录后启动。

  • 哦,我的天啊。你的回答真是太棒了。很棒的写作。很棒的截图。甚至用屏幕截图来测试它以显示测试。超越。我多年来一直没有解决这个问题。但先生,你得到了绿色的复选标记。 (2认同)

小智 19

您现在实际上可以无头启动 VM,而无需求助于第三方 VBoxVmService。只需创建一个快捷方式<VirtualBoxDirectory\VBoxManage.exe> startvm "vmname" --type headless并将其放入您的启动文件夹中即可。

来自VirtualBox 手册

  • 这是否仍然具有需要登录而不是仅在启动时运行的缺点? (6认同)
  • 为此使用计划任务而不是启动文件夹中的快捷方式。 (5认同)

AKi*_*AKi 12

试试VBoxVmService

请务必阅读Howto.txt并编辑VBoxVmService.ini


小智 10

虽然拥有服务很好,但您可以通过计划任务来实现。以系统启动为触发器,选中在没有登录用户的情况下运行任务的选项并将操作设置为<VirtualBoxDirectory\VBoxManage.exe> startvm "vmname" --type headless。确保从难以理解的默认选项“如果运行超过 3 天则终止任务”中删除检查。Srsly,MS,你在想什么,没有 Windows 计算机会在没有重新启动的情况下持续这么长时间?

有一个警告:如果 VM 在启动时以这种方式启动,您将在 VirtualBox 管理器中看到它“已关闭”,因此没有显示 VM 的按钮。只有“开始”按钮,当您尝试双重启动它时,您可能会搞砸。

您可以定义一个远程显示端口,以便您可以通过 RDC (mstsc.exe) 访问 VM 的控制台,而无需 VirtualBox Manager,但您仍然要记住不要相信“断电”信息。我不知道这对于真正的服务是否更有效。


小智 5

尝试VBoxHeadlessTray
它非常易于使用,当 Windows 启动时自动恢复虚拟机的状态,并在 Windows 关闭或重新启动时自动保存状态。最棒的是你可以使用 VBoxHeadlessTray 来配置你的每一个虚拟机。