socket的方式使用qemu建立虚拟机

[b]qemu的-net参数[/b]
[color=darkred]-net nic 必须有,基本配置model=网卡类型,[/color]
[color=darkred]-net tap 使用tap设备[/color]
参考

NAT的方式使用qemu建立虚拟机:[url]http://haoningabc.iteye.com/blog/2306952[/url]
桥接的方式使用qemu建立虚拟机:[url]http://haoningabc.iteye.com/blog/2306736[/url]

[color=darkred]-net user 使用qemu自身实现[/color]

[color=darkred]-net socket 两种 tcp方式和udp的方式[/color]
tcp使用listen=192.168.139.85:1234
其他vm使用 connect=192.168.139.85:1234
udp的方式使用多播地址 mcast=224.0.0.5:1234
在IPv4中,它历史上被叫做D类地址,一种类型的IP地址,它的范围从224.0.0.0到239.255.255.255,或,等同的,在224.0.0.0/4。在IPv6,多播地址都有前缀ff00::/8。但是注意,224.0.0.0被保留,不能赋给任何多播组。
########################
[b]例子:[/b]
[b]使用tcp的方式:[/b]
一个vm使用-net socket,listen=

qemu-system-i386 -kernel /root/jslinux/obj/linux-x86-basic/arch/i386/boot/bzImage -drive file=hda_hasbacking_file.qcow2,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nographic -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:22,model=e1000,addr=08 -net socket,name=mysock1,listen=192.168.139.85:1234

其他vm使用-net socket,connect=

qemu-system-i386 -kernel /root/jslinux/obj/linux-x86-basic/arch/i386/boot/bzImage -drive file=hda_hasbacking_file1.qcow2,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nographic -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:23,model=e1000,addr=08 -net socket,name=mysock2,connect=192.168.139.85:1234

在mysock1的vm中

ip link set eth0 up
ifconfig eth0 10.0.2.2 netmask 255.255.255.0

在mysock2的vm中

ip link set eth0 up
ifconfig eth0 10.0.2.3 netmask 255.255.255.0

测试可以互相ping通
切换到monitor模式
ctrl+a c

(qemu) info network
hub 0
\ hub0port1: mysock1: index=0,type=socket,socket: connection from 192.168.139.85:42941
\ hub0port0: e1000.0: index=0,type=nic,model=e1000,macaddr=52:54:00:12:34:22
(qemu)


[b]使用udp的方式:
[/b]
多台机器可以使用不同的"-net nic,macaddr="和"-net socket,name="

qemu-system-i386 -kernel /root/jslinux/obj/linux-x86-basic/arch/i386/boot/bzImage -drive file=hda_hasbacking_file.qcow2,if=ide,cache=none -append "console=ttyS0 root=/dev/sda rw rdinit=/sbin/init notsc=1" -nographic -boot order=dc,menu=on -net nic,vlan=0,macaddr=52:54:00:12:34:22,model=e1000,addr=08 -net socket,name=mysock1,mcast=192.168.139.85:1234

ip设置同上,也可以ping通
切换monitor模式

(qemu) info network
hub 0
\ hub0port1: mysock1: index=0,type=socket,socket: mcast=224.0.0.5:1234
\ hub0port0: e1000.0: index=0,type=nic,model=e1000,macaddr=52:54:00:12:34:22
(qemu)
windows-x86安装qemu-arm虚拟机及文件互传 由于没有固件,我们需要下载一个UEFI(UEFI固件镜像文件,BIOS的替代方案)的下载地址。得到一个命名为kylindisk.qcow2的磁盘文件,以后我们利用此文件进行安装虚拟机。c.下载qemu,并将软件安装在D:\vm\arm64下。Enforcing为开启,Permissive为临时关闭。2、首先查看/etc/ssh/sshd_config文件。进入到qemu的安装目录,如下图,打开cmd命令行。/etc/ssh/sshd_config文件。在qemu目录中打开cmd,执行以下命令。 阅读详情

相关推荐

Qemu Guest Agent方式实现libvirt与虚机交互

一、qga简介 1、qga工具 qemu guest agent,简称qga,是一个运行在虚拟机内部的普通应用程序,可实现宿主机libvirt和虚拟机的通信,宿主机可通过向虚机中的qga发送命令控制虚机。 这种通信不依赖网络,而是通过virtio-serial的方式。使用virtio传递消息,对虚拟机和主机的网络设置没有任何要求,且效率更高,类似于VMware Tools。 2、宿主机libvirt和VM通信方式选择 宿主机若要和VM通信,需要满足以下两个条件: 1)vm内部和外部宿主机之.

wuyongpeng的专栏 1万+

qemu里面 qapi_free_SocketAddress 和 g_free的区别

QAPI 是一种用于定义和生成 QEMU API 的框架,而 qapi_free_SocketAddress 则是用于释放由 QEMU API 创建的 SocketAddress 对象的内存。总结来说,qapi_free_SocketAddress 是用于释放 QEMU API 中特定结构体的内存,而 g_free 是 GLib 库中通用的内存释放函数。在 QEMU 中,qapi_free_SocketAddress 和 g_free 是两个不同的函数,用于释放内存资源的操作。

