kvm guest与host共享文件

Kvm、VMware、Virtualbox、Xen、Qemu 等
头像
驿窗project
帖子: 225
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

kvm guest与host共享文件

#1

帖子 驿窗project » 2021-04-14 16:52

host是buster,guest有linux和windows;

能不能实现host与guest之间用鼠标拖拽的方式来交换文件,或者用copy / paste的方式实现host与guest之间交换文件?

我的主机是debian buster 10.9,虚拟软件用 virt-manager+libvirt+qemu
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: kvm guest与host共享文件

#2

帖子 astolia » 2021-04-15 10:06

这两种实现都需要host软件与guest上驱动+软件的配合,既然你选择了kvm方案就别想那么多了。老老实实走samba或共享文件夹的路子
https://askubuntu.com/a/885684
https://www.spice-space.org/spice-user- ... er_sharing
头像
驿窗project
帖子: 225
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: kvm guest与host共享文件

#3

帖子 驿窗project » 2021-04-15 18:56

明白了,我先试试共享文件夹~
头像
Ping-Wu
帖子: 1822
注册时间: 2012-11-14 9:34
系统: Debian 12

Re: kvm guest与host共享文件

#4

帖子 Ping-Wu » 2021-04-16 6:28

如果只是简单的 copy-and-paste(sharing clipboard),(1)在 "channel spice" 里加一个 “com.redhat.spice.0” target(如附图):
kvm.jpg
然后(2)在KVM虚拟机里装设 spice-vdagent 套件,即可。

在我的系统里(Debian 11),把3D加速打开后,上面第一个步骤就自动执行了。基本上什么事都不用做。

至于共享文件,我们必须重写 /etc/samba/smb.conf 才能实现。我们对 samba server 的经验跟认知都非常有限,需求也很少。我们的做法就不提出了,以免误导方向。
头像
驿窗project
帖子: 225
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: kvm guest与host共享文件

#5

帖子 驿窗project » 2021-04-16 19:51

这个方案是不是只能针对文本,无法做到文件的共享?
头像
Ping-Wu
帖子: 1822
注册时间: 2012-11-14 9:34
系统: Debian 12

Re: kvm guest与host共享文件

#6

帖子 Ping-Wu » 2021-04-17 9:21

(posting deleted by author)
上次由 Ping-Wu 在 2021-04-19 12:21,总共编辑 1 次。
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: kvm guest与host共享文件

#7

帖子 astolia » 2021-04-19 10:19

Ping-Wu 写了: 2021-04-17 9:21 要做到文件的共享,必须启动 samba。
必须?不需要网络的就有以前的virtio-9p http://www.linux-kvm.org/page/9p_virtio ,现在的virtio-fs https://www.tauceti.blog/post/qemu-kvm- ... th-virtio/ 。基于网络的非samba协议共享方式就更多了,就是一般而言要搭建服务端麻烦点。
头像
Ping-Wu
帖子: 1822
注册时间: 2012-11-14 9:34
系统: Debian 12

Re: kvm guest与host共享文件

#8

帖子 Ping-Wu » 2021-04-19 11:58

astolia 写了: 2021-04-19 10:19
Ping-Wu 写了: 2021-04-17 9:21 要做到文件的共享,必须启动 samba。
必须?不需要网络的就有以前的virtio-9p http://www.linux-kvm.org/page/9p_virtio ,现在的virtio-fs https://www.tauceti.blog/post/qemu-kvm- ... th-virtio/ 。基于网络的非samba协议共享方式就更多了,就是一般而言要搭建服务端麻烦点。
没错。可以启动 KVM的 Add Hardware (Filesystem)功能把主机的共享档案夹转成一个KVM档案系统,然后在虚拟机里把这个档案系统挂起来(例如 sudo mount -t 9p -o trans=virtio.version=9p2000,L,rw [KVM 档案系统] [KVM 虚拟机加挂点] )就可以了。不过把这个加挂步骤写在 fstab 里,虚拟机不好搬动。

下面是针对KVM文件共享建立的一个 smb.conf 档案,供参考:

[global]
workgroup = WORKGROUP
server string = Kvm-Data Server
netbios name = Debian_11
security = user
map to guest = bad user
dns proxy = no

#### SHARES ####

[kvm-data]
path = /extra/kvm-data
browsable = yes
writable = yes
guest ok = yes
read only = no
valid users = @kvm-data
头像
驿窗project
帖子: 225
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: kvm guest与host共享文件

#9

帖子 驿窗project » 2021-04-19 15:59

