Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I tried lsof|grep *.qcow2 and got no results back (why is that? I definitely have VMs running using that disk format).

I also considered grepping qcow2 on *.xml within the config directory, but this wouldn't tell me which were in use necessarily.

Is there an easy way to determine which disk images are in use and by which domains/VMs?

Also, since lsof doesn't seem to do what I want, what is the method you all use to determine which files are accessed by which process?

Running Cent 6.3 with libvirt/kvm/qemu virsh 0.10.2

EDIT: See my comment, it was grep that was failing me, not lsof.. What is going on that I need to enable Extended regex to match '*.qcow2' ?

share|improve this question
Apparently I needed to use egrep to find '*.qcow2' ?? Isn't that simply a glob/wildcard? Why do I need to have grep extended regex enabled to match that expression? Anyhow, it seems adding -E or using egrep found what I needed. – user160910 Apr 8 '13 at 15:20
* would indicate a pattern - without pattern matching you'd actually be looking for files with "*.qcow2" in the filename. As your grepping a file listing, surely just "grep .qcow2" would suffice. – USD Matt Apr 8 '13 at 15:30
I guess since * matches 0 or more of the characters preceding it, and I gave no characters before the * it was like I was trying to match nothing. However since it is zero or more, shouldn't the rest of the expression have matched the .qcow2 even though the * was extraneous? Apparently it works if I give a space before the * like ' *.qcow2'. – user160910 Apr 8 '13 at 15:49
For anyone interested you can also do virsh domblklist or as mentioned before lsof |grep qcow2 – user160910 Apr 8 '13 at 21:05

Since the file format and extension quite often differ (libvirt's defauls is .img usually - for both qcow2 and raw), and sometimes you're using LVs and not files, I'd start looking into the currently used storage directly:
ps -ef |grep qcow2|awk -F'-drive' '{ print $2 }'|cut -d',' -f1
This will only show the first disk, you can extend the script to show more

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.