我目前正在切换到 Virt-Manager (QEMU/KVM) 并放弃 VirtualBox(因为它很慢),但我发现 Virt-Manager 很难配置。在 VBox 和 VMware 中,您所要做的就是安装客户机附加组件,然后一切都会正常工作,包括显示、文件夹共享等。
我希望有一个 Windows 客户机(7 或 10),至少有一个可用的网络、显示驱动程序和文件夹共享。设置文件系统直通似乎在 Windows 客户机中不起作用(我也厌倦了尝试桑巴上班)。
创建具有工作显示和共享功能的 Windows 客户机的正确方法是什么?也许我错过了一些依赖项或 Virt-Manager 特定设置?
我遵循的“如何做”指南:
我尝试了nautilus-share
,以及手动/etc/samba/smb.conf
配置,并尝试使用 在客户操作系统中挂载文件夹\\IP.ADDRESS\SHARED_FOLDER
,但没有任何效果。
编辑
遗憾的是,Windows 客户机不支持 3D 加速...我想我现在还是坚持使用 VirtualBox/VMware 吧...
供将来参考,以下是我在基于 Ubuntu 的 18.04 LTS(具体来说,Pop! OS 18.04)上完全正常工作的网络、显示和文件夹共享 QEMU/KVM 设置。最初,我使用安装了 KVM 的 Android 模拟器进行开发。因此,我决定从 VBox 和 VMware 切换到 Virt-Manager 进行操作系统测试,主要用于我在 Windows 中使用的软件,因为它也针对基于内核的虚拟机并且速度更快。
设置
1.安装并验证虚拟机:
$ sudo apt install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
$ kvm-ok
需要重新启动才能正常工作。
2.安装 Red Hat虚拟机管理器:
$ sudo apt install virt-manager
3.创建 Windows 虚拟机:
我使用动态分配的 QCOW2 存储格式:
$ sudo qemu-img create -f qcow2 /var/lib/libvirt/images/test-vm.qcow2 30G
使用 VirtIO 类型的存储和网络(需要VirtIO 驱动程序):
包含 VirtIO 驱动程序映像文件:
4.Windows 客户机安装:
加载 VirtIO 存储和网络驱动程序(并继续标准安装):
对于网络驱动程序,在安装过程中加载时,您可能看不到任何列出的驱动程序。当我在网络接口中使用 NAT 而不是在桥接模式下使用时,就会发生这种情况。如果是这种情况,那么您可以稍后手动更新驱动程序。
5.安装和配置桑巴对于通过网络共享的基本公共文件夹:
在主机操作系统上安装 Samba:
$ sudo apt install samba
添加基本的公共文件夹配置:
$ sudo nano /etc/samba/smb.conf
添加以下几行:
[Public]
comment = Public shared folder
path = /path/to/public/folder
read only = yes
guest ok = true
acl allow execute always = true
重新启动 Samba 服务(或执行完整的reboot
):
$ testparm
$ sudo service smbd restart
然后,您可以使用以下命令映射 Windows 客户机中的文件夹\\<host-ip-address>\Public
:
6.下载SPICE 访客工具用于显示器和其他 VirtIO 驱动程序等。
然后,您可以使用公共共享文件夹将其安装到 Windows 客户操作系统。
答案1
将所有必需的驱动程序安装到 Windows 客户机的最简单方法是使用SPICE Guest Tools Windows 安装程序. 下载中spice-guest-tools-最新版.exe应该始终为您提供最新版本。
该软件包包括 Windows QXL/WDDM 显示驱动程序以及 KVM 提供的虚拟硬件的所有 virtio 驱动程序,并一次性安装它们。
请注意,KVM 不向 Windows 客户机提供文件共享。您仍需要自行设置 Samba。
答案2
也许对于未来的读者来说,关于文件共享部分,你也可以反过来看。在 Windows VM 上创建共享,然后将该共享挂载到 Linux 主机上。
我正在使用桥接网络连接,不确定它是否适用于 NAT。
这更容易设置(无需在主机上设置 samba 服务器),但需要在 VM 启动后挂载文件夹。适合偶尔使用,不适合日常使用。
在 Linux 主机上安装共享(到 windows_vm 文件夹)看起来像这样:sudo mount -t cifs //WINDOWS_HOSTNAME/SHARE_NAME windows_vm -o user=windowsUserName,pass=windowsPassword,uid=1000,gid=1000
需要 uid 和 gid,以便文件属于本地用户而不是 root。