8

我已经在戴尔 poweredge1000m 刀片之一上进行了kvm设置。libvirt我正在使用以下语法从现有映像安装虚拟机(以 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 映像安装 VM ,virt-manager并将磁盘映像存储在默认位置。

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

提前感谢您的帮助

4

6 回答 6

5

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

chmod go+rx /var/lib/libvirt/images
chmod o-rwx /var/lib/libvirt/images/*
于 2011-11-28T06:35:21.150 回答
4

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

Ubuntu 的官方文档给出了很多关于禁用 AppArmor 的建议:

禁用 AppArmor

于 2011-12-21T10:25:48.343 回答
2

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

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

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

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

最不令人沮丧的解决方案是授予所有权限,禁用 selinux 并确保它运行。现在一一撤销它在每一步都起作用的权限测试,并最终了解为什么需要您提供最终的权限集。

于 2015-01-28T06:14:18.270 回答
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.
于 2015-08-14T09:49:17.340 回答
1

我在 Arch 上得到了这个权限被拒绝的错误。问题原来是访问控制列表。即使 Unix 权限显示 group rwgetfacl显示group::---. 这为我修复了它:

setfacl -m g::rw /dev/kvm
于 2014-05-08T12:03:05.877 回答
-1

I confronted with this same problem. And after look into it, I found it is a problem of permission. You can just run the command below to deal with it:

chown root:kvm /dev/kvm

and you don't need to reboot.

于 2014-03-20T07:19:03.403 回答