我正在运行 Deepin 15.3 x64,并且我有一个带有 EXT4 文件系统的外部硬盘。我在哪里存储诸如虚拟机映像之类的东西。 Oracle VM VirtualBox 和 VMware Workstation Player 在此配置下工作得很好,但 KVM 无法从中读取文件。我尝试在整个驱动器上 chown 文件、容器目录甚至 chmod -R 0777 。但KVM仍然抱怨无法访问该目录。不过,KVM 可以在那里创建映像,但映像文件创建后 KVM 将无法访问该文件。这里这是一个视频(如果有不清楚的地方)。请注意,我无法将图像移动到 /var/lib/libvirt/images,因为我的 SSD 上没有足够的空间来容纳它们。
答案1
解决方案:以 root 身份运行 Virtmanager,选择创建新虚拟机 -> 选择“导入现有磁盘映像”并浏览它。单击“继续”后,它将询问您是否希望修复该路径的权限问题。选择“是”后,它修复了权限问题,并且在以普通用户身份运行时也可以工作。
答案2
这是因为 Qemu 需要图像文件路径的执行权限。如果镜像在挂载的磁盘中,则需要 /media/$username 中的 +x 权限
对于我来说,我通过以下命令解决了这个问题:
sudo chmod a+x /media/houcheng/
其余详细信息请参见这。
答案3
qemu
这是访问存储虚拟机的文件夹的权限问题。
我遇到了一个如下所示的问题,我通过授予qemu
文件夹访问权限来解决它(/home/mos
在我的情况下):
$ sudo setfacl -m u:qemu:x /home/mos
答案4
对于所有正在使用的人SELinux请注意图像文件夹的正确上下文。
上下文应该是system_u:object_r:svirt_image_t
要将文件或文件夹更改为此上下文,只需使用:
chcon -t svirt_image_t -u system_u /newimages
您可以用于-R
递归和-L
以下符号链接,或两者兼而有之。
如果您只是使用链接,请注意链接和真实文件需要位于此上下文中。
注意:要检查上下文,请使用例如 `ls -lZd /newimages