li_jiejun的专栏 443

深入探索QEMU监视器的多种交互方式

本文深入探讨了QEMU监视器的多种交互方式,包括通过终端直接交互、网络连接以及图形界面集成。详细介绍了使用-monitor stdio参数进行命令行控制、利用Telnet/TCP/UNIX Socket进行远程与自动化管理,以及通过VNC/SPICE Web界面进行图形化操作的方法与实战技巧,帮助用户高效管理虚拟机。

weixin_29243063的博客 635

QEMU中Virtio与Vhost的协作机制详解

本文详细解析了QEMU中Virtio与Vhost的协作机制。通过动态二进制翻译(TCG)实现跨架构模拟,QEMU利用Virtio标准化接口实现半虚拟化,并引入Vhost绕过QEMU提升I/O性能。系统架构部分展示了虚拟机通过Virtio队列与宿主机Vhost进程通信的过程,并配置TAP设备实现网络交互。代码实现环节演示了环境搭建、前后端通信流程及Vhost-user协议解析,重点剖析了请求头结构和字段含义。

weixin_67693061的博客 875

【VSCode】【Clangd】从零构建:基于LLVM/Clangd+MINGW+CMake的Windows高性能C/C++开发环境实战

本文详细介绍了如何在Windows平台搭建基于LLVM/Clangd+MINGW+CMake的高性能C/C++开发环境。通过VSCode配置Clangd语言服务器,结合MINGW提供的GCC工具链和CMake的跨平台构建能力,实现轻量级、高效率的开发体验。文章包含从环境准备到实战配置的完整指南,特别适合追求开发效率和跨平台兼容性的开发者。

weixin_28839629的博客 310

Ubuntu22.04 网络图标消失与连接故障排查指南(附实战修复流程)

本文详细介绍了Ubuntu22.04系统中网络图标消失与连接故障的排查与修复方法。通过ifconfig、dhclient等命令诊断问题,提供从紧急恢复网络连接到深度排查的完整解决方案,帮助用户快速恢复网络功能并预防类似问题再次发生。

weixin_28481133的博客 287

宿主机与kvm虚拟机qemu-guest-agent使用

qemu-guest-agent使用

aolitianya的博客 8021

VLA、世界模型与端到端在智驾中的本质关系与工程落地

世界模型并非3D重建,而是对环境状态转移函数的可微分建模;VLA不是视觉+语言+动作的简单拼接,核心在于跨模态语义对齐。二者共同支撑具身智能系统实现从感知到行动的闭环推演,其技术价值体现在长尾场景泛化能力提升与决策延迟降低。在自动驾驶领域,真实量产方案均采用VLA架构作为多模态感知基础,嵌入轻量级世界模型以支持反事实轨迹推演,并通过WA硬件封装保障实时性,最终由端到端控制层完成像素到扭矩的语义贯通。这种混合架构已成L2+/L3智驾系统的工程共识。

weixin_34163553的博客 365

1.1Qemu 用户态架构

本节首先分析Qemu的初始化的顶层流程;从而引出Qemu各大功能模块的描述; 最后分析Qemu与内核态KVM的通讯接口。

wanthelping的博客 6446

ScanNet数据集详解

ScanNet 是一个 RGB-D 视频数据集,在超过 1500 次扫描中包含了 250 万个视图,并标注了 3D 相机位姿、表面重建和实例级的语义分割。为了收集这些数据,设计了一个易于使用且具有扩展性的 RGB-D 捕获系统,包括自动化的表面重建和众包的语义标注。如果您想下载 ScanNet 数据,请使用您的机构邮箱地址填写一份 ScanNet 使用条款协议,并发送至 scannet@googlegroups.com。压缩包是将3D的标注信息“拍扁”成2D图片的结果,对应原始视频的每一帧。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 3918

【某音电商】protobuf聊天协议逆向

某音电商私信、聊天消息protobuf协议逆向分析与解析

吴秋霖的博客 2314

基于RT-Thread系统使用 QEMU 运行 RT-Thread 提供的基于多线程的非阻塞 socket 编程

多线程非阻塞网络编程 简介: 在实际开发中,往往要求网络传输时不能阻塞当前线程,以致无法及时处理其他消息。在用户无法直接套用简单的 socket demo 时,RT-Thread 提供基于多线程的非阻塞 socket 编程示例,方便用户进行应用程序开发。 在 RT-Thread 使用 socket 网络编程时,当一个任务调用 socket的 recv()函数接收数据时,如果 socket 上并没有...

qq_43643506的博客 2860

ICV:Metal Fill Insertion流程

如果不想删除先前加的metal fill,可以使用signoff_create_metal_fill -mode add命令,当使用这个mode后,工具不会fix density问题,哪怕设置了signoff.create_metal_fill.fix_density_errors,设置这个mode后可以使用以下option控制metal fill 的插入。默认情况下,signoff_create_metal_fill是会删掉已经加进去的metal/via fill再重新加的。

