我有一个在 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