Hi,

My problem is as follows:

Trying to run virt-install against an image stored on a separately mounted disk 
results in "could not open disk image /var/lib/libvirt/images/autowin32.qcow2: 
Permission denied"

My mount point for /dev/sdb is /var/lib/libvirt/images.  I mount with with the 
_exact_ same context that the directory has prior to mounting.  (Also, don't 
panic about the -t ocfs2; it's a a local ocfs2, so there's no clustering or 
network at play here. AFIAK it can be treated like ext4)

Pre-mount:

  drwxr-xr-x. root root unconfined_u:object_r:virt_image_t:s0 images

Mount command:

  mount /dev/sdb /var/lib/libvirt/images/ -t ocfs2 -o 
data=writeback,noatime,context="unconfined_u:object_r:virt_image_t:s0"

Post-mount:

  drwxr-xr-x. root root unconfined_u:object_r:virt_image_t:s0 images

Image files pre and post mount as well:

  Pre-mount (virt-install will work fine here):

    qemu-img create -f qcow2 -o preallocation=metadata 
/var/lib/libvirt/images/autowin32.qcow2 10000m
    -rw-r--r--. root root unconfined_u:object_r:virt_image_t:s0 autowin32.qcow2

  Post-mount:

    qemu-img create -f qcow2 -o preallocation=metadata 
/var/lib/libvirt/images/autowin32.qcow2 10000m
    -rw-r--r--. root root unconfined_u:object_r:virt_image_t:s0 autowin32.qcow2

>From the post-mount scenario, while trying to virt-install, I'll get:

  qemu-kvm: -drive 
file=/var/lib/libvirt/images/autowin32.qcow2,if=none,id=drive-ide0-0-0,format=qcow2,cache=none:
 could not open disk image /var/lib/libvirt/images/autowin32.qcow2: Permission 
denied

Setting SELinux to permissive will allow this, but you'll still see various 
avc-denies in the logs:

  type=AVC msg=audit(1395279890.238:1020): avc:  denied  { read } for  pid=4952 
comm="qemu-kvm" name="autowin32.qcow2" dev=sdb ino=563715 
scontext=system_u:system_r:svirt_t:s0:c195,c926 
tcontext=system_u:object_r:virt_image_t:s0 tclass=file
  type=AVC msg=audit(1395279890.238:1020): avc:  denied  { open } for  pid=4952 
comm="qemu-kvm" name="autowin32.qcow2" dev=sdb ino=563715 
scontext=system_u:system_r:svirt_t:s0:c195,c926 
tcontext=system_u:object_r:virt_image_t:s0 tclass=file

etc etc...

I've also tried manually adding labels with semanage and doing a restorecon on 
the proper paths after mounting the 2nd drive, but those yielded the same error.

Does anyone have experience with a similar situation?  Am I missing something 
when setting the context of the second drive?

Relevant version:

libvirt-0.10.2-29.el6_5.5.x86_64
qemu-kvm-0.12.1.2-2.415.el6_5.6.x86_64
selinux-policy-3.7.19-231.el6.noarch
selinux-policy-targeted-3.7.19-231.el6.noarch

Thanks!
Wes


Reply via email to