m0_61544122的博客 1132

qemu虚拟机与外部网络的通信

一、基本概念 为了使虚拟机能够与外界通信,Qemu需要为虚拟机提供网络设备。Qemu支持的常用网卡包括NE2000、rtl8139、pcnet32等。命令行上用-net nic为虚拟机创建虚拟机网卡。例如,qemu的命令行选项 -net nic,model=pcnet 表示为虚拟机添加一块pcnet型的以太网卡。如果省略model参数则...

whatday的专栏 4748

SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇) 第一篇:需求梳理与架构设计:从零搭建SAP主数据校验能力底座

摘要: 本系列博客介绍SAP主数据校验工具的开发和设计,旨在解决物料、供应商、客户等主数据录入不规范、关联缺失和合规性问题。第一篇聚焦需求梳理与架构设计,提出分层技术架构(展示层、业务逻辑层、数据访问层),支持实时校验和批量校验两种模式,并详细说明规则引擎设计、SAP系统对接方案及权限管控逻辑。后续篇章将深入规则引擎实现、接口对接、结果可视化和性能优化,帮助构建集中式、可配置的主数据校验能力,提升SAP数据质量。

baidu_35680696的博客 330

《囚徒健身》 六艺,十式

文章目录《囚徒健身》 六艺,十式1、六艺,十式2、优缺点3、手臂和上半身 《囚徒健身》 六艺,十式 1、六艺,十式 1、俯卧撑: 2、深蹲: 3、举腿: 4、引体向上: 5、桥: 6、倒立撑: 十式就是每个动作分拆为十个不同的动作等级,进行训练 每一式里面,又根据做的组数和个数,分成三层,初级,中级,高级 依次循序渐进,每完成上一个动作的高级,则向下一个动作前进 2、优缺点 优点 : 六个动作都是很常见的,日常的动作,不太需要依赖什么器械,随时随地都可以练习,很方便 这些动作可以覆盖到全身大部分

简简单单Onlinezuozuo 4563

go-qemu终极指南:使用QEMU Machine Protocol轻松控制虚拟机

go-qemu是一个强大的Go语言库,专门用于通过QEMU Machine Protocol(QMP)与运行中的QEMU虚拟机实例进行交互。这个开源项目由DigitalOcean维护,采用Apache 2.0许可证,为Go开发者提供了完整的虚拟机管理解决方案。无论您是需要管理单个虚拟机还是整个虚拟化集群,go-qemu都能帮助您轻松实现自动化控制。🚀 ## 📊 为什么选择go-qemu进行虚

gitblog_01129的博客 624

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

使用 GDB 调试 QEMU 虚拟机:完整指南

本文详细介绍了如何利用QEMU的GDB调试功能进行系统级代码的开发与调试。主要内容包括:1)配置QEMU启动参数启用GDB调试支持;2)连接GDB进行基本调试操作;3)实用调试技巧(断点设置、多核调试、物理内存查看等);4)高级选项(单步执行调整、内存模式切换);5)安全注意事项。文章重点讲解了如何克服KASLR、多核调试等复杂场景下的调试挑战,并对比了不同模拟模式下的调试特性差异,为开发操作系统内核和底层系统软件提供了全面的调试指导。

qq_45652092的博客 1745

IDEA的使用指南

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

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

5分钟掌握go-qemu:虚拟机状态监控与管理的简单方法

go-qemu是一个基于Go语言开发的开源项目,提供了通过QEMU Machine Protocol (QMP)与QEMU交互的Go包,让开发者能够轻松实现虚拟机状态监控与管理功能。本文将带你快速了解如何使用go-qemu进行虚拟机的基本操作,无需深入复杂的QEMU内部机制。 ## 🌟 什么是go-qemu? go-qemu是一个专为QEMU虚拟机设计的Go语言工具库,它通过QEMU Mac

gitblog_01017的博客 1018

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

windows-x86使用qemu打开x86和arm虚拟机

windows-x86使用qemu打开x86和arm虚拟机

qq_42383970的博客 4220

如何用go-qemu快速上手QMP:从安装到第一个命令的完整教程

go-qemu是一个基于Go语言的开源项目,提供了通过QEMU Machine Protocol (QMP)与QEMU交互的功能包。本教程将为你提供从安装到执行第一个命令的完整指南,帮助新手快速掌握go-qemu的使用方法。 ## 一、了解go-qemu与QMP QEMU Machine Protocol (QMP)是QEMU提供的一种机器可解析的管理协议,允许用户通过发送命令来控制和查询QE

gitblog_00697的博客 893

QEMU使用Qemu-Guest-Agent传输文件、执行指令等

Qemu和宿主机不使用外网进行文件传输。这是一种方式,这里还有另一种方式:使用,后面简称qga。

赵昕彧 2364
上一篇: tap的方式使用qemu建立虚拟机NAT网络
下一篇: libvirt建立快照和基本使用
linux内核控
博客等级 码龄19年 41粉丝 638原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值