首页
导航
博客
电子书
算法
众创
代码
随贴
关于我们
您好,欢迎来到码863代码分享网! 请
[登录]
/
[注册]
搜 索
标题:
*
140
字
TAG标签:
(用空格隔开)
30
字
恢复历史版本:
请选择分类
html
python
javascript
php
sql
c
c++
c#
java
plain
所有人可见
仅自己可见
编辑器:UEditor
编辑器:TinyMCE
编辑器:Editor.md
HTML转MD
HTML转MD2
<div class="blogpost-body blogpost-body-html"> <h1>https://www.cnblogs.com/born2run/p/16361823.html</h1> <h1> </h1> <h1>QEMU 安装与使用</h1> <p> </p> <div class="toc"> <h3>文章目录</h3> <ul> <li><a href="#QEMU__0">QEMU 安装与使用</a></li> <li> <ul> <li><a href="#qemu_2">安装qemu</a></li> <li> <ul> <li><a href="#_4">硬件准备</a></li> <li><a href="#KVM_19">安装KVM</a></li> <li><a href="#qemu_41">安装qemu</a></li> <li> <ul> <li><a href="#_45">源码安装</a></li> <li><a href="#_65">安装工具安装</a></li> </ul> </li> </ul> </li> <li><a href="#QEMU_84">QEMU使用</a></li> <li> <ul> <li><a href="#678_86">创建虚拟机[^6][^7][^8]</a></li> <li><a href="#_113">命令选项</a></li> <li> <ul> <li><a href="#qemu_115">qemu的标准选项</a></li> <li><a href="#qemu_154">qemu显示选项</a></li> <li><a href="#_188">网络属性相关选项</a></li> <li><a href="#kvm_217">kvm的网络模型</a></li> <li><a href="#bridge_235">手动创建bridge</a></li> <li><a href="#i386_253">i386平台专用选项</a></li> </ul> </li> </ul> </li> <li><a href="#_263">参考</a></li> </ul> </li> </ul> </div> <p> </p> <h2>安装qemu</h2> <h3>硬件准备</h3> <p>如果需要构建KVM环境,首先需要硬件支持。</p> <p>首先处理器(CPU)要在硬件上支持VT技术,还要在BIOS中将其功能打开,KVM才能使用到。目前,多数流行的服务器和部分桌面处理器的BIOS都默认将VT打开了。</p> <p>在BIOS中,VT的选项通过“Advanced→Processor Configuration”来查看和设置,它的标识通常为“Intel®Virtualization Technology”或“Intel VT”等类似的文字说明。</p> <p>设置好了VT和VT-d的相关选项,保存BIOS的设置并退出,系统重启后生效。在Linux系统中,可以通过检查/proc/cpuinfo文件中的CPU特性标志(flags)来查看CPU目前是否支持硬件虚拟化。在x86和x86-64平台中,Intel系列CPU支持虚拟化的标志为“vmx”,AMD系列CPU的标志为“svm”。所以可以用以下命令行查看“vmx”或者“svm”标志:</p> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">[marvin@localhost ~]$ grep -E "svm|vmx" /proc/cpuinfo</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault cat_l2 pti cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts umip rdpid md_clear arch_capabilities</td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <h3>安装KVM</h3> <p>KVM作为Linux kernel中的一个module而存在,是从Linux 2.6.20版本开始被完全正式加入内核的主干开发和正式发布代码中。所以,只需要下载2.6.20版本,Linux kernel代码即可编译和使用KVM。</p> <p>总的来说,下载最新KVM源代码,主要有以下3种方式:<br />1)下载KVM项目开发中的代码仓库kvm.git。<br />2)下载Linux内核的代码仓库linux.git。<br />3)打包下载Linux内核的源代码(Tarball 格式)。</p> <p>首先查看系统是否加载了kvm模块</p> <p>使用命令:<code>lsmod | grep kvm</code></p> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">[marvin@localhost ~]$ lsmod | grep kvm</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">kvm_intel 299008 0</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">kvm 753664 1 kvm_intel</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">irqbypass 16384 1 kvm</td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <p>如果没有安装KVM模块,需要安装,具体安装过程可google/百度<sup class="footnote-ref"><a href="#fn1">1</a></sup>。</p> <h3>安装qemu</h3> <p>安装qemu有两种方式,一种为源码安装,一种直接<code>apt/yum/dnf</code>安装。</p> <h4>源码安装</h4> <p>参考官方步骤:https://www.qemu.org/download/</p> <ol> <li> <p>下载QEMU源码</p> </li> <li> <p>解压</p> </li> <li> <p>configure</p> </li> </ol> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-bash highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-comment"># 加入KVM</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">./configure --prefix=XXX --enable-debug --target-list=x86_64-softmmu --enable-kvm</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-comment"># --prefix 选项设置qemu的安装位置,之后若要卸载删除qemu只要删除该文件夹即可</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-comment"># config完,可以在指定的qemu安装文件夹下面找到config-host.mak文件,</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-comment"># 该文件记录着qemu配置的选项,可以和自己设置的进行对比,确保配置和自己已知</span></td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-bash highlighter-hljs hljs hljs-line-numbers"></code></pre> <ol start="4"> <li>make和安装</li> </ol> <p>make时如果缺少相关的库或者软件,make会退出并提示缺少的东西,按照提示安装即可。</p> <h4>安装工具安装</h4> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">sudo yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-install virt-viewer</td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <ul> <li>qemu-kvm:qemu模拟器</li> <li>qemu-img:qemu磁盘image管理器</li> <li>virt-install:用来创建虚拟机的命令行工具</li> <li>libvirt:提供libvirtd daemon来管理虚拟机和控制hypervisor</li> <li>libvirt-client:提供客户端API用来访问server和提供管理虚拟机命令行工具的virsh实体</li> <li>virt-viewer:图形控制台</li> </ul> <p>其中最重要的是qemu-kvm、qemu-img,同时为了方便管理虚拟机,最好安装上libvirt<sup class="footnote-ref"><a href="#fn2">2</a></sup>。</p> <p>安装完qemu后,在/usr/bin/目录下会有qemu开头的若干可执行程序, 类似qemu-x86_64这种命令是运行某种架构的程序的,qemu-system-x86_64是运行某种架构系统的(虚拟机),如果需要kvm支持,需要加上参数 -enable-kvm, 如果使用libvirt可以配置相应的xml来实现kvm支持。</p> <p>更多关于这些程序的一些区别和联系,可以参考以下文献<sup class="footnote-ref"><a href="#fn3">3</a></sup><sup class="footnote-ref"><a href="#fn4">4</a></sup><sup class="footnote-ref"><a href="#fn5">5</a></sup></p> <h2>QEMU使用</h2> <h3>创建虚拟机<sup class="footnote-ref"><a href="#fn6">6</a></sup><sup class="footnote-ref"><a href="#fn7">7</a></sup><sup class="footnote-ref"><a href="#fn8">8</a></sup></h3> <ol> <li>创建镜像</li> </ol> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">[marvin@localhost Worksapce]$ qemu-img create -f qcow2 XXX.qcow2 10G</td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <ol start="2"> <li>创建虚拟机</li> </ol> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">qemu-system-x86_64 -enable-kvm -name "XXX" -m 1024 -smp 2 -boot d -drive file=XXX.qcow2,if=virtio,index=0,media=disk,format=qcow2 -drive file=YYY.iso,index=1,media=cdrom</td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-shell highlighter-hljs hljs hljs-line-numbers"></code></pre> <ol start="3"> <li> <p>创建之后通过vnc连接到安装界面,之后便可进行安装</p> </li> <li> <p>启动虚拟机</p> </li> </ol> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-bash highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-comment"># 未开启kvm支持,使用标准输入作为 QEMU monitor 命令源</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">./qemu-system-x86_64 -m 1024 -hda XXX.qcow2 -usb -usbdevice tablet -vnc :51 -monitor stdio</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-comment"># 开启kvm支持,使用标准输入作为 QEMU monitor 命令源</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">./qemu-system-x86_64 --enable-kvm -m 1024 -hda XXX.qcow2 -usb -usbdevice tablet -vnc :51 -monitor stdio</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-comment"># gdb调试</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">gdb --args ./qemu-system-x86_64 -m 1024 -hda XXX.qcow2 -usb -usbdevice tablet -vnc :51</td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-bash highlighter-hljs hljs hljs-line-numbers"></code></pre> <h3>命令选项</h3> <h4>qemu的标准选项</h4> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-csharp highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-meta"># qemu的标准选项主要涉及指定主机类型、CPU模式、NUMA、软驱设备、光驱设备及硬件设备等。</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-name name <span class="hljs-meta"># 虚拟机名称</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-M machine <span class="hljs-meta"># 指定要模拟的主机类型,如standard PC,ISA-only PC或Intel-Mac等,可以使用“qemu-kvm -M ?”获取所支持的所有类型</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-m megs <span class="hljs-meta"># 设定虚拟机的RAM大小</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-cpu model <span class="hljs-meta"># 设定CPU模型,如coreduo、qemu64等,可以使用"qemu-kvm -cpu ?"获取所支持的所有模型</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-smp n <span class="hljs-meta"># 设定模拟的SMP架构中CPU的个数</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">[,cores=cores] <span class="hljs-meta"># 每个CPU的核心数</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">[,threads=threads] <span class="hljs-meta"># 线程数</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">[,sockets=sockets] <span class="hljs-meta"># CPU的socket数目</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">[,maxcpus=maxcpus] <span class="hljs-meta"># 用于指定热插入的CPU个数上限</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-numa 非一致内存访问</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-numa opts:指定模拟多节点的numa设备</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"> </td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-fda file:</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-fdb file:使用指定文件(file)作为软盘镜像,file为/dev/fd0表示使用物理软驱</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-hda file:</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-hdb file:</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-hdc file:</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-hdd file:使用指定file作为硬盘镜像</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-cdrom file:使用指定file作为CD-ROM镜像,需要注意的是-cdrom和-hdc不能同时使用:将file指定为/dev/cdrom可以直接使用物理光驱</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"> </td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-drive <span class="hljs-meta"># 定义一个硬盘设备:可用子选项有很多</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">file=/path/to/somefile <span class="hljs-meta"># 硬盘映像文件</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-keyword">if</span>=<span class="hljs-keyword">interface</span> # 硬盘设备接口类型 <span class="hljs-title">ide</span>、<span class="hljs-title">scsi</span>、<span class="hljs-title">sd</span>、<span class="hljs-title">virtio</span>(半虚拟化)</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-title">index</span>=index <span class="hljs-meta"># 设定同一种控制器类型中不同设备的索引号,即标识号</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">media=media <span class="hljs-meta"># 定义介质类型为硬盘还是光盘disk、cdrom</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">snapshot=snapshot <span class="hljs-meta"># 指定当前硬盘设备是否支持快照功能:on或off</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">cache=cache <span class="hljs-meta"># 定义如何使用物理机缓存来访问块数据,其可用值有none、writeback、unsafe和writethrough四个</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">format=format <span class="hljs-meta"># 指定映像文件的格式,具体格式可参见qemu-img命令</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"> </td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-boot [order=drives][,once=drives][,menu=<span class="hljs-keyword">on</span>|off] <span class="hljs-meta"># 定义启动设备的引导次序,每种设备使用一个字符表示:不同的架构所支持的设备及其表示字符不尽相同,在x86 PC架构上,a、b表示软驱,c表示第一个光驱设备,n-p表示网络适配器,默认为硬盘设备。例如:-boot order=dc,once=d</span></td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-csharp highlighter-hljs hljs hljs-line-numbers"></code></pre> <p>示例<br /><code>qemu-system-x86_64 --name censtos -smp 2 -m 2048 -cpu host -drive file=/data/iso/CentOS-7-x86_64-Minimal-1804.iso,media=cdrom -drive file=centos.qcow2,media=disk -boot order=dc,once=d</code></p> <h4>qemu显示选项</h4> <p>显示选项用于定义虚拟机启动后的显示接口相关类型及属性等。</p> <pre class="highlighter-hljs code-theme-dark"><code class="highlighter-hljs hljs language-cmake hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">SDL</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-sdl <span class="hljs-comment"># 启用SDL</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"> </td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">VNC</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-vnc display [<span class="hljs-keyword">option</span>,<span class="hljs-keyword">option</span>] <span class="hljs-comment"># 默认情况下,qemu使用SDL显示VGA输出;使用-vnc选项,可以让qemu监听在vnc上,并将VGA输出重定向至vnc会话,使用此选项时,必须使用-k选项指定键盘布局类型;其中有许多子选项,具体请参考qemu的手册</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">display</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-number">1</span>、host:N <span class="hljs-comment"># N为控制台号</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-number">192.168</span>.<span class="hljs-number">1.1</span>:<span class="hljs-number">1</span> <span class="hljs-comment"># 5900为起始端口</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-number">2</span>、unix:/path/to/socket_file <span class="hljs-comment"># 监听在套接字</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-number">3</span>、none <span class="hljs-comment"># 不显示</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-keyword">option</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">password <span class="hljs-comment"># 连接时需要验证密码,设定密码通过monitor接口使用change</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">reverse <span class="hljs-comment"># “反向”连接至某处于监听状态的vncview上</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"> </td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-vga type <span class="hljs-comment"># 指定要仿真的VGA接口类型,常见的类型有:</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">cirrus: Cirrus Logic GD5446显示卡</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">std:带有Bochs VBI扩展的标准VGA显示卡</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">vmware:VMware SVGA-II兼容的显示适配器</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">qxl:QXL半虚拟化显示卡:与VGA兼容,在Guest中安装qxl驱动后能以很好的方式工作,在使用spice协议时推荐使用此类型</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">none:禁用VGA卡</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"> </td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-monitor stdio <span class="hljs-comment"># 在标准输入输出上显示monitor界面</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-nographic <span class="hljs-comment"># 默认情况下,qemu使用SDL来显示VGA输出,而此选项用于禁止图形接口,此时,qemu类似一个简单的命令行程序,其仿真串口设备将被重定向到控制台</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-curses <span class="hljs-comment"># 禁止图形接口,并使用curses/ncurses作为交互接口</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-alt-grab <span class="hljs-comment"># 使用Ctrl+Alt+Shift组合键释放鼠标</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-ctrl-grab <span class="hljs-comment"># 使用右Ctrl键释放鼠标</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-spice <span class="hljs-keyword">option</span>[,<span class="hljs-keyword">option</span>[,...]] <span class="hljs-comment"># 启用spice远程桌面协议:其中有许多子选项,具体请参照qemu-kvm手册。</span></td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="highlighter-hljs hljs language-cmake hljs-line-numbers"></code></pre> <h4>网络属性相关选项</h4> <p>网络属性相关选项用于定义网络设备接口类型及其相关的各属性等信息。这里只介绍nic、tap和user三种类型网络接口的属性,其他类型请参考qemu手册<sup class="footnote-ref"><a href="#fn9">9</a></sup>。</p> <pre class="highlighter-hljs code-theme-dark"><code class="highlighter-hljs hljs language-mipsasm hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">nic <span class="hljs-comment">#定义网络接口</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-net nic [,vlan=n,macaddr=n,model=type,name=name,<span class="hljs-keyword">addr=addr,vectors=v] </span> <span class="hljs-comment"># 创建一个新的网卡设备并连接至vlan n中:PC架构上默认的NIC为e1000,macaddr用于为其制定mac地址,name用于指定一个在监控时显示的网上设备名称;qemu可以模拟多个类型的网卡设备,如virtio、i82557b、i82559er、ne2k_isa、pcnet、rtl8139、e1000、smc91c111、lance及mcf_fec等;不过,不同平台架构上,其支持的类型可能只包含前述列表中的一部分,可以使用qemu-system-x86_64 -net nic,model=?来获取当前平台支持的类型。</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">vlan <span class="hljs-comment"># vlan号</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">macaddr <span class="hljs-comment"># mac地址(mac 默认不变)</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">model <span class="hljs-comment"># e1000 virtio</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">name <span class="hljs-comment"># 设备名</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-keyword">addr </span> <span class="hljs-comment"># ip地址</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"> </td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">tap <span class="hljs-comment">#nic管理虚拟机中的接口,tap就是管理宿主机上的对应接口</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-net tap[,vlan=n][,name=name][,fd=h][,ifname=name][,<span class="hljs-keyword">script=file][,downscript=dfile] </span> <span class="hljs-comment"># 通过物理机的TAP网络接口连接至vlan n中,使用script=file指定的脚本(默认为/etc/qemu-ifup)来配置当前网络接口,并使用downscript=file指定的脚本(默认为/etc/qemu-ifdown)来撤销接口配置;使用script=no和downscript=no可分别用来禁止执行脚本。</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"> </td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">user</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-net user[,option][,option][,...]:在用户模式配置网络栈,其不依赖于管理权限;有效选项有:</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">vlan=n <span class="hljs-comment"># 连接至vlan n,默认n=0</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">name=name <span class="hljs-comment"># 指定接口的显示名称,常用于监控模式中</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">net=<span class="hljs-keyword">addr[/mask] </span><span class="hljs-comment"># 设定GuestOS中可见的IP网络,掩码可选,默认为10.0.2.0/8</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">host=<span class="hljs-keyword">addr </span> <span class="hljs-comment"># 指定GuestOS中看到的物理机的IP地址,默认为指定网络中的第二个,即x.x.x.2</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">dhcpstart=<span class="hljs-keyword">addr </span><span class="hljs-comment"># 指定DHCP服务地址池中16个地址的起始IP,默认为第16个至第31个,即x.x.x.16-x.x.x.31</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">dns=<span class="hljs-keyword">addr </span> <span class="hljs-comment"># 指定GuestOS可见的dns服务器地址,默认为GuestOS网络中的第3个地址,即x.x.x.3</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">tftp=<span class="hljs-keyword">dir </span> <span class="hljs-comment"># 激活内置的tftp服务器,并使用指定的dir作为tftp服务器的默认根目录</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-keyword">bootfile=file </span><span class="hljs-comment"># BOOTP文件名称,用于实现网络引导GuestOS,如:qemu -hda linux.img -boot n -net user,tftp=/tftpserver/pub,bootfile=/pexlinux.0</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"> </td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="highlighter-hljs hljs language-mipsasm hljs-line-numbers"></code></pre> <h4>kvm的网络模型</h4> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-cpp highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-number">1</span>、隔离模型</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">使用bridge连接各个虚拟机但不关联物理网卡</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-number">2</span>、nat模型</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">在路由模型上添加nat规则 iptables</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-number">3</span>、路由模型</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">在隔离模型的基础之上添加一个虚拟网卡,开启路由转发功能。</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">需要虚拟机指定虚拟网卡的ip为网关</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">需要在要通信的主机或路由添加回复报文的路由条目</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-number">4</span>、桥接模型</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">在隔离模型的bridge上添加物理网卡</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">将物理网卡变为bridge,将原来的IP放到一张虚拟网卡并添加到桥上</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">dhcp 服务器</td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code"><span class="hljs-keyword">namespace</span> 名称空间</td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-cpp highlighter-hljs hljs hljs-line-numbers"></code></pre> <h4>手动创建bridge</h4> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-bash highlighter-hljs hljs hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">yum install bridge-utils <span class="hljs-comment">#安装工具包</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">rpm -ql bridge-utils <span class="hljs-comment">#查看utils释放的文件</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">brctl -h <span class="hljs-comment">#查看帮助</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">brctl addbr br0 <span class="hljs-comment">#添加网桥</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">ifconfig -a <span class="hljs-comment">#查看全部接口</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">brctl stp br0 off <span class="hljs-comment">#关闭生成树</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">ip <span class="hljs-built_in">link</span> <span class="hljs-built_in">set</span> br0 up <span class="hljs-comment">#启动br0设备</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">ip addr del 192.168.1.50/24 dev ens33 <span class="hljs-comment">#拆除物理网卡ip</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">ip addr add 192.168.1.50/24 dev br0 <span class="hljs-comment">#添加ip</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">ip a <span class="hljs-comment">#ip是否添加成功</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">ping 192.168.1.50 <span class="hljs-comment">#检查ip可用</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">ip <span class="hljs-built_in">link</span> <span class="hljs-built_in">set</span> dev ens33 master br0 <span class="hljs-comment">#物理网卡加入桥接设备</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">brctl show <span class="hljs-comment">#查看是否加入桥</span></td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="prism language-bash highlighter-hljs hljs hljs-line-numbers"></code></pre> <h4>i386平台专用选项</h4> <pre class="highlighter-hljs code-theme-dark"><code class="highlighter-hljs hljs language-mipsasm hljs-line-numbers"></code></pre> <table class="hljs-ln"> <tbody> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-no-acpi <span class="hljs-comment"># 禁用ACPI功能,GuestOS与ACPI出现兼容问题时使用此选项</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-<span class="hljs-keyword">ballcon </span>none <span class="hljs-comment"># 禁用balloon设备</span></td> </tr> <tr> <td class="hljs-ln-line hljs-ln-numbers"> <div class="hljs-ln-n"> </div> </td> <td class="hljs-ln-line hljs-ln-code">-<span class="hljs-keyword">balloon </span>virtio[,<span class="hljs-keyword">addr=addr] </span><span class="hljs-comment"># 启用virtio balloon设备</span></td> </tr> </tbody> </table> <pre class="highlighter-hljs code-theme-dark"><code class="highlighter-hljs hljs language-mipsasm hljs-line-numbers"></code></pre> <p>查看创建qcow2格式的磁盘支持的选项</p> <h2>参考</h2> <hr class="footnotes-sep" /> <ol class="footnotes-list"> <li class="footnote-item"> <p><a href="https://www.itzgeek.com/how-tos/linux/centos-how-tos/install-kvm-qemu-on-centos-7-rhel-7.html#axzz3cih9pbWg">Install KVM (QEMU) on CentOS 7 / RHEL 7</a> <a class="footnote-backref" href="#fnref1">↩︎</a></p> </li> <li class="footnote-item"> <p><a href="https://www.wikihow.com/Install-QEMU-on-Ubuntu">How to Install QEMU on Ubuntu</a> <a class="footnote-backref" href="#fnref2">↩︎</a></p> </li> <li class="footnote-item"> <p><a href="http://blog.jcix.top/2016-11-02/qemu_commands/">qemu/qemu-kvm/qemu-system-x86_64/qemu-x86_64命令的区别?</a> <a class="footnote-backref" href="#fnref3">↩︎</a></p> </li> <li class="footnote-item"> <p><a href="https://serverfault.com/questions/767212/difference-between-qemu-kvm-qemu-system-x86-64-qemu-x86-64">Difference between qemu-kvm, qemu-system-x86_64, qemu-x86_64</a> <a class="footnote-backref" href="#fnref4">↩︎</a></p> </li> <li class="footnote-item"> <p><a href="https://lists.gnu.org/archive/html/qemu-discuss/2016-04/msg00013.html">Re: [Qemu-discuss] Difference between qemu-kvm, qemu-system-x86_64, qemu</a> <a class="footnote-backref" href="#fnref5">↩︎</a></p> </li> <li class="footnote-item"> <p><a href="https://blog.51cto.com/jerry12356/2113364">KVM虚拟化:使用qemu-kvm创建和管理虚拟机</a> <a class="footnote-backref" href="#fnref6">↩︎</a></p> </li> <li class="footnote-item"> <p><a href="https://my.oschina.net/kelvinxupt/blog/265108">QEMU 1: 使用QEMU创建虚拟机</a> <a class="footnote-backref" href="#fnref7">↩︎</a></p> </li> <li class="footnote-item"> <p><a href="https://www.jianshu.com/p/32705bc27b89">qemu-kvm</a> <a class="footnote-backref" href="#fnref8">↩︎</a></p> </li> <li class="footnote-item"> <p><a href="https://qemu.weilnetz.de/doc/qemu-doc.html#System-requirements">QEMU version 4.1.0 User Documentation</a> <a class="footnote-backref" href="#fnref9">↩︎</a></p> </li> </ol> </div>
CopyRight 2002~2023 精通2100网 联系邮箱:qqtxt@163.com
版权所有:精通2100网
湘ICP备2023018646号-1
MYSQl共执行 4 个查询,用时 0.0024473667144775 秒,PHP脚本用时 0.005822 秒,占用内存 0.816 MB,Gzip 已启用