QEMU下win10虚拟系统guest小贴士tips

TIps in using QEMU win10 guest.

Posted by Tee on October 31,2020

本文总结几点Tee个人在使用QEMU下win10 guest的小贴士,也作避坑参考。

图形工具

我使用virt manager和gnome boxes来运行维护。

安装前使用virt manager定义cpu、内存、磁盘格式、光驱等参数。再用gnome boxes运行。

virt manager and gnome boxes

既然virt manager能直接运行,为什么我要用gnome boxes?因为我用gnome,自带boxes,且boxes无菜单栏看起来guest系统画面较大,切除host系统的快捷键也跟virt manager一致。

但文章当前版本的gnome boxes在我使用上有一定问题,如关掉guest系统后,需要关闭boxes再打开才能开启guest系统。这有一点点麻烦。

按自己需求和喜好来选择。

硬盘文件格式

我使用过raw和qcow2两种格式,均跑在ssd上。这两个格式性能在我的普通使用中无差异(使用Windows专属应用,无跑满)。

qemu_disk-format

差异

raw占用空间固定,即新建时定义多大就实际占用多大;qcow2占用随着guest系统内实际使用而增大,类似vdi在VirtualBox。raw不能制作快照,qcow2可以。

以上是我的使用中的差异,我目前使用qcow2。有具体需求需按需求具体分析。

安装前

需要准备的iso:

  • Windows10 iso文件
  • virto Windows驱动iso文件

win10_virto_iso

安装前我会手动用qemu系列工具,在命令行create一个磁盘文件。再用virt manager定义guest系统硬件参数,注意磁盘载入刚刚新建的磁盘文件,格式选择virtio。光驱建立2个,分别加载win10 iso与virtio iso。

运行win10安装镜像时,你会发现你的磁盘并不存在,因为win10镜像没有virtio驱动,上述磁盘选择了virtio格式。在win10安装界面打开驱动镜像 -> 打开磁盘驱动目录中对应版本的win10驱动。你将会看到你的磁盘,接下来就是正常安装。

安装后tips

没有网络

打开virtio驱动iso,安装NETKVM驱动。

其他驱动

打开你的设备管理器,在感叹号的设备中手动更新驱动。驱动也是选择刚刚的virtio iso文件。

guest画面自适应大小 与 共享剪贴板

安装Windows版本的spice二进制文件,重启guest即可。

特色网络障碍

host上定义好http代以及端口,在guest中运行ipconfig,在直接使用ip和端口做win10代。

注意有些软件并不支持win10自带的网络代设定,edge等浏览器没问题,我们可以加速下载上述文件。

文件共享

有三种方式。一是使用外置硬盘设备,二是在guest中安装spice-webdav(不能大文件),三是在host建立smb服务并启动。

我的需求下很少小文件,都是稍大的文件,且spice-webdav用下来并不稳定。我选择了smb。

注意smb在host中的配置文件定义的方括号内容,就是网络映射的目录。如[share],win10中映射的地址就是\\10.0.2.2\share,host的ip也是在ipconfig中查看。

smb-share_win10

管理员权限启动的程序看不见smb

我的需求是:用管理员权限启动win10专属应用,来读取Linux生成的文件。

管理员权限启动的程序默认在win10(2004版)中看不见smb的目录。在网上搜寻后用此方法解决:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters新建字段AllowInsecureGuestAuth值为1

出处:https://superuser.com/questions/946999/windows-10-smb-shares

注意可能在以后的Windows版本会有不一样的解决方案与问题,在网上搜寻即可这类问题与方案非常多。

总结

  • 按需自建raw或qcow2磁盘文件
  • 使用virt manager定义硬件参数,选择virtio格式
  • 准备win10 iso 和 virtio驱动iso
  • 在win10安装界面手动选择virtio驱动让磁盘能被识别
  • 安装完成后检查网络和其他设备,并用virtio补完驱动
  • 安装spice让画面自适应 与 共享剪贴板
  • 使用host smb来共享文件目录

本作品采用知识共享署名 4.0 国际许可协议进行许可。