如何显示无头运行的 vbox 虚拟机的控制台

如何显示无头运行的 vbox 虚拟机的控制台

我有一个在 CentOS 7 上运行的 virtualbox 无头虚拟机。我可以通过打开 virtualbox 管理器、右键单击计算机并选择“显示”来显示虚拟机的控制台。有没有办法在不打开 gui 管理器(即从命令行)的情况下执行此操作(弹出无头客户端的头部)?我已经尝试了 vboxmanage 的最可能的命令,但出现错误或错误的结果。

答案1

到目前为止,还没有答案。经过更多研究,VirtualBox 似乎不提供此功能。我能做的最好的事情就是使用远程桌面。对于我的 CentOS,最方便的应用程序是 rdesktop。您需要安装扩展包。然后为客户端启用远程桌面协议。 VM 运行后,您可以使用 rdesktop 访问客户端控制台。如果 rdesktop 在 VM 之后立即启动,您确实可以访问启动顺序。因此:

$ vboxmanage modifyvm "archive" --vrde on
$ vboxmanage startvm "archive" --type headless ; rdesktop localhost 

答案2

如果我没记错的话,你可以用串口来做到这一点,但它很复杂。

首先,您需要为虚拟机添加串口。串行端口需要置于“主机管道”模式,以便您可以将其连接到主机文件系统,您将在其中监视控制台。

COM1="0x3F8 4"   # magic values for COM1
VBoxManage modifyvm <UUID> \
    --uart1 $COM1 \
    --uartmode1 server /tmp/serial-console

您还可以使用一些其他选项,但是这样,VirtualBox 应该在计算机启动时创建 /tmp/serial-console。如果您不需要在这里花哨,您也可以使用“文件”而不是“服务器”将控制台转储到常规文件。但如果您愿意,您可以使用伪终端 (PTY) 连接该文件路径索卡特

SOCK=/tmp/serial-console
socat UNIX-CONNECT:$SOCK PTY,link=$SOCK-pty

最后,您可以使用以下命令连接到 PTY屏幕

screen $SOCK-pty

在 Linux 上,您可能需要启用串行控制台。此过程取决于您的发行版。您可以检查下面的链接,看看是否有帮助,但它是针对 Debian 的。

https://gist.github.com/snb/284940/11e6354f170be602c9c2f67b59d489ed49ebd143

相关内容