qemu-ga

bty:git 提交需要xwindow的办法
unset SSH_ASKPASS


1.在virsh的xml定义中加入channel指定host的socket映射到guest的dev
用virsh启动虚拟机的时候
注意加channel

<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/test.agent'/>
<target type='virtio' name='com.haoning.spice.0'/>
<alias name='channel0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>

2.在guest中启动qemu-ga:
yum install qemu-guest-agent qemu-kvm-tools
qemu-ga -v -p /dev/virtio-ports/com.haoning.spice.0

3.在host上使用python连socket或者socat
socat unix-connect:/var/lib/libvirt/qemu/test.agent readline



具体的control.xml

<domain type='kvm' id='12'>
<name>control</name>
<uuid>d07d7290-9b1d-f33e-f54a-70a821252410</uuid>
<memory unit='KiB'>4194304</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='rhel6.5.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/home/rhel-server-6.5-x86_64-dvd.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<alias name='ide0-1-0'/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/home/control.img'/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
<controller type='usb' index='0'>
<alias name='usb0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='ide' index='0'>
<alias name='ide0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='virtio-serial' index='0'>
<alias name='virtio-serial0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:02:a1:90:81'/>
<source bridge='br0'/>
<target dev='vnet0'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/1'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/1'>
<source path='/dev/pts/1'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/test.agent'/>
<target type='virtio' name='com.haoning.spice.0'/>
<alias name='channel0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='no' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<sound model='ich6'>
<alias name='sound0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</memballoon>
</devices>
<seclabel type='dynamic' model='selinux' relabel='yes'>
<label>system_u:system_r:svirt_t:s0:c681,c978</label>
<imagelabel>system_u:object_r:svirt_image_t:s0:c681,c978</imagelabel>
</seclabel>
</domain>

virsh define control.xml
virsh start control

在guest中
[code="java"]
# qemu-ga -v -p /dev/virtio-ports/com.haoning.spice.0
1437616495.53279: debug: received EOF
1437616495.153410: debug: received EOF
1437616495.253627: debug: received EOF
1437616495.353849: debug: received EOF
1437616495.454057: debug: received EOF
1437616495.554266: debug: received EOF
1437616495.654507: debug: received EOF
1437616495.754719: debug: received EOF
1437616495.854928: debug: received EOF
1437616495.955151: debug: received EOF
1437616496.55375: debug: received EOF
1437616496.155490: debug: received EOF
^C1437616496.170249: debug: received signal num 2, quitting
#
[/code]


[code="java"]
# ls
poll_qemu_guest_agent.py
# cat poll_qemu_guest_agent.py
#! /usr/bin/python

import base64
import json
import select
import socket

#sock_file = "/tmp/foo.sock"
sock_file = "/var/lib/libvirt/qemu/test.agent"

#import pdb;pdb.set_trace()
READ_LEN = 1024
read_file = "/proc/cpuinfo"
send_cmds = [{"execute": "guest-file-open", "arguments": {"path": read_file, "mode": "r"}},
{"execute": "guest-file-read", "arguments": {"handle": None, "count": READ_LEN}},
{"execute": "guest-file-close", "arguments": {"handle": None}}]

serversocket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
serversocket.connect(sock_file)
serversocket.setblocking(0)

vm_fileno = serversocket.fileno()
instances = {}
instances[vm_fileno] = "instance-000004e8"

epoll = select.epoll()
epoll.register(vm_fileno, select.EPOLLIN | select.EPOLLOUT | select.EPOLLET)

try:
#import ipdb;ipdb.set_trace()
cmd = 0
stop = False
while True:
print '-'*10 + 'start epoll' + '-'*10
events = epoll.poll(1)
for fileno, event in events:
if fileno in instances.keys():# new client is connecting
print 'instance: ' + instances[fileno]
if event & select.EPOLLIN: # new msg is coming in
print "<<<<<<<<<<<recv"
try:
vm_resp = ''
while True:
vm_resp += serversocket.recv(READ_LEN)
except socket.error:
pass

epoll.modify(fileno, select.EPOLLOUT | select.EPOLLET)

try:
vm_resps = vm_resp.split('\n')
ok_resp = None
for resp in vm_resps:
if 'error' not in resp and 'return' in resp:
ok_resp = resp
break
elif 'error' in resp:
print 'error occurs: ', resp
if ok_resp is not None:
resp = json.loads(ok_resp)
else:
print 'no valid data recv'
break
except ValueError:
print 'response content error: ', vm_resp
break

