感谢朋友支持本博客,欢迎共同探讨交流。
由于能力和时间有限,错误之处在所难免,欢迎指正!
原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明。如果转载,请保留作者信息。
博客地址:https://gscsnm.github.io
邮箱地址:gscsnm@gmail.com
由于近期使用libvirt,遇到了很多问题,记录一下。
目录(直达火箭):
Permission denied
权限问题我遇到几次,对kvm不是很熟悉,所以你懂得….
先描述我的情况:
第一种情况:
1 |
|
第二种情况:
1 |
|
具体分析
我的test1.xml里面定义了device:
1 |
|
定义了两个存储设备,一个disk,一个是cdrom。都是两个file,然后分别给了两个source,文件储存在/home/kkk/,kkk是我
登录的用户名。
目录下文件权限如下:
1 |
|
主要是因为virsh用libvirt调用qemu-kvm进行虚拟机的创建操作,首先要根据xml文件定义一个虚拟机,然后启动start虚拟机。在启动虚拟机的时候qemu是用qemu这个用户去找文件的,由于qemu这个用户不属于kkk组,所以对test2.img和xp_sp3_x86.iso所在文件夹kkk没有访问权限,所以提示Permission denied。
解决方案
更改文件所在目录的拥有人和组为qemu。
由于我之前将文件放到了kkk用户的目录里了,不能修改拥有人为qemu,所以对文件进行移动。
将这两个文件移动到/kvm-image ,目录名可以自定义。
然后更改此目录的用户和用户组为qemu.
命令如下:
1 |
|
可以看到,我将kvm-image这个目录的拥有人和组都换为了qemu,而里面的内容的拥有人和组保持没变。
结果
再次创建虚拟机:
1 |
|
可以看到demo1正常运行了。
uid:107, gid:107 permission denied
描述
今天自己编译了spice-protocol spice-gtk spice qemu,然后想用virsh去创建一个虚机:
1 | [root@kkk]# virsh undefine demo1 |
出现了uid107,gid107的错误。
解决方法:
Changing /etc/libvirt/qemu.conf make working things.
Uncomment user/group to work as root.
把qemu.conf里面user和group前面的#去掉。
1 | # The user for QEMU processes run by the system instance. It can be |
结果
成功了。^_^