访问 NFS 池时 Virt-manager 权限被拒绝

访问 NFS 池时 Virt-manager 权限被拒绝

我目前遇到这个错误
在此输入图像描述

当我尝试在 NFS 共享上安装虚拟机时。我已将 NFS 共享(来自 FreeNAS)添加到 virt-manager 上的存储池中在此输入图像描述

另一个问题是我似乎也无法从另一个 NFS 共享读取我的 ISO 文件。希望你能解决这个问题。

我尝试过以下方法:

  • qemu.conf - 取消注释用户以强制使用 root 用户
  • mapall 用户在我的 freenas 共享中 root(所有用户都获得 root 权限)

答案1

最有可能的问题与 Freenas nfs 权限无关,而是与主机的 selinux(或 apparmor,如果您使用 Ubuntu)配置有关。

根据libvirt文档http://libvirt.org/drvqemu.html#securityselinux

SELinux 基本限制 QEMU 虚拟机的基本 SELinux 保护旨在保护主机操作系统免受虚拟机进程损坏。客人之间没有任何保护。

在基本模型中,所有 QEMU 虚拟机都在受限域 root:system_r:qemu_t 下运行。分配给 QEMU 虚拟机的任何磁盘映像都需要使用 system_u:object_r:virt_image_t 进行标记。在默认部署中,软件包供应商/发行商通常会确保目录 /var/lib/libvirt/images 具有此标签,以便在此目录中创建的任何磁盘映像将自动继承正确的标签。如果尝试在其他位置使用磁盘映像,用户/管理员必须确保该目录已被赋予此必要的标签。同样,物理块设备必须标记为 system_u:object_r:virt_image_t。

并非所有文件系统都允许对单个文件进行标记。特别是 NFS、VFat 和 NTFS 不支持标签。在这些情况下,管理员在安装文件系统时必须使用“context”选项将默认标签设置为 system_u:object_r:virt_image_t。对于 NFS,还有一个替代选项,即启用 virt_use_nfs SELinux 布尔值。

要检查是否存在正确的标签,请ls -Z在存储虚拟机映像的目录上执行操作。

要启用对虚拟机的 nfs 访问,您需要使用:

setsebool virt_use_nfs on

相关内容