if len(send_cmds) <= cmd:
stop = True
print resp
break
try:
if cmd == 1:
print('+'*10 + 'receive:' + '+'*10 + '\n' + vm_resp)
handle = resp["return"]
send_cmds[cmd]["arguments"]["handle"] = handle
send_cmds[cmd+1]["arguments"]["handle"] = handle
elif cmd == 2:
decoded_file = base64.decodestring(resp["return"]["buf-b64"])
print 'file content:\n', decoded_file
print resp["return"]["count"]
print 'EOF: ', resp["return"]["eof"]
except (KeyError, ValueError, TypeError):
print 'response content error: ', resp

elif event & select.EPOLLOUT: # new msg need send out
print ">>>>>>>>>send"
if len(send_cmds) <= cmd:
print 'no data to send'
break
try:
byteswritten = 0
data = json.dumps(send_cmds[cmd])
while True:
byteswritten += serversocket.send(data[byteswritten:])
if byteswritten == len(data):
print '*'*10 + 'send over' + '*'*10
break
except socket.error:
pass

epoll.modify(fileno, select.EPOLLIN | select.EPOLLET)
cmd += 1

elif event & select.EPOLLHUP: # connect closed
epoll.unregister(serversocket.fileno())
serversocket.close()

print '-'*10 + 'end epoll' + '-'*10 + '\n'
if stop:
print 'stop now'
break
finally:
epoll.unregister(serversocket.fileno())
epoll.close()
serversocket.close()
#
[/code]


用socat调用

socat unix-connect:/tmp/qga.sock readline
{"execute":"guest-sync", "arguments":{"id":1234}}
{"return": 1234}

socat参考
[url]http://wiki.qemu.org/Features/QAPI/GuestAgent[/url]
libvirt配置参考
http://wiki.libvirt.org/page/Qemu_guest_agent
其他参考
http://aspirer2004.blog.163.com/blog/static/1067647201352423628885/


参考
http://www.cloudcraft.cn/use-qemu-guest-agent-to-change-openstack-instance-root-password/

已有功能
http://www.cnblogs.com/biangbiang/p/3222458.html

已有功能



目前qga最新版本为1.5.50,linux已经实现下面的所有功能,windows仅支持加*的那些功能:


复制代码

Ø guest-sync-delimited*:宿主机发送一个int数字给qga,qga返回这个数字,并且在后续返回字符串响应中加入ascii码为0xff的字符,其作用是检查宿主机与qga通信的同步状态,主要用在宿主机上多客户端与qga通信的情况下客户端间切换过程的状态同步检查,比如有两个客户端A、B,qga发送给A的响应,由于A已经退出,目前B连接到qga的socket,所以这个响应可能被B收到,如果B连接到socket之后,立即发送该请求给qga,响应中加入了这个同步码就能区分是A的响应还是B的响应;在qga返回宿主机客户端发送的int数字之前,qga返回的所有响应都要忽略;


Ø guest-sync*:与上面相同,只是不在响应中加入0xff字符;


Ø guest-ping*:Ping the guest agent, a non-error return implies success;


Ø guest-get-time*:获取虚拟机时间(返回值为相对于1970-01-01 in UTC,Time in nanoseconds.);


Ø guest-set-time*:设置虚拟机时间(输入为相对于1970-01-01 in UTC,Time in nanoseconds.);


Ø guest-info*:返回qga支持的所有命令;


Ø guest-shutdown*:关闭虚拟机(支持halt、powerdown、reboot,默认动作为powerdown);


Ø guest-file-open:打开虚拟机内的某个文件(返回文件句柄);


Ø guest-file-close:关闭打开的虚拟机内的文件;


Ø guest-file-read:根据文件句柄读取虚拟机内的文件内容(返回base64格式的文件内容);


Ø guest-file-write:根据文件句柄写入文件内容到虚拟机内的文件;


Ø guest-file-seek:Seek to a position in the file, as with fseek(), and return the current file position afterward. Also encapsulates ftell()'s functionality, just Set offset=0, whence=SEEK_CUR;


Ø guest-file-flush:Write file changes bufferred in userspace to disk/kernel buffers;


Ø guest-fsfreeze-status:Get guest fsfreeze state. error state indicates;


Ø guest-fsfreeze-freeze:Sync and freeze all freezable, local guest filesystems;


Ø guest-fsfreeze-thaw:Unfreeze all frozen guest filesystems;


Ø guest-fstrim:Discard (or "trim") blocks which are not in use by the filesystem;


Ø guest-suspend-disk*:Suspend guest to disk;


Ø guest-suspend-ram*:Suspend guest to ram;


Ø guest-suspend-hybrid:Save guest state to disk and suspend to ram(This command requires the pm-utils package to be installed in the guest.);


