QEMU 客户机代理

概要

qemu-ga [OPTIONS]

说明

QEMU 客户机代理是运行在虚拟机内部的守护进程,允许虚拟机管理器主机执行操作,例如:

  • 获取客户机信息。

  • 设置系统时间。

  • 读写文件。

  • 同步并冻结文件系统。

  • 挂起客户机。

  • 重新配置客户机本地处理器。

  • 设置用户密码。

  • 等等。

启动时先读取系统配置,默认 /etc/qemu/qemu-ga.conf, 再解析命令行中的其余选项。同一键以最后出现的值为准,但列表会累加,格式见下文。

定义允许 RPC 列表时,默认禁止全部 RPC,只放行列表内项目。

定义禁止 RPC 列表时,默认允许全部 RPC,只禁止列表内项目。

两种列表都定义时,先默认禁止全部,再应用允许列表,最后应用禁止列表。

文件系统冻结期间,无论通用配置如何,仅允许指定安全集合中的 RPC。

选项

-c, --config=PATH

配置文件路径,默认 /etc/qemu/qemu-ga.conf,可由 QGA_CONF 环境变量覆盖。

-m, --method=METHOD

传输方式:unix-listen、virtio-serial、isa-serial 或 vsock-listen,默认 virtio-serial。

-p, --path=PATH

设备或套接字路径。virtio-serial 默认 /dev/virtio-ports/org.qemu.guest_agent.0, isa-serial 默认 /dev/ttyS0。vsock-listen 地址格式为 <cid>:<port>。

-l, --logfile=PATH

日志文件路径,默认 stderr。

-f, --pidfile=PATH

PID 文件,默认 /var/run/qemu-ga.pid。

-F, --fsfreeze-hook=PATH

启用 fsfreeze 钩子。可选参数指定冻结/解冻时运行的脚本, 分别传入 freeze 或 thaw。默认 /etc/qemu/fsfreeze-hook。 带参数使用 -F 时,选项后不能加空格,例如 -F/var/run/fsfreezehook.sh。

-t, --statedir=PATH

保存状态信息的目录,仅支持绝对路径,默认 /var/run。

-v, --verbose

记录额外调试信息。

-V, --version

打印版本并退出。

-d, --daemon

启动后转入后台,脱离终端。

-b, --block-rpcs=LIST

逗号分隔的禁用 RPC 列表,不含空格。--block-rpcs=help 列出可用 RPC。

-a, --allow-rpcs=LIST

逗号分隔的启用 RPC 列表,不含空格。--allow-rpcs=help 列出可用 RPC。

-D, --dump-conf

以兼容 qemu-ga.conf 的格式输出配置并退出。

-h, --help

显示帮助并退出。

文件

qemu-ga.conf 遵循 Desktop Entry Specification,由若干组键值对和其间注释组成。

# qemu-ga configuration sample
[general]
daemonize = 0
pidfile = /var/run/qemu-ga.pid
verbose = 0
method = virtio-serial
path = /dev/virtio-ports/org.qemu.guest_agent.0
statedir = /var/run

键对应命令行选项:

键

类型

daemon

布尔值

method

字符串

path

字符串

logfile

字符串

pidfile

字符串

fsfreeze-hook

字符串

statedir

字符串

verbose

布尔值

block-rpcs

字符串列表

allow-rpcs

字符串列表

另见

qemu(1)