最近,我开始在KVM/QEMU/libvirt的最新版本中试验对pass身文件系统的支持。使文件系统可用于读取访问“刚刚起作用”,但我对写访问应该如何工作感到有点困惑。在将文件系统挂载到来宾之后:
# 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我找到的文档(例如,这)没有明确地解决这个问题。我希望这里的某个人能帮助我设置一个直通文件系统,允许我将写访问权限授予客户中的一个用户到主机文件系统。
发布于 2014-06-20 11:45:13
在我看来,这似乎是对主机的许可问题:
默认情况下,qemu/kvm进程是作为非特权用户启动的( Debian中的libvirt)。因此,只有该用户可访问(或可写)的文件才能被VM来宾访问(可写)。
您可以尝试将目录的所有权设置为用户qemu的运行方式(请参阅/etc/libvirt/qemu.conf中的user=和group= )
也许这对你的案子有帮助?
发布于 2019-01-25 09:50:50
在shell中启动qemu监视器时,应该添加"sudo“作为前缀。我这样做是为了解决创建文件或文件夹时的权限问题。我的环境是ubuntu16.04 + qemu-2.12。
https://serverfault.com/questions/342801
复制相似问题