Ø guest-network-get-interfaces:Get list of guest IP addresses, MAC addresses and netmasks;


Ø guest-get-vcpus:Retrieve the list of the guest's logical processors;


guest-set-vcpus:Attempt to reconfigure (currently: enable/disable) logical processors inside the guest。


参考
http://wiki.qemu.org/Features/QAPI/GuestAgent

mdroth@illuin:~$ sudo socat unix-connect:/tmp/qga.sock readline
{"execute":"guest-sync", "arguments":{"id":1234}}
{"return": 1234}

{"execute":"guest-ping"}
{"return": {}}

{"execute": "guest-info"}
{"return": {"version": "1.0"}}

// write "hello world!\n" to /tmp/testqga
{"execute":"guest-file-open", "arguments":{"path":"/tmp/testqga","mode":"w+"}}
{"return": 0}
{"execute":"guest-file-write", "arguments":{"handle":0,"buf-b64":"aGVsbG8gd29ybGQhCg=="}}
{"return": {"count": 13, "eof": false}}
{"execute":"guest-file-close", "arguments":{"handle":0}}
{"return": {}}

// read back the "hello world!\n" from /tmp/testqga
{"execute":"guest-file-open", "arguments":{"path":"/tmp/testqga","mode":"r"}}
{"return": 1}
{"execute":"guest-file-read", "arguments":{"handle":1,"count":1024}}
{"return": {"buf-b64": "aGVsbG8gd29ybGQhCg==", "count": 13, "eof": true}}
{"execute":"guest-file-close","arguments":{"handle":1}}
{"return": {}}

// freeze and unfreeze freezable guest filesystems
{"execute":"guest-fsfreeze-status"}
{"return": "thawed"}
{"execute":"guest-fsfreeze-freeze"}
{"return": 3}
{"execute":"guest-fsfreeze-status"}
{"return": "frozen"}
{"execute":"guest-fsfreeze-thaw"}
{"return": 3}
{"execute":"guest-fsfreeze-status"}
{"return": "thawed"}

相关推荐

virtio-win驱动+qemu-ga实战:教你给KVM虚拟机安全传文件

本文详细介绍了如何利用virtio-win驱动和qemu-guest-agent(qemu-ga)实现KVM虚拟机的安全文件传输。从环境准备、安全架构设计到全流程实战操作,为企业用户提供了一套高效、安全的解决方案,特别适用于需要自动化运维的场景。

weixin_29315569的博客 187

深入探索Linux中的qemu-ga命令

它允许用户在host OS上通过QEMU提供带外通道实现对guest OS的多种管理操作,包括但不限于文件操作(如open、read、write、close等)、内部关机、虚拟机休眠(suspend-disk、suspend-ram、suspend-hybrid)以及获取虚拟机内部的信息(如内存、CPU、网卡、OS等相关信息)。这使得虚拟机的管理变得更加灵活和高效。而在QEMU的众多组件中,qemu-ga(Qemu Guest Agent)作为运行在虚拟机内部的守护进程,发挥着至关重要的作用。

听风的鱼鱼儿 2423

利用qemu-guest-agent冻结文件系统

转载:www.silenceli.com?p=250 本文将介绍: qemu-guest-agent是什么? 为什么使用qemu-guest-agent 如何利用qemu-guest-agent冻结文件系统? qemu-ga与openstack的结合 What is qemu-ga 我个人认为qemu-ga是在虚拟机中安装的一个agent,宿主机host通过通道(unix socket)与虚拟

公众号 4481

qemu-ga 执行命令无法执行: The command guest-exec has been disabled for this instance

qemu-ga 执行命令无法执行: The command guest-exec has been disabled for this instance问题描述解决参考 问题描述 在主机通过qga 在虚拟机执行命令时出现命令无法执行的情况: error: internal error: unable to execute QEMU agent command ;guest-exec’: The c...

空巢青年_rui的博客 7076

51 最佳实践-安全最佳实践-qemu-ga

qemu-ga(Qemu Guest Agent)它是运行在虚拟机内部的守护进程,它允许用户在host OS上通过QEMU提供带外通道实现对guest OS的多种管理操作:包括文件操作(open、read、write、close,seek、flush等)、内部关机、虚拟机休眠(suspend-disk、suspend-ram、suspend-hybrid),获取虚拟机内部的信息(包括内存,CPU,网卡,OS等相关信息 )等。

超哥的博客 2259

【PDN仿真笔记9-使用Sigrity PowerDC进行IR Drop仿真的方法】

使用Sigrity PowerDC进行IR Drop进行仿真的方法

