天天看点

解决KVM无法在NTFS分区上建立虚拟机,报错:Process exited while connecting to monitor: Permission Denied问题背景:问题描述原因分析:解决方案:

问题背景:

笔者不小心弄坏了自己笔记本的Ubuntu,由于没有重要数据,便想着直接重装,顺便体验一下最新的Fedora 36。安装完后打算利用KVM创建一个Windows虚拟机用于测试。结果按照以往在Ubuntu上的KVM使用经验始终创建失败。

问题描述

我习惯把虚拟机存放在机械硬盘上的大容量NTFS分区上。在初始配置好虚拟机后,点击“开始安装”准备进入虚拟机系统的安装过程时,始终无法开启虚拟机,并弹出以下错误:Process exited while connecting to monitor: Permission Denied.(如图所示)

解决KVM无法在NTFS分区上建立虚拟机,报错:Process exited while connecting to monitor: Permission Denied问题背景:问题描述原因分析:解决方案:

原因分析:

根据错误提示,可以判断问题出在KVM无法操作虚拟机的磁盘文件上,我首先想到的是机械硬盘在Fedora上的挂载有问题,尤其是NTFS分区很容易在Linux上出现权限问题。但排查后发现,该NTFS分区内的文件读写权限正常,一般用户都能在其中读取修改和执行文件,怎么轮到权限更高的KVM就没文件操作权限了呢?而且更匪夷所思的是,虚拟机管理器Libvirt可以在该分区中创建虚拟磁盘文件。这证明读写权限确实是有的,那为什么还会报“Permission Denied”这种错呢?似乎有一种无形的规则限制了KVM对NTFS上的虚拟磁盘文件进行某些操作。甚至到最后我装回Ubuntu再试,却发现没任何毛病。感觉这个故障好像就存在Fedora系的发行版上似的。

可能是Bug吧,我想。无奈之下,就一时放弃了。过了几天,在浏览关于Fedora的文章中发现提到了SELinux,这引起了我的注意。我突然想到,以往自己使用的Ubuntu默认是没有开启SELinux的,而作为安全性和稳定性都比较高的红帽Linux的亲兄弟Fedora,自然SELinux是默认开启状态。我们知道SELinux是一种访问控制体系,那KVM无法在NTFS分区中操作虚拟磁盘文件的毛病会不会和这个有关系?在我查阅大量资料后,终于得到了问题解决方案。果然是SELinux安全策略搞的鬼,限制了Libvirt在FUSE文件系统(本质上不是真正的文件系统,其中包含了NTFS文件系统在Linux上的挂载访问实现)上的文件操作权限。

解决方案:

打开终端,执行以下命令即可:

解决KVM无法在NTFS分区上建立虚拟机,报错:Process exited while connecting to monitor: Permission Denied问题背景:问题描述原因分析:解决方案:

无需重启,即时生效,问题得到解决。

提示:遇到类似问题,首先请根据自己的实际情况,确定虚拟磁盘文件所在的分区的读写执行权限确实没问题后,再尝试本解决方案。

上一篇: 中药泡脚
下一篇: DOM选择器