Virtual machine virt安装错误

Virtual machine virt安装错误,virtual-machine,permission-denied,kvm,Virtual Machine,Permission Denied,Kvm,我在一个Dell poweredge1000m刀片上安装了kvm,libvirt。我使用以下语法从现有映像(以root用户身份执行)安装虚拟机 我得到以下错误 Starting install... ERROR internal error process exited while connecting to monitor: char device redirected to /dev/pts/1 open /dev/kvm: Permission denied failed to in

我在一个Dell poweredge1000m刀片上安装了kvm,
libvirt
。我使用以下语法从现有映像(以root用户身份执行)安装虚拟机

我得到以下错误

Starting install...
ERROR    internal error process exited while connecting to monitor: char device redirected to /dev/pts/1
open /dev/kvm: Permission denied
failed to initialize KVM: Operation not permitted

Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start vm_test
otherwise, please restart your installation.
我对其他一台桌面主机使用了完全相同的命令,它在那里工作。我可以使用ISO映像从
virt manager
安装VM,并将磁盘映像存储在默认位置

对我来说,这似乎是一个文件权限错误,因为它不使用
/vms
目录,而是使用其他
/home/vm
目录


提前感谢您的帮助

我在一台服务器上收到了相同的错误消息,该服务器已运行了数周。 将
libvirt
设置为以root用户身份运行(如链接中所述)对我不起作用。 然而,授予对
/var/lib/libvirt/images
的读取和执行权限解决了我的问题

chmod go+rx /var/lib/libvirt/images
chmod o-rwx /var/lib/libvirt/images/*

如果您按照使用libvirt创建vm的所有说明进行操作,您可能仍然会遇到上面的错误消息。根本原因是AppArmor,它可以在最近的Ubuntu发行版中找到。如果不考虑安全性,最简单的方法是移除AppArmor

Ubuntu的官方文档提供了许多关于禁用AppArmor的建议:


我遇到了同样的问题。经过调查,我发现这是一个许可问题。您可以运行下面的命令来处理它:

chown root:kvm /dev/kvm

您不需要重新启动。

我在Arch上遇到了此权限被拒绝错误。问题原来是访问控制列表。尽管Unix权限显示了group
rw
getfacl
显示了
group::--
。这为我解决了这个问题:

setfacl -m g::rw /dev/kvm

我已经找到了解决我问题的办法,就在这里

真正的原因是,
/vms
是一个NFS挂载,其配置(
no_root\u squash+rw
)要求通过root进行访问

默认情况下,libvirt运行的虚拟机的用户和组权限为
libvirt qemu:kvm
,即使您使用sudo权限运行它,也会产生问题。因此,我们需要将qemu进程的用户和组设置为根目录/etc/libvirt/qemu.conf

也正如其他人所指出的,这个错误可能有多个其他原因,令人遗憾的是libvirt抛出了这样一个通用错误


最不令人沮丧的解决方案是授予所有权限、禁用selinux并确保其运行。现在,逐个撤销权限测试,测试它在每个步骤中是否有效,并最终了解为什么要求您提供最终的权限集。

如果模块加载得太早,可能会发生这种情况™ (实际问题我不知道,所以如果你知道,请加强这个答案)

只需尝试卸载模块并再次加载它们。这对我来说是个好办法:

rmmod kvm_intel # use kvm-amd if you use an amd processor.
rmmod kvm
modprobe kvm
modprobe kvm_intel # use kvm-amd if you use an amd processor.

我解决了这个问题。这里给出:
rmmod kvm_intel # use kvm-amd if you use an amd processor.
rmmod kvm
modprobe kvm
modprobe kvm_intel # use kvm-amd if you use an amd processor.