qq_42682826的博客 8000

qemu-ga windows下的安装及监控开发

windows安装qemu-ga 虚拟机配置里添加virtio serial端口 #virsh edit instance-name devices里添加下面这段配置, 1 <channel type='unix'> 2 <source mode='bind' path='/var/lib/libvirt/qemu/org.qe...

agi8189的博客 2962

避坑指南:Docker部署PaddleOCR-VL服务时,关于flash-attn安装、端口映射和模型加载的那些坑

本文详细记录了Docker部署PaddleOCR-VL服务时遇到的常见问题及解决方案,包括flash-attn安装、GPU兼容性检查、容器生命周期管理、模型加载优化等关键环节。特别针对不同GPU架构提供了flash-attn的安装策略,并分享了端口映射、配置文件处理等实用技巧,帮助开发者高效避坑。

weixin_33686714的博客 463

利用Qemu Guest Agent (Qemu-ga) 实现 Openstack 监控平台

http://www.csdn123.com/html/itweb/20130729/27101_27081_27076.htm 利用Qemu Guest Agent (Qemu-ga) 实现 Openstack 监控平台 经常使用vmWare的同学都知道有vmware-tools这个工具,这个安装在vm内部的工具,可以实现宿主机与虚拟机的通讯,大大增强了虚拟机的性能与功能, 如

Tony的专栏 6473

BGE(BAAI General Embedding)模型详解

BGE(BAAI General Embedding)是北京智源人工智能研究院(BAAI)推出的通用文本嵌入模型系列,旨在为各种自然语言处理任务提供高质量的向量表示。

ttyy1112的专栏 7552

全网最详细 解决戴维南定理的详细推导

替代定理,戴维南定理详细证明

m0_52555753的博客 3万+

OpenStack qemu-guest-agent 使用

What is qemu-ga 我个人认为qemu-ga是在虚拟机中安装的一个agent,宿主机host通过通道(unix socket)与虚拟机vm内部的agent进行通信,这样宿主机就有了一种从外部控制/获取虚拟机的手段。比如:host可以向vm下发执行修改 hostname的指令,或者获取vm内所有进程信息的指令。 qemu-ga时刻监听这个unix socket,一旦发现有指令发送来,...

weixin_30824479的博客 1221

一文学会Cadence Sigrity PDN仿真——硬件新手小白都能看懂的保姆级教程

电源完整性的仿真,实际上是在仿真以及优化系统中的等效串联电阻。知道了仿真以及优化的目标之后,接下来就是要弄明白这个串联电阻从哪儿来以及怎么优化。整个系统中的串联电阻实际上由三部分组成:没有相位的阻抗,有相位的容抗和感抗,得益于相位,在某个特定的频点,容抗和感抗会大小相等,相位相反而相互抵消,这时候整个系统中就剩下了阻抗,所以整个系统的串联电阻达到了一个最低值,这种现象就是----谐振。当系统处于谐振点时候,整个系统会有一个最小的串联电阻,所以第一个优化电阻的手段就是让谐振来的更频繁一点。

学习帮的博客 2万+

深度解析qemu-guest-agent:架构原理、核心场景与部署实践

QEMU作为全系统模拟器,通过动态二进制翻译实现跨架构虚拟化,其性能瓶颈催生了KVM(Kernel-based Virtual Machine)硬件辅助虚拟化技术。通过深入理解QEMU虚拟化架构与QEMU-GA的工作原理,系统管理员可构建更高效、安全的虚拟化基础设施。实际部署中需重点关注通道加密(如启用TLS)、最小权限原则及审计日志的集中管理,以应对日益复杂的安全威胁。

tianyuanwo的专栏 2324

Lumerical Python API实战指南(一)——从数据优化到自动化工作流

本文是Lumerical Python API实战指南,旨在帮助用户从繁琐的手动仿真操作转向智能自动化工作流。文章详细介绍了API环境的零基础搭建、核心操作(会话管理、命令执行与数据交换),并通过参数扫描与自动化分析流水线的实战案例,展示了如何利用Python脚本实现从数据优化到自动化仿真的全过程,显著提升光子设计效率。

xxx12的博客 566

如何有效爬取“好大夫”评论数据?技术实现与合规性分析

本文探讨了爬取好大夫在线医生评论数据的技术与合规性问题。分析了好大夫平台评论数据的价值和特点,指出其动态加载和反爬机制的挑战。技术上,推荐使用Selenium模拟浏览器行为获取数据,并提供了分页爬取、代理IP、验证码识别等解决方案。同时强调必须遵守平台的爬虫策略,关注用户协议和隐私保护法规,建议通过官方API或授权方式获取数据。文章还讨论了数据清洗存储方法,并提醒注意数据伦理和最小化抓取原则。本文为医疗数据爬取提供了技术实现和合规性指导的平衡方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1052

