qemu-guest-agent异常处理方法

内容概述

本文档首先分别针对Linux和Windows两类操作系统,列举了qemu-ga最常见的功能异常场景(如修改密码/主机名失败、安装卸载异常、服务启动失败),并详细分析了其可能的原因,提供了 step-by-step 的解决方案。最后,附录部分提供了通用的qemu-ga组件替换操作步骤。

qemu-guest-agent功能异常

Linux:

虚机修改密码或主机名失败

可能原因1:使用的不是定制化的qemu-ga。

解决方法:替换成定制化的qemu-ga(详细步骤见附录)。

可能原因2:selinux服务可能处于开启状态,导致qemu-ga状态或者日志权限等不正确(qemu-ga通用日志路径可参考/var/log/qemu-ga/目录下查看,系统服务日志可通过journalctl -xe查看)。

解决方法:关闭虚机的selinux服务。

# setenforce 0
# vim /etc/selinux/config

SELINUX=disabled

可能原因3:qemu-guest-agent服务启动失败

可以执行/usr/bin/qemu-ga -v 查看具体原因,可能返回结果如下:

    1. -bash: /usr/bin/qemu-ga: Permission denied

    原因:qemu-ga 没有执行权限。

    解决方法:对qemu-ga添加执行权限

# chmod a+x /usr/bin/qemu-ga

    2. Failed to create file “/usr/local/var/run/qga.state”

    原因:定制化的软件包需要该目录存放相关信息。

    解决方法:手动创建软件包所需要的运行目录信息

# mkdir -p /usr/local/var/run

    3. -bash: /usr/bin/qemu-ga: cannot execute binary file

    原因:使用的qemu-ga版本与虚机架构、操作系统版本不匹配或qemu-ga二进制文件损坏。

    解决方法:用正确版本的qemu-ga进行替换(详细步骤见附录)。

 

Windows:

1. 修改主机名或密码失败

可能原因1:可能安装了杀毒软件,误将qemu-ga.exe当做病毒删除。

解决方法:查看杀毒软件,将其删除的qemu-ga.exe文件恢复,并将其设置为白名单。

可能原因2:杀毒软件安全策略可能存在问题。

解决方法:用户需要根据已安装杀毒软件的提示来重新配置防护策略。

2. qemu-guest-agent.msi安装或卸载异常

可能原因:可能由异常卸载或删除导致卸载不完全,需要清理剩余的残留后重新安装。

解决方法1:如果控制面板中有QEMU guest agent,使用控制面板卸载后重新安装即可。

解决方案2:如果控制面板中无QEMU guest agent,可参考以下步骤执行手动安装。

(1)手动执行安装管理操作

# msiexec /a qemu-guest-agent.msi 

(2)将其C盘中QEMU guest agent 文件夹中的Qemu-ga 文件夹复制到Program Files中,然后进入到目录并使用卸载命令,清除qemu-ga可能残留的信息。

# cd C:\Program Files\Qemu-ga
# qemu-ga.exe -s uninstall

(3)点击安装包去重新安装qemu-ga,则可以正常安装。

附录

qemu-ga替换步骤:

下载对应版本最新的qemu-ga

一、el6

1. 停止qemu-ga服务:

# service qemu-ga stop

2. 备份原有的可执行文件:

# mv /usr/bin/qemu-ga /usr/bin/qemu-ga.bak

3. 更新为新的可执行文件:

# cp qemu-ga /usr/bin/

4. 赋予qemu-ga可执行权限:

#  chmod a+x /usr/bin/qemu-ga

5.  重启qemu-ga服务:

#  service qemu-ga restart

6. 设置qemu-ga服务开机自启动:

#  chkconfig qemu-ga on

二、el7、el8

1. 停止qemu-ga服务:

# systemctl stop qemu-guest-agent

2. 备份原有的可执行文件:

# mv /usr/bin/qemu-ga /usr/bin/qemu-ga.bak

3. 更新为新的可执行文件:

# cp qemu-ga /usr/bin/

4. 赋予qemu-ga可执行权限:

#  chmod a+x /usr/bin/qemu-ga

5. 重启qemu-ga服务:

#  systemctl restart qemu-guest-agent

6. 设置qemu-ga服务开机自启动:

#  systemctl enable qemu-guest-agent

三、Ubuntu

Ubuntu14.04

1. 停止qemu-ga服务:

# service qemu-guest-agent stop

2. 备份原有的可执行文件:

# mv /usr/sbin/qemu-ga /usr/sbin/qemu-ga.bak

3. 更新为新的可执行文件:

# cp qemu-ga /usr/sbin/

4. 赋予qemu-ga可执行权限:

#  chmod a+x /usr/sbin/qemu-ga

5. 重启qemu-ga服务:

#  service qemu-guest-agent restart

6. 设置qemu-ga服务开机自启动:

#  sysv-rc-conf qemu-guest-agent on

Ubuntu16.04/18.04/Ubuntu20.04

1. 停止qemu-ga服务:

#  systemctl stop qemu-guest-agent

2. 备份原有的可执行文件:

# mv /usr/sbin/qemu-ga /usr/sbin/qemu-ga.bak

3. 更新为新的可执行文件:

# cp qemu-ga /usr/sbin/

4. 赋予qemu-ga可执行权限:

#  chmod a+x /usr/sbin/qemu-ga

5. 重启qemu-ga服务:

#  systemctl restart qemu-guest-agent

6. 设置qemu-ga服务开机自启动:

#  systemctl enable qemu-guest-agent

四、Suse

Suse11

1. 使用命令进行升级,以 qemu-guest-agent-2.0.4-1.42.x86_64.rpm 为例,实际需根据qemu-guest-agent具体版本号进行修改 :

# rpm -Uvh qemu-guest-agent-2.0.4-1.42.x86_64.rpm

2. 重启qemu-ga服务:

# rcqemu-ga restart

3. 设置qemu-ga服务开机自启动,需要在 after.local 文件末尾添加以下内容:

# vim /etc/init.d/after.local
  rcqemu-ga restart

Suse12

1. 使用命令进行升级,以 qemu-guest-agent-2.0.2-40.14.x86_64.rpm 为例,实际需根据qemu-guest-agent具体版本号进行修改 :

# rpm -Uvh qemu-guest-agent-2.0.2-40.14.x86_64.rpm

2. 重启qemu-ga服务:

# systemctl restart qemu-ga

3. 设置qemu-ga服务开机自启动:

# systemctl restart qemu-ga
本文档内容整理自移动云官方帮助中心(查看原文),仅供参考。