ana*_*nik 8 virtualization qemu shared-folders
谁能解释一下 libvirt/QEMU 配置中的共享模式——默认、映射、passthrough、压缩——意味着什么?
我有这个共享passthrough
模式。我看到在 VM 内部它归vagrant:vagrant
用户所有(主机不存在)并且共享设置了 rw 位。但是尝试在那里创建文件会access denied
出错。
我需要了解解决问题的方法。
小智 6
共享模式定义了虚拟化 (p9fs) 文件系统如何呈现给来宾机器。权限映射具有重要意义。要理解这一点,重要的是要记住虚拟化文件系统需要管理文件的权限,并且它们在主机中可能与在来宾中不同。
我发现的关于模式的最好的文档来自libvirt 文档:
文件系统块有一个可选属性accessmode
,用于指定访问源的安全模式(自 0.8.5 起)。目前这只适用type='mount'
于 QEMU/KVM 驱动程序。可能的值为:
passthrough
使用source
访客内部用户的权限访问。accessmode
如果未指定,则这是默认值。更多信息。请注意,权限/所有权的更改将影响使用该文件系统的所有来宾。这种模式通常很快。mapped
使用管理程序(QEMU 进程)的权限访问源。更多信息。这意味着您需要确保 QEMU 进程可以访问管理程序上的文件(libvirt-qemu
我的设置中的用户名)。优点是文件属性和权限为来宾“映射”,以便它们在其他地方独立更改(只要文件保持可访问)。如果您的主机系统支持 ACL,此模式也将允许来宾中适当的 ACL 支持。这种模式通常比直通慢一点。squash
与“passthrough”类似,例外是像“chown”这样的特权操作的失败被忽略。这使得类似 passthrough 的模式可供以非 root 身份运行虚拟机管理程序的人使用。更多信息 我曾经有一个非常相似的问题,提供对共享文件夹的读写访问。可以读取文件,但不允许我将文件写入共享源路径文件夹。
Unix & Linux - KVM / QEMU / Virt-Manager:如何将文件存储在挂载的共享文件夹中
根本原因是来宾系统以libvirt-qemu
用户身份运行。要从已安装的共享文件夹中正在运行的来宾系统中创建文件,您应该执行以下步骤:
在Virt-Manager
-> Add Hardware
->Filesystem
选择Mapped
作为Mode
VM 的设置。
更改共享文件夹的权限: 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 文档 9psetup
Mode
指定访问源的安全模式。Mapped
指定使用管理程序的权限设置访问源。Passthrough
指定使用从虚拟客户机内部设置的用户权限设置访问源。这是默认模式。Squash
与 类似Passthrough
,不同之处在于chown
忽略特权操作的失败,这使得一种Passthrough
模式可用于运行没有提升特权的管理程序的用户。
归档时间: |
|
查看次数: |
9312 次 |
最近记录: |