我安装了一台虚拟机在后台运行。我使用 SSH 通过终端控制它。但是,有时 SSH 服务无法正常工作,我无法从外部访问虚拟机。我所能做的就是通过 VirtualBox GUI 关闭它。但是,我认为使用 poweroff 不是一个好主意,因为这就像我拔掉电源线一样。通过 VBoxHeadless 启动虚拟机后,有没有办法显示它?所以,我可以用shutdown
命令关闭它。
答案1
在无头模式下启动 Virtual Box VM 后,我们无法将视频输出从无头模式更改为本地屏幕。但如果未配置,否则将出现RDP 服务器在无头机器的默认端口 3389 上自动启动。这样我们就可以通过任何 RDP 查看器访问该机器的 GUI。
如果 SSH 无法工作,则很可能您的 RDP 服务器也无法访问。在这种情况下不建议关闭或终止正在运行的虚拟机,因为这可能会导致数据丢失。
在这种情况下,一个非常方便和安全的解决方法是终止无头机器并保存机器的状态。 这也可以通过命令行完成:
VBoxManage controlvm "<Name of Machine>" savestate
之后,我们将能够以非无头模式在虚拟盒管理器中保存的状态下启动机器,或者再次从命令行启动:
VBoxManage startvm "<Name of Machine>"
然后我们可以调试之前访问失败的原因,或者安全地关闭机器。
答案2
当我意外地在 Headless 中启动了已保存状态的正常启动时,我能够做到这一点。我只是再次保存了 headless 状态,然后进行了正常启动。我的第一个想法是通过 ssh 进入它,但这样要好得多。