首先要确保虚拟机的配置文件中有串口设备的定义。可以通过以下步骤来添加串行控制台支持:
通过 virsh 编辑 XML 配置文件
先停止虚拟机:
virsh shutdown <虚拟机名称>编辑虚拟机的 XML 配置文件:
virsh edit <虚拟机名称>- 在
<devices>部分添加以下内容:
<console type='pty'>
<target type='serial'/>
</console>这样会为虚拟机添加一个串口设备。
- 保存并退出编辑器。
在虚拟机的操作系统中,需要确保它可以使用串行终端。具体的配置步骤根据操作系统类型而不同,以下以 debian 12 系统为例。
需要修改 Linux 内核的启动参数,并确保系统会自动在串行端口上启动一个终端。
- 修改内核启动参数:在虚拟机的
/etc/default/grub文件中,找到GRUB_CMDLINE_LINUX这一行,添加以下参数:
GRUB_CMDLINE_LINUX="console=ttyS0,115200n8"- 更新 grub:
sudo update-grub- 启用 getty 服务:在
/etc/systemd/system/getty.target.wants/目录中,创建一个链接或直接启动serial-getty@ttyS0服务:
sudo systemctl enable serial-getty@ttyS0.service
sudo systemctl start serial-getty@ttyS0.service一旦完成配置并启动虚拟机,你就可以使用 virsh 命令连接到串行控制台。
- 启动虚拟机:
virsh start <虚拟机名称>- 连接到串行控制台:
virsh console <虚拟机名称>连接成功后,就够看到虚拟机的终端输出,并通过控制台直接与虚拟机交互。如果无法看到登录提示,可能是串口未正确配置。检查虚拟机的 XML 配置和虚拟机内部的系统配置是否正确。