iso qemu 安装ubuntu_通过QEMU-GuestAgent实现从外部注入写文件到KVM虚拟机内部

本文将以宿主上直接写文件到VM内部为例讲解为何要注入以及如何实现tag: qemu-ga, qemu guest agent, kvm, guest-file-write, inject小慢哥的原创文章,欢迎转载目录▪ 为什么要“注入”到VM内部▪ 如何实现“注入”▪ Step1. 为VM配置channel▪ Step2. 部署qemu-ga▪ Step3. 注入操作说明▪ Step4. Base...

weixin_28771751的博客 1065

【保姆级教程】基于UNet++&MobileNetv3的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300%

通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv3作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。

FJN110的博客 253

qemu 安装windows_通过QEMU-GuestAgent实现从外部注入写文件到KVM虚拟机内部

本文将以宿主上直接写文件到VM内部为例讲解为何要注入以及如何实现tag: qemu-ga, qemu guest agent, kvm, guest-file-write, inject小慢哥的原创文章,欢迎转载目录▪ 为什么要“注入”到VM内部▪ 如何实现“注入”▪ Step1. 为VM配置channel▪ Step2. 部署qemu-ga▪ Step3. 注入操作说明▪ Step4. Base...

weixin_39788960的博客 1100

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Qt浅谈之四十六QemuQuestAgent的应用

一、简介         qemu-ga是在虚拟机中安装的一个agent,宿主机host通过通道(unix socket)与虚拟机vm内部的agent进行通信,这样宿主机就有了一种从外部控制/获取虚拟机的手段。比如:host可以向vm下发执行修改hostname的指令,或者获取vm内所有进程信息的指令。         qemu-ga时刻监听这个unix socket,一旦发现有指令发送来

乌托邦 4016

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

NOS 之 qemu实现

不仅仅有镜像,我们必须还要创建一个虚拟机才行,而不是每次都创建。而这就是qemu-img的作用。 create [-ffmt] [-ooptions]filename[size]创建一个格式为fmt大小为size文件名为filename的磁盘镜像文件。或者说一个虚拟机。 参数-ffmt是指定文件的格式,如果不指定格式qemu-img会自动检测,filename是磁盘镜像文件的名称(包括路径)。注意是磁盘镜像,而不是系统镜像。 qcow2是QEMU 0.8.3版本引入的镜像文件格式,也是目...

HeroIsUseless的博客 326

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

KVM虚拟化技术的-Qemu

QEMU 支持两种操作模式:User mode模拟模式,亦即是用户模式(ioctl 调用 /dev/kvm,)和System mode模拟模式,亦即是系统模式(qemu-kvm)。 https://www.qemu.org/ ivshmem-client/server:这是一个 guest 和 host 共享内存的应用程序,遵循 C/S 的架构。 qemu-ga:这是一个不利用网络实现 g...

石头 578

把网卡指定给vm虚拟机_通过QEMU-GuestAgent实现从外部注入写文件到KVM虚拟机内部...

本文将以宿主上直接写文件到VM内部为例讲解为何要注入以及如何实现tag: qemu-ga, qemu guest agent, kvm, guest-file-write, inject小慢哥的原创文章,欢迎转载目录▪ 为什么要“注入”到VM内部▪ 如何实现“注入”▪ Step1. 为VM配置channel▪ Step2. 部署qemu-ga▪ Step3. 注入操作说明▪ Step4. Base...

weixin_42531494的博客 387

ubuntu打开kvm_KVM注入写文件

本文将以宿主上直接写文件到VM内部为例讲解为何要注入以及如何实现tag: qemu-ga, qemu guest agent, kvm, guest-file-write, inject小慢哥的原创文章,欢迎转载目录▪ 为什么要“注入”到VM内部▪ 如何实现“注入”▪ Step1. 为VM配置channel▪ Step2. 部署qemu-ga▪ Step3. 注入操作说明▪ Step4. Base...

weixin_32016633的博客 285

Find Guest IP address using QEMU Guest Agent

http://dustymabe.com/2013/07/14/find-guest-ip-address-using-qemu-guest-agent/ Ever needed to find the IP address of a particular guest? Of course, the answer is "yes". For the most part I have eith

liukuan73的专栏 2292
上一篇: qemu-kvm 网络 nat模式 (四)
下一篇: debuginfo
linux内核控
博客等级 码龄19年 41粉丝 638原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值