qemu guest agent安装研究

http://aspirer2004.blog.163.com/blog/static/1067647201352423628885/
1. qemu-guest-agent虚拟机内安装:
debian: 在/etc/apt/sources.list增加一行 deb http://ftp.cn.debian.org/debian sid main,sudo apt-get update,sudo apt-get install qemu-guest-agent
ubuntu: 在/etc/apt/sources.list增加一行 deb http://free.nchc.org.tw/ubuntu/ raring main universe,sudo apt-get update,sudo apt-get install qemu-guest-agent
2.安装卡住
  原因是如果你先修改了libvirt的配置文件,增加了virtio-serial的配置,并且name='org.qemu.guest_agent.0',那么由于在/etc/init.d/qemu-guest-agent启动脚本中没有增加-d参数,导致qemu-guest-agent处于前台启动过程,无法退出,导致安装卡住,解决方法是kill掉qemu-ga进程或者先安装qemu-guest-agent,之后再修改libvirt配置。
3.libvirt配置文件
     <channel type='unix'>
       <source mode='bind' path='/var/lib/libvirt/qemu/test.agent'/>
        <target type='virtio' name='com.163.spice.0'/>
     </channel>
要注意 path='/var/lib/libvirt/qemu/test.agent'这个路径libvirt-qemu:kvm用户要有权限进行读写,否则虚拟机会启动失败。
4.无法与宿主机通信
要输出如下内容才基本可断定配置的serial可以通信:
root@debian:~# qemu-ga -v -p /dev/virtio-ports/com.163.spice.0
1372055252.431905: debug: received EOF
1372055252.532232: debug: received EOF
1372055252.632594: debug: received EOF
1372055252.732949: debug: received EOF
否则要查找原因。
我遇到一个特别奇怪的问题,如果我按照libvirt官方配置说明中的配置,
<channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/test.agent'/>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
</channel>
会导致/dev/virtio-ports/org.qemu.guest_agent.0无法用来与宿主机通信,改为com.163.guest_agent.0或者org.qemu.ga.0或者其他类似的名字,甚至不写(默认名称com.redhat.spice.0)都OK,我的libvirt版本是0.9.13,qemu版本(qemu-kvm  1.1.2+dfsg-2),虚拟机内核版本(Linux debian 3.2.0-3-amd64/Linux ubuntu 3.2.0-29-generic)。
这个问题的原因是如果不改名,libvirt就会自己连接到这个socket上,所以如果你不想让libvirt连接,就得改掉默认的名称。详见http://wiki.libvirt.org/page/Qemu_guest_agent(Configure guest agent without libvirt interference)
5. 依赖的内核模块(virtio_console)

debian wheezy 3.2内核编译处理的qemu-guest-agent: https://github.com/aspirer/study/blob/master/qemu-guest-agent/qemu-ga

----------------------------------------------------------------------------------------
qemu编译:
apt-get install libzip-dev libsdl1.2-dev  uml-utilities  dh-autoreconf  bridge-utils libpixman-1-dev
可选安装包(不确定是否需要):build-essential
./configure --target-list=x86_64-softmmu --prefix=/usr --localstatedir=/var --sysconfdir=/etc --enable-debug
make或者只编译qemu-guest-agent: make qemu-ga
qemu guest agent 是一种用于在宿主机和虚拟机之间进行通信和交互的工具。它提供了各种功能,例如文件拷贝、虚拟机状态查询、运行命令等。当我们需要与运行在qemu虚拟机中的操作系统进行交互时,可以通过在宿主机和虚拟机之间建立通信管道来使用qemu guest agent。 要下载qemu guest agent,可以按照以下步骤进行: 1. 首先,我们需要在宿主机上安装qemu软件包。可以使用系统包管理工具(如apt、yum等)来安装,也可以从qemu官方网站上下载安装包进行安装。 2. 安装完成后,我们需要进入qemu软件包的目录,找到并下载qemu guest agent安装包。在官方网站的下载页面上可以找到适用于不同操作系统的安装包,选择适合你的操作系统版本进行下载。 3. 下载完成后,解压安装包并进入解压后的目录。 4. 根据操作系统的不同,执行不同的安装命令。通常情况下,可以运行类似于"./configure"、"make"、"make install"等命令来进行安装。 5. 安装完成后,我们可以在虚拟机的配置文件中添加一些参数启用qemu guest agent。这些参数可以用来指定通信管道的类型、路径等。保存并关闭配置文件后,重启虚拟机即可使配置生效。 通过以上步骤,我们就可以成功下载和安装qemu guest agent安装完成后,我们可以使用相关命令或API来与虚拟机进行交互,并获得更好的虚拟化体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值