QEMU使用Qemu-Guest-Agent傳輸文件、執行指令等


簡介

之前介紹過qemu傳輸文件,使用的掛載 / samba方式 :Qemu和宿主機不使用外網進行文件傳輸。

這是一種方式,這里還有另一種方式:使用Qemu-Guest-Agent,后面簡稱qga

官網介紹:https://www.qemu.org/docs/master/interop/qemu-ga.html


安裝

這里有一篇參考文章,會比我下面介紹的相對復雜一點,但也可以完成操作。

參考文章:https://www.easystack.cn/doc/ComputingService/6.1.1/zh-cn/FAQs/DeployQGA.html

一、Linux的Qemu機器

直接install命令即可,查看上面的參考鏈接即可。

二、Windows的Qemu機器

Windows的Qemu機器:需要安裝好virtio-serial driver,下面詳細介紹一下:

首先下載該文件(1積分),這個文件我已經測試了Windows7-10、Centos7-8、Ubuntu16-24可用:Qemu-Guest-Agnet整理包

這是一個Windows整理后的qga包,包含amd64.zip和qemu-ga.zip兩個文件,請都解壓出來。

1、amd64:首先安裝證書,管理員運行cmd,命令:pnputil -I -a vioser.inf

2、qemu-ga:將qemu-ga目錄放到C:\Program Files下,管理員運行cmd,命令:qemu-ga -s install

3、然后檢查【服務】,是否包含以下兩個服務,如果存在,則說明安裝成功,將兩個內容全部設置為自動啟動
QEMU Guest Agent
QEMU Guest Agent VSS Provider

4、驗證
轉為qcow2上傳到linux服務器,運行以下指令(假設該qcow2文件名字為Windows10.qcow2)
運行以下內容

qemu-system-x86_64 -name test -hda Windows10.qcow2 -m 4096M -smp cpus=2,sockets=1 -enable-kvm -netdev user,id=net0 -device e1000,netdev=net0 -chardev socket,path=/tmp/test.sock,server=on,wait=off,id=qga0 -device virtio-serial -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 -machine usb=on -device usb-tablet

成功開機后,有可能QEMU Guest Agent服務并沒有成功運行,那么此時到【服務】中手動開啟,如果能手動開啟成功,則沒問題(下次就能自動開啟了)。

此時,使用命令socat - unix-connect:/tmp/test.sock,連接上以后,輸入一些命令測試一下,如:{"execute":"guest-info"}


使用

前面安裝沒問題以后,就可以用代碼去連接socket文件并執行內容了。這里寫幾個demo

1、獲取系統信息

