virt-install错误

时间:2011-06-10 14:42:46

标签: virtual-machine permission-denied kvm

我在其中一台Dell poweredge1000m刀片上设置了kvmlibvirt。我使用以下语法从现有映像安装虚拟机(以root身份执行)。

virt-install --name=vm_test --ram=1024 --arch=i686 --vcpus=1 --os-type=linux --import --disk path=/root/shared.qcow2,bus=virtio,format=qcow2 --graphics vnc,port=5901,listen=0.0.0.0,password=newone --noautoconsole --description --autostart

我收到以下错误。

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.

我使用了与其他桌面主机完全相同的命令,它在那里工作。我可以使用virt-manager的ISO映像从virt-manager安装VM,将磁盘映像存储在默认位置。

这对我来说似乎是一个文件权限错误,因为它不能与/vms目录一起使用,但正在使用其他/home/vm目录。

提前感谢您的帮助

6 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

如果您遵循使用libvirt创建vm的所有说明,您仍可能会遇到上面的错误消息。根本原因是 AppArmor ,它可以在最近的Ubuntu发行版中找到。如果安全性不是问题,最简单的方法是删除AppArmor。

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

Disable AppArmor

答案 2 :(得分:2)

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

尝试卸载模块并重新加载它们。这对我来说很有把握:

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.

答案 3 :(得分:1)

我在Arch上获得了此权限被拒绝错误。问题原来是访问控制列表。即使Unix权限显示组rwgetfacl也显示group::---。这为我解决了这个问题:

setfacl -m g::rw /dev/kvm

答案 4 :(得分:1)

我找到了问题的解决方案,就在这里。

真正的原因是/vms是一个NFS挂载,其配置(no_root_squash + rw)使得它需要通过root访问。

默认情况下,libvirt运行具有libvirt-qemu:kvm用户和组权限的虚拟机,即使您使用sudo权限运行它也会造成麻烦。所以我们需要设置qemu进程的用户&要在/etc/libvirt/qemu.conf

中生根

正如其他人所指出的那样,这个错误可能还有其他多种原因,而且libvirt会抛出这样的一般性错误让人感到遗憾。

最令人沮丧的解决方案是提供所有权限,禁用selinux并确保它运行。现在逐个撤销它在每一步都有效的权限测试,最终理解为什么要求你提供最终的权限集。

答案 5 :(得分:-1)

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

chown root:kvm /dev/kvm

,您无需重启。