1.首先从虚拟机的xml文件中找到已经使用virtio驱动的硬件,复制里面的address这行参数出来
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
说明:这里面的slot参数是需要修改的,不能重复
因此硬盘slot使用0x08
,网卡使用0x09
2.找到硬盘的配置内容所在
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/kvm/generic.qcow2'/>
<target dev='hda' bus='ide'/> # 换成virtio
<address type='drive' controller='0' bus='0' target='0' unit='0'/> # 这行换成这个:<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</disk>
3.找到网卡的配置内容所在
没有切换使用桥接网络的配置,默认的NAT配置
<interface type='network'>
<mac address='52:54:00:30:06:32'/>
<source network='default'/>
<model type='rtl8139'/> # 需要修改这个rtl8139为virtio
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> # 这行修改成 <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</interface>
切换使用桥接网络的配置
<interface type='bridge'>
<mac address='52:54:00:30:06:32'/>
<source network='br0'/>
<model type='rtl8139'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
切换使用virtio驱动的配置
<interface type='bridge'>
<mac address='52:54:00:30:06:32'/>
<source bridge='br0'/>
<model type='virtio'/> # 修改后的效果
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> # 修改后的效果
</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
。
<video> <model type='cirrus' vram='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video>
单单修改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
,如下更新配置文件中的设置:
<video> <model type='qxl' ram='65536' vram='65536' vgamem='65536' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video>
重新启动vm就能看到支持的分辨率了。