谁能解释一下libvirt/QEMU配置中的共享模式--默认模式、映射模式、通行模式、压缩模式?
我在passthrough
模式下得到了这个份额。我看到,在VM内部,它是由vagrant:vagrant
用户拥有的(主机中没有),并且共享设置了rw位。但是试图在那里创建文件会导致access denied
错误。
我需要了解到底发生了什么来解决这个问题。
发布于 2016-05-15 15:50:59
我曾经遇到过一个非常类似的问题,就是提供对共享文件夹的读写访问。可以读取文件,但不允许将文件写入共享源路径文件夹。
Unix & Linux / QEMU /:如何将文件存储在已挂载的共享文件夹中
根本原因是来宾系统以libvirt-qemu
用户的身份运行。要从已挂载的共享文件夹中运行的来宾系统中创建文件,应该执行以下步骤:
在Virt-Manager
-> Add Hardware
-> Filesystem
中,选择Mapped
作为VM的Mode
设置。
更改共享文件夹的权限:sudo chmod -R 777 /<path-to-shared-folder>
将所有者更改为用户名:sudo chown -R user:user /<path-to-shared folder>
更改虚拟磁盘文件的权限:sudo chmod -R 777 /<path-to-virtual-disks>
将所有者更改为用户名:sudo chown -R user:user /<path-to-virtual-disks>
将您的用户名添加到libvirtd
组:sudo usermod -G libvirtd -a <your-user-name>
向libvirt-qemu
用户:sudo setfacl -R -m u:libvirt-qemu:rwx /*
授予完全权限
注意:*=指定要授予libvirt-qemu
权限的文件夹目录层次结构。
重启主机操作系统..。现在,您应该能够在来宾系统中创建文件。
有关9p virtio -> 与来宾共享主机文件 QEMU文档9的信息
Mode
指定访问源的安全模式。Mapped
指定使用管理程序的权限设置访问源。Passthrough
指定使用从虚拟机内部设置的用户权限设置访问源。这是默认模式。Squash
类似于Passthrough
,不同之处在于忽略了像chown
这样的特权操作的失败,这使得没有提升权限的运行管理程序的用户可以使用Passthrough
模式。
发布于 2019-01-10 15:44:22
共享模式定义了虚拟化(p9fs)文件系统是如何呈现给来宾机器的。权限映射有重要的含义。要理解这一点,重要的是要记住,虚拟化的文件系统需要管理文件的权限,并且它们在主机中可能与在来宾中的权限不一样。
我发现的关于模式的最好的文档来自于libvirt文档:
文件系统块有一个可选属性accessmode
,它指定访问源的安全模式(自0.8.5以来)。目前,这只适用于QEMU/KVM驱动程序的type='mount'
。可能的价值是:
passthrough
使用客户内部用户的权限访问source
。如果没有指定一个,这是默认的accessmode
。更多信息。请注意,对权限/所有权的更改将影响使用该文件系统的所有来宾。这种模式通常是相当快的。mapped
使用系统管理程序(QEMU )的权限访问源。更多信息。这意味着您需要确保系统管理程序上的文件可以被QEMU进程访问(在我的设置中使用用户名libvirt-qemu
)。其优点是文件属性和权限为来宾“映射”,以便它们在其他地方是独立的更改(只要文件保持可访问性)。如果您的主机系统支持ACL,则此模式还将允许在来宾中提供适当的ACL支持。这种模式通常比通过速度慢一些。squash
类似于“过路”,例外是忽略了像'chown‘这样的特权操作的失败。这使得以非根用户的身份运行虚拟机管理程序的人可以使用类似于传递的模式。更多信息https://askubuntu.com/questions/772784
复制相似问题