在宿主机与虚拟机均为Windows 10环境下运行QEMU Agent
Windows 10 下配置 QEMU Agent(管道通信方案)
一、先搞定虚拟机内的 Guest Agent
- Windows 虚拟机:下载对应架构的 QEMU Guest Agent 安装包(比如
qemu-ga-x86_64.msi),安装后去服务管理器里确认QEMU Guest Agent服务处于已启动状态。 - Linux 虚拟机:通过系统包管理器装
qemu-guest-agent,然后设置开机自启(比如systemctl enable --now qemu-guest-agent)。
二、宿主机启动 QEMU 时配置管道参数
启动虚拟机的命令行里必须加以下参数,注意 Windows 管道的路径格式是\\\\.\\pipe\\<管道名>(命令行里要转义,或者用单引号包裹避免转义):
-device virtio-serial-pci -chardev pipe,id=qemupipe,path=\\\\.\\pipe\\qemu_agent -device virtserialport,chardev=qemupipe,name=org.qemu.guest_agent.0
参数解释:
-device virtio-serial-pci:添加 virtio 串口设备,这是 Agent 通信的基础-chardev pipe,id=qemupipe,path=\\\\.\\pipe\\qemu_agent:创建名为qemupipe的管道字符设备,指定管道路径为\\.\pipe\qemu_agent-device virtserialport,chardev=qemupipe,name=org.qemu.guest_agent.0:把串口设备和管道绑定,这个名称org.qemu.guest_agent.0是固定的,Agent 默认监听这个端口
如果用的是 QEMU 图形化工具(比如 QuickEMU、QEMU Manager),找到「设备」或「串口配置」选项,添加 virtio 串口,然后设置管道路径为\\.\pipe\qemu_agent即可。
三、测试管道通信
打开 CMD 或 PowerShell,切换到 QEMU 安装目录(比如C:\Program Files\qemu),运行以下命令连接管道:
qemu-ga.exe -d -p \\.\pipe\qemu_agent
参数说明:
-d:开启调试输出,方便排查连接问题-p:指定要连接的管道路径
如果连接成功,会输出类似guest-agent: connected的日志,此时输入{"execute":"guest-ping"},要是返回{"return":{}},就说明通信正常了。
常见坑点排查
- 管道路径写错:Windows 管道必须是
\\.\pipe\<管道名>格式,命令行里要转义成四个反斜杠开头,或者用 PowerShell 单引号包裹路径跳过转义 - 虚拟机内 Agent 没启动:去虚拟机里检查服务状态,确保 Agent 正常运行
- 权限不够:启动 QEMU 和 qemu-ga 时尽量用管理员权限,避免管道访问被拒绝
- 没装 virtio 驱动:虚拟机里必须装 virtio 驱动,不然 virtio-serial 设备识别不了,Agent 没法工作
内容的提问来源于stack exchange,提问作者kozprog
相关产品推荐
相关产品推荐