import asyncio
import jsonclass QEMUGuestAgent(object):endpoint: strdef __init__(self, endpoint):self.endpoint = endpointasync def execute(self, command, timeout=2.0):try:reader, writer = await asyncio.open_unix_connection(self.endpoint)writer.write(json.dumps(command).encode())response = await asyncio.wait_for(reader.readline(), timeout)writer.close()return json.loads(response)except ConnectionAbortedError:print(

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920947.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920947.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920947.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTML 核心標簽全解析:從文本排版到媒體嵌入

在網頁開發中,HTML(超文本標記語言)是構建頁面結構的基石。掌握各類核心標簽的用法,是實現頁面內容有序呈現、提升用戶體驗的關鍵。本文將系統講解 HTML 中最常用的幾類標簽 —— 段落標簽、文本格式標簽、列表標簽、表格&#xf…

[后端快速搭建]基于 Django+DeepSeek API 快速搭建智能問答后端

在 AI 應用開發中,將大模型 API 與 Web 框架結合是常見需求。本文將詳細記錄如何使用 Django 搭建后端服務,并集成 DeepSeek API 實現智能問答功能,包含環境配置、路由設計、API 調用及異常處理的完整流程,適合需要快速搭建 AI 問…

R 語言 + 卒中 Meta 分析

R 語言 卒中 Meta 分析:4 類核心場景完整代碼(含藥物對比 / 劑量風險) 卒中(缺血性 / 出血性)的臨床決策高度依賴循證證據,而 Meta 分析是整合多中心研究結果的核心工具。本文以卒中臨床研究為核心&#x…

Goframe 框架下HTTP反向代理并支持MCP所需的SSE協議的實現

一、需求背景 Go 語言開發 MCP 服務,并在 Goframe 框架下實現 Http 反向代理,代理該 MCP 服務。 二、效果演示 三、Goframe框架簡介 GoFrame 是一款模塊化、低耦合設計、高性能的Go 語言開發框架。包含了常用的基礎組件和開發工具,既可以作…

Git將多筆patch合并成一筆

一、方法1、在你的代碼中把這多筆patch都打上2、git reset到origin那一筆(默認模式,不帶soft或者hard)3、再add和commit,push二、種模式對比模式命令示例影響范圍適用場景--softgit reset --soft HEAD~1僅移動 HEAD,保留修改在暫存區修改提交…

【SpringBoot】Dubbo、Zookeeper

文章目錄前提知識概要分布式系統單體架構垂直應用架構分布式架構流式架構RPCDubbo概念Dubbo環境搭建Zookeeper測試 ZookeeperWindow環境下使用Dubbo-admin版本匹配不對服務注冊實戰內容總結導入相關依賴選擇 Zookeeper 版本配置并啟用 Zookeeper創建服務接口和實現(DubboServic…

【不說廢話】pytorch張量相對于numpy數組的優勢

核心關系 我們首先需要了解:PyTorch 張量在設計上深受 NumPy 數組的影響,它們共享許多相似的 API 和概念。實際上,PyTorch 張量可以看作是支持 GPU 加速和自動求導功能的 NumPy 數組。PyTorch 張量的主要優勢 1. GPU 加速支持(最重…

拼團小程序源碼分享拼團余額提現小程序定制教程開發源碼二開

功能詳細說明(一)首頁功能進入首頁,可看到以下核心功能:1、優惠券,錢包,簽到,拼團,分銷等各種功能入口2、推薦的商品和活動3、下方功能欄的各種功能(二)客服功…

pikachu之XSS

XSS(跨站腳本)概述Cross-Site Scripting 簡稱為“CSS”,為避免與前端疊成樣式表的縮寫"CSS"沖突,故又稱XSS。一般XSS可以分為如下幾種常見類型:1.反射性XSS;2.存儲型XSS;3.DOM型XSS;XSS漏洞一直被評估為web漏…

【Element Plus `el-select` 下拉菜單響應式定位問題深度解析】

Element Plus el-select 下拉菜單響應式定位問題深度解析 本文檔旨在深入剖析一個在響應式布局中常見的 UI 問題:如何確保一個靠近屏幕邊緣的 el-select 組件的下拉菜單,在任何屏幕尺寸下都能以預期的、優雅的方式顯示。 1. 需求背景 在一個大屏數據展示…

Qt 項目文件(.pro)中添加 UI 文件相關命令

在 Qt 的 .pro 項目文件中,處理 UI 文件(.ui 文件)通常需要以下配置: 基本 UI 文件配置 自動包含 UI 文件: qmake FORMS yourfile.ui \anotherfile.ui Qt 構建系統會自動使用 uic(用戶界面編譯器&#xff…

展會回顧 | 聚焦醫療前沿 , 禮達先導在廣州醫博會展示類器官自動化培養技術

8月22-24日,廣州醫博會在廣交會展館B區圓滿落幕。此次盛會匯聚了來自全球醫療健康領域的頂尖專家學者、企業代表與合作伙伴。展會內容涵蓋基礎研發、臨床應用、前沿技術、產業轉化、醫療服務及金融支持,全景呈現醫療健康產業的創新生態,成為連…

華為eNSP防火墻綜合網絡結構訓練.docx

1.IP及VLAN規劃情況 設備 接口 IP vlan 備注 AR1 g0/0/0 1.1.1.2/28 PPPOE g0/0/1 3.3.3.1/30 g0/0/2 114.114.114.254/24 AR2 g0/0/0 2.2.2.2/28 DHCP g0/0/1 3.3.3.2/30 g0/0/2 100.100.100.254/24 FW1 g1/0/0 10.0.0.1/30 tr…

從 Oracle 到 TiDB,通過ETL工具,高效實現數據拉通

在當前企業數字化轉型的浪潮中,打破數據孤島、實現異構數據庫間的數據高效流轉已成為提升業務敏捷性與決策效率的關鍵。許多企業在要將 Oracle 數據庫中的海量數據準確地同步至TiDB 分布式數據庫時遇到了挑戰。這一過程不僅要求數據的絕對一致性,還對同步…

Effective c++ 35條款詳解

您問到了最關鍵的一點!這正是策略模式的精妙之處——它通過組合(composition)而非繼承(inheritance)來實現多態效果。讓我詳細解釋這是如何工作的,以及它與傳統繼承多態的區別。🔄 策略模式如何…

51c自動駕駛~合集19

自己的原文哦~ https://blog.51cto.com/whaosoft/11793894 #DRAMA 首個基于Mamba的端到端運動規劃器 運動規劃是一項具有挑戰性的任務,在高度動態和復雜的環境中生成安全可行的軌跡,形成自動駕駛汽車的核心能力。在本文中,我…

大數據新視界 -- Hive 數據倉庫:架構深度剖析與核心組件詳解(上)(1 / 30)

💖💖💖親愛的朋友們,熱烈歡迎你們來到 青云交的博客!能與你們在此邂逅,我滿心歡喜,深感無比榮幸。在這個瞬息萬變的時代,我們每個人都在苦苦追尋一處能讓心靈安然棲息的港灣。而 我的…

軟考 系統架構設計師系列知識點之雜項集萃(137)

接前一篇文章:軟考 系統架構設計師系列知識點之雜項集萃(136) 第253題 在面向對象設計中,用于描述目標軟件與外部環境之間交互的類被稱為( ),它可以( )。 第1空 A. 實體類 B. 邊界類 C. 模型類 D. 控制類 正確答案:B。 第2空 A. 表示目標軟件系統中具有持久…

(附源碼)基于Spring Boot公務員考試信息管理系統設計與實現

摘 要 隨著公務員考試日益受到社會的廣泛關注,一個高效、便捷的公務員考試信息管理系統顯得尤為重要。本文設計并實現了一個基于前端Vue框架,后端采用Java與Spring Boot技術,數據庫選用MySQL,并部署在Tomcat服務器上的信息管理系統…

學習JavaScript的第一個簡單程序:Hello World

在JavaScript中,最簡單的程序是打印"Hello World"。可以通過以下方式實現: console.log("Hello World");將上述代碼保存為hello.js文件,通過Node.js運行或在瀏覽器控制臺中執行。 瀏覽器環境實現 在HTML文件中嵌入Jav…