astolia 写了: 2021-04-19 10:19
Ping-Wu 写了: 2021-04-17 9:21 要做到文件的共享,必须启动 samba。
必须?不需要网络的就有以前的virtio-9p http://www.linux-kvm.org/page/9p_virtio ,现在的virtio-fs https://www.tauceti.blog/post/qemu-kvm- ... th-virtio/ 。基于网络的非samba协议共享方式就更多了,就是一般而言要搭建服务端麻烦点。
这两个都要求guest必须是linux,不能是windows;
如果guest是windows,感觉你前面的“共享文件夹”方式可能比较方便一些~
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: kvm guest与host共享文件

#10

帖子 astolia » 2021-04-20 9:53

驿窗project 写了: 2021-04-19 15:59 这两个都要求guest必须是linux,不能是windows;
如果guest是windows,感觉你前面的“共享文件夹”方式可能比较方便一些~
我上面给的链接是参考资料,不是官方文档。别看着那上面写这guest必须是linux就当真了。这东西的基本原理就是创建一个虚拟设备,在guest里能不能用要看有没有驱动。win下面的驱动存在很久了 https://github.com/virtio-win/kvm-guest-drivers-windows,在win10上目前还有些问题就是了
头像
Ping-Wu
帖子: 1822
注册时间: 2012-11-14 9:34
系统: Debian 12

Re: kvm guest与host共享文件

#11

帖子 Ping-Wu » 2021-04-23 5:40

用 samba 来让 kvm Windows guest与 host 共享文件其实很简单,如附图(主机为 DEBIAN_11):
Screenshot from 2021-04-22 11-32-41.jpg
头像
驿窗project
帖子: 225
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: kvm guest与host共享文件

#12

帖子 驿窗project » 2021-05-27 11:15

astolia 写了: 2021-04-20 9:53 我上面给的链接是参考资料,不是官方文档。别看着那上面写这guest必须是linux就当真了。这东西的基本原理就是创建一个虚拟设备,在guest里能不能用要看有没有驱动。win下面的驱动存在很久了 https://github.com/virtio-win/kvm-guest-drivers-windows,在win10上目前还有些问题就是了
我尝试了一下,这个链接的驱动通常是指网卡驱动,或者磁盘/显卡驱动,好像并不包括文件共享虚拟设备。

另外,我按这个链接试了一下:
https://www.spice-space.org/spice-user- ... er_sharing
不过不行,在win guest中启动spice webdav proxy服务时会报1067的错误,暂时还没找到解决方案~

另外,如果在win guest中安装这个:
https://www.spice-space.org/download/wi ... est-tools/
可以实现鼠标拖拽来共享host和guest的文件,但只能单向,即只能从host向guest拷贝,反向无效。是设置问题还是根本不支持还不太清楚~
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: kvm guest与host共享文件

#13

帖子 astolia » 2021-05-27 13:50

驿窗project 写了: 2021-05-27 11:15 我尝试了一下,这个链接的驱动通常是指网卡驱动,或者磁盘/显卡驱动,好像并不包括文件共享虚拟设备。
说明你没有去看wiki https://github.com/virtio-win/kvm-guest ... ile-system
头像
驿窗project
帖子: 225
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: kvm guest与host共享文件

#14

帖子 驿窗project » 2021-06-01 13:20

我安装了一下winfsp,结果是运行winfsp-tests-x64提示没有命令存在;不知道是不是因为没有安装visual studio 2015的原因。我看了一下winfsp/bin目录,里面确实没有winfsp-tests这样的命令。

文档提示winfsp需要visual studio 2015,这东西大概3.5GB左右,超出了我的预期,太大了;这样的体积对我来说,也许选择samba更适合~

另外,我还有一个感觉,就是这个方案可能更适合使用cli的用户,不适合我这样使用gui的用户~
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: kvm guest与host共享文件

#15

帖子 astolia » 2021-06-02 10:13

驿窗project 写了: 2021-06-01 13:20 我安装了一下winfsp,结果是运行winfsp-tests-x64提示没有命令存在;不知道是不是因为没有安装visual studio 2015的原因。我看了一下winfsp/bin目录,里面确实没有winfsp-tests这样的命令。

文档提示winfsp需要visual studio 2015,这东西大概3.5GB左右,超出了我的预期,太大了;这样的体积对我来说,也许选择samba更适合~

另外,我还有一个感觉,就是这个方案可能更适合使用cli的用户,不适合我这样使用gui的用户~
看了你的话我冒出了一个疑问:你是从哪里下载的winfsp?从我上面给你的链接再到WinFsp的页面,winfsp-tests就和winfsp一起在releases里摆得好好的,没看到?再说了,页面上也写得很清楚,winfsp-tests-x64是作为测试功能运作是否正常之用,正常用virtio-fs根本不需要它。你看着它的一堆命令行参数就被吓跑了?
回复