1.首先从虚拟机的xml文件中找到已经使用virtio驱动的硬件,复制里面的address这行参数出来
<address <span class="hljs-built_in">type</span>=<span class="hljs-string">'pci'</span> domain=<span class="hljs-string">'0x0000'</span> bus=<span class="hljs-string">'0x00'</span> slot=<span class="hljs-string">'0x07'</span> <span class="hljs-keyword">function</span>=<span class="hljs-string">'0x0'</span>/>
说明:这里面的slot参数是需要修改的,不能重复
因此硬盘slot使用0x08
,网卡使用0x09
2.找到硬盘的配置内容所在
<span class="hljs-tag"><<span class="hljs-title">disk</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'file'</span> <span class="hljs-attribute">device</span>=<span class="hljs-value">'disk'</span>></span>
<span class="hljs-tag"><<span class="hljs-title">driver</span> <span class="hljs-attribute">name</span>=<span class="hljs-value">'qemu'</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'qcow2'</span>/></span>
<span class="hljs-tag"><<span class="hljs-title">source</span> <span class="hljs-attribute">file</span>=<span class="hljs-value">'/home/kvm/generic.qcow2'</span>/></span>
<span class="hljs-tag"><<span class="hljs-title">target</span> <span class="hljs-attribute">dev</span>=<span class="hljs-value">'hda'</span> <span class="hljs-attribute">bus</span>=<span class="hljs-value">'ide'</span>/></span> # 换成virtio
<span class="hljs-tag"><<span class="hljs-title">address</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'drive'</span> <span class="hljs-attribute">controller</span>=<span class="hljs-value">'0'</span> <span class="hljs-attribute">bus</span>=<span class="hljs-value">'0'</span> <span class="hljs-attribute">target</span>=<span class="hljs-value">'0'</span> <span class="hljs-attribute">unit</span>=<span class="hljs-value">'0'</span>/></span> # 这行换成这个:<span class="hljs-tag"><<span class="hljs-title">address</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'pci'</span> <span class="hljs-attribute">domain</span>=<span class="hljs-value">'0x0000'</span> <span class="hljs-attribute">bus</span>=<span class="hljs-value">'0x00'</span> <span class="hljs-attribute">slot</span>=<span class="hljs-value">'0x08'</span> <span class="hljs-attribute">function</span>=<span class="hljs-value">'0x0'</span>/></span>
<span class="hljs-tag"></<span class="hljs-title">disk</span>></span>
3.找到网卡的配置内容所在
没有切换使用桥接网络的配置,默认的NAT配置
<span class="hljs-tag"><<span class="hljs-title">interface</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'network'</span>></span>
<span class="hljs-tag"><<span class="hljs-title">mac</span> <span class="hljs-attribute">address</span>=<span class="hljs-value">'52:54:00:30:06:32'</span>/></span>
<span class="hljs-tag"><<span class="hljs-title">source</span> <span class="hljs-attribute">network</span>=<span class="hljs-value">'default'</span>/></span>
<span class="hljs-tag"><<span class="hljs-title">model</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'rtl8139'</span>/></span> # 需要修改这个rtl8139为virtio
<span class="hljs-tag"><<span class="hljs-title">address</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'pci'</span> <span class="hljs-attribute">domain</span>=<span class="hljs-value">'0x0000'</span> <span class="hljs-attribute">bus</span>=<span class="hljs-value">'0x00'</span> <span class="hljs-attribute">slot</span>=<span class="hljs-value">'0x03'</span> <span class="hljs-attribute">function</span>=<span class="hljs-value">'0x0'</span>/></span> # 这行修改成 <span class="hljs-tag"><<span class="hljs-title">address</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'pci'</span> <span class="hljs-attribute">domain</span>=<span class="hljs-value">'0x0000'</span> <span class="hljs-attribute">bus</span>=<span class="hljs-value">'0x00'</span> <span class="hljs-attribute">slot</span>=<span class="hljs-value">'0x09'</span> <span class="hljs-attribute">function</span>=<span class="hljs-value">'0x0'</span>/></span>
<span class="hljs-tag"></<span class="hljs-title">interface</span>></span>
切换使用桥接网络的配置
<span class="hljs-tag"><<span class="hljs-title">interface</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'bridge'</span>></span>
<span class="hljs-tag"><<span class="hljs-title">mac</span> <span class="hljs-attribute">address</span>=<span class="hljs-value">'52:54:00:30:06:32'</span>/></span>
<span class="hljs-tag"><<span class="hljs-title">source</span> <span class="hljs-attribute">network</span>=<span class="hljs-value">'br0'</span>/></span>
<span class="hljs-tag"><<span class="hljs-title">model</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'rtl8139'</span>/></span>
<span class="hljs-tag"><<span class="hljs-title">address</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">'pci'</span> <span class="hljs-attribute">domain</span>=<span class="hljs-value">'0x0000'</span> <span class="hljs-attribute">bus</span>=<span class="hljs-value">'0x00'</span> <span class="hljs-attribute">slot</span>=<span class="hljs-value">'0x03'</span> <span class="hljs-attribute">function</span>=<span class="hljs-value">'0x0'</span>/></span>
<span class="hljs-tag"></<span class="hljs-title">interface</span>></span>
切换使用virtio驱动的配置
<interface <span class="hljs-built_in">type</span>=<span class="hljs-string">'bridge'</span>>
<mac address=<span class="hljs-string">'52:54:00:30:06:32'</span>/>
<<span class="hljs-built_in">source</span> bridge=<span class="hljs-string">'br0'</span>/>
<model <span class="hljs-built_in">type</span>=<span class="hljs-string">'virtio'</span>/> <span class="hljs-comment"># 修改后的效果</span>
<address <span class="hljs-built_in">type</span>=<span class="hljs-string">'pci'</span> domain=<span class="hljs-string">'0x0000'</span> bus=<span class="hljs-string">'0x00'</span> slot=<span class="hljs-string">'0x09'</span> <span class="hljs-keyword">function</span>=<span class="hljs-string">'0x0'</span>/> <span class="hljs-comment"># 修改后的效果</span>
</interface>
创建临时的virtio驱动的磁盘文件 qemu-img create -f qcow2 /opt/kvm-img/re-fastdfs.img 1G
attach-disk win10 /data2/virtio-win-0.1.221.iso hda –type cdrom –mode readonly
默认情况下,创建的vm的视频RAM限制为 16MB
。在win操作系统中分辨率最高就只能调到 1024x768
。
type
=
'cirrus' vram
=
'16384' heads
=
'1' primary
=
'yes'
/>
type
=
'pci' domain
=
'0x0000' bus
=
'0x00' slot
=
'0x02' function
=
'0x0'
/>
单单修改ram大小并不管用,在vm中最高分辨率还是1024。

也就是说可能还需要其他的设置。
增加必要的视频RAM
默认的具有 16MB
的视频RAM,4k分辨率(3840 x 2160)来计算。
3840 x 2160 = 8294400 # 总共像素点 8294400 x 32 = 265420800 # 每个像素点占 4 个字节 265420800 / 8 = 33177600 # 转为 Byte 单位 33177600 /( 1024 * 1024 )= 31.640625 MB
所以32 MB视频RAM足以达到4k分辨率,考虑到一些开销,我们将视频RAM增加到64 MB。
视频类型设置为 qxl
,如下更新配置文件中的设置:
type
=
'qxl' ram
=
'65536' vram
=
'65536' vgamem
=
'65536' heads
=
'1' primary
=
'yes'
/>
type
=
'pci' domain
=
'0x0000' bus
=
'0x00' slot
=
'0x02' function
=
'0x0'
/>
重新启动vm就能看到支持的分辨率了。
