我想要使用 Linux(我的一台虚拟机)的以下功能:
如果没有指定控制台设备,则将使用第一个找到的可以充当系统控制台的设备。此时,系统首先寻找 VGA 卡,然后寻找串行端口。https://github.com/torvalds/linux/blob/master/Documentation/serial-console.txt 原因是在生产中我们使用视频输出与虚拟机交互(仅限文本),但为了测试,我想使用 VirtualBox 提供的串行端口以编程方式与机器交互。
免责声明:
- 我知道无头运行虚拟机,但这与在没有显卡的情况下运行虚拟机不同。
- 我知道 SSH,但虚拟机中不允许使用 SSH
- 我知道 RDP 但在测试期间无法使用 RDP 客户端。
- 我知道要截取虚拟机的屏幕截图并用 OCR 进行识别(我知道这很绝望),但我无法提供输入。
- 我知道 VirtualBox 未记录的 cli 选项:
VBoxManage modifyvm "$(VM_REL_NAME)" --graphicscontroller none
但这似乎不会触发上面引用的功能。
答案1
我正在寻找一个非常相似的问题的答案。谷歌搜索把我带到了这里,但没有提供答案。找到答案后,我将重新发布这篇文章并提供我发现的对我有用的答案。
以下将从本地主机(运行 VBox 的系统)的 2323 端口监听 telnet(或 netcat)并提供与服务器的串行连接。
VBoxManage modifyvm <VBoxVM> --uart1 0x3F8 4 --uartmode1 tcpserver 2323