使用libvirt / qemu对直通(9p)文件系统进行读/写访问?


14

我最近开始尝试在KVM / QEMU / libvirt的最新版本中对直通文件系统的支持。使文件系统可用于读取访问已经“正常”,但是我对应该如何进行写入访问感到困惑。在客户机中挂载文件系统后:

# mount -t 9p -o trans=virtio /fs/data /mnt

如果有模式,我可以修改现有文件o+w

# cd /mnt/work
# ls -l foo
-rw-rw-rw-. 1 root root 17 Dec 20 11:16 foo
# cat foo
this is line one
# echo this is line two >> foo
# cat foo
this is line one
this is line two

但是无论目录权限如何,我都无法创建新文件或目录:

# ls -ld /mnt/work
drwxrwxrwx. 2 root root 4096 Dec 20 11:16 /mnt/work
# cd /mnt/work
# touch bar
touch: setting times of `bar': No such file or directory
# mkdir bar
# mkdir: cannot create directory `bar': Operation not permitted

我已经找到的文档(例如this)没有明确解决此问题。我希望Serverfault的某个人可以帮助我设置直通文件系统,该系统允许我向来宾中的用户授予对主机文件系统的写访问权限。


您确定您以可读/写方式安装了文件系统吗?您可以创建文件吗?您是以root用户还是普通用户创建文件(是的,我看到了#,但您可能是手动编写的)?
Janus Troelsen'2

您设法解决了吗?我有一个类似的问题,即无法写入来宾中已挂载的主机fs路径。
Shoan 2013年

我从来没有真正取得任何进展。对我来说,这是一个小众应用程序……我通常不会在需要访问本地文件系统的地方运行KVM guest虚拟机。我习惯在不时需要此功能的桌面上运行VirtualBox。
larsks 2013年

您在物理主机或客户机上是否看到任何selinux警报?
c4f4t0r

这可能有帮助吗?linux-kvm.org/page/9p_virtio
Danila Ladner

Answers:


5

在我看来,这就像是主机上的权限问题:

默认情况下,qemu / kvm进程以非特权用户身份启动(在Debian Wheezy中为libvirt-qemu)。因此,VM guest虚拟机只能访问(可写)该用户可访问(或可写)的文件。

您可以尝试将目录所有权设置为用户qemu的运行方式(请参见/etc/libvirt/qemu.conf中的user =和group =)

也许这对您有帮助?


1
在我的情况下,我已经尝试过了,与这个问题相同,但是即使关闭了Apparmor,我也无法使其正常工作。
对角线

0

在shell中启动qemu监视器时,应添加“ sudo”作为前缀。我这样做是为了解决创建文件或文件夹时的权限问题。我的环境是ubuntu16.04 + qemu-2.12。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.