Description of problem: libvirt is not able to access disk image files on a NTFS filesystem. How reproducible: Make sure you have a disk image of any sort (imported from other Virtualization tools, generated by QEMU-KVM, .qcow .img or whatever) stored on a NTFS partition. Steps to Reproduce: 1.Store disk image on NTFS partition 2.Try to import disk and create new VM (I used virt-manager) Actual results: Failure at install commit. Following report is provided: ---------- Unable to complete install: 'internal error: process exited while connecting to monitor: 2020-05-13T09:55:33.621393Z qemu-system-x86_64: -drive file=/run/media/dave997/DATA/Dave997_2/VMs/Politecnico/HackXTest/HackXTest2_1.qcow2,format=qcow2,if=none,id=drive-virtio-disk0: Could not open '/run/media/dave997/DATA/Dave997_2/VMs/Politecnico/HackXTest/HackXTest2_1.qcow2': Permission denied' Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper callback(asyncjob, *args, **kwargs) File "/usr/share/virt-manager/virtManager/create.py", line 2122, in _do_async_install guest.installer_instance.start_install(guest, meter=meter) File "/usr/share/virt-manager/virtinst/installer.py", line 415, in start_install doboot, transient) File "/usr/share/virt-manager/virtinst/installer.py", line 358, in _create_guest domain = self.conn.createXML(install_xml or final_xml, 0) File "/usr/lib64/python3.7/site-packages/libvirt.py", line 3743, in createXML if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self) libvirt.libvirtError: internal error: process exited while connecting to monitor: 2020-05-13T09:55:33.621393Z qemu-system-x86_64: -drive file=/run/media/dave997/DATA/Dave997_2/VMs/Politecnico/HackXTest/HackXTest2_1.qcow2,format=qcow2,if=none,id=drive-virtio-disk0: Could not open '/run/media/dave997/DATA/Dave997_2/VMs/Politecnico/HackXTest/HackXTest2_1.qcow2': Permission denied -------- Expected results: Same image stored on a different filesystem (tried ext4) correctly works with QEMU-KVM and virt-manager. Import and creation of a new VM works as well. Additional info: I've noticed by performing some basic checks that each disk image file is set with a svirt_image_t flag in its SELinux context. This flag, however, defaults to fusefs_t if the file is moved to a NTFS filesystem and seems to be stuck to that. I've tried to manually change the ownership and security context with no luck. My knowledge of Linux access control falls too short for me to establish whether this is the key point here or not, but to me it seems tightly related. I know about FC30 approaching EOL but I'm pretty sure this thing regards newest release as well of both Fedora and libvirt, as googling around gave me no results (hence I understand this is kind of a niche problem).
Assuming your problem is caused by a SELinux denial, then you'll need "setsebool virt_use_fusefs=on". If discretionary access control rules are also getting in the way, you may also need to grant "qemu" user or group 'x' access to one or more of the parent directory paths
(In reply to Daniel Berrangé from comment #1) > Assuming your problem is caused by a SELinux denial, then you'll need > "setsebool virt_use_fusefs=on". > Ok so You're basically a saviour. Thanks to you I'm now able to use QEMU and finally get rid of Virtualbox. I'm feeling a bit guilty, tbh, for having a bugreport filed for what now seems a really dumb question. But maybe some other user will face this issue and will then find a solution here. In the meantime I promise I'm going to study SELinux so that I'll be able to understand the whole thing / solve similar problems on my own. Thank you for your help. Have a great day, David
No problem, I'll close this now.