From: Richard W.M. Jones <"Richard W.M. Jones "> Date: Tue, 10 Jun 2008 13:13:04 +0000 (+0100) Subject: Manpage for uname and dmesg X-Git-Url: http://git.annexia.org/?p=virt-mem.git;a=commitdiff_plain;h=e4a9a58795f30b85fd965e6584ca73d7b0a812f8 Manpage for uname and dmesg --- diff --git a/virt-mem.1 b/virt-mem.1 index 9f4bf59..6ae22bd 100644 --- a/virt-mem.1 +++ b/virt-mem.1 @@ -131,23 +131,23 @@ .IX Title "VIRT-MEM 1" .TH VIRT-MEM 1 "2008-06-10" "virt-mem-0.2.1" "Virtualization Support" .SH "NAME" -virt\-df \- 'df'\-like utility for virtualization stats +virt\-uname \- system information for virtual machines +.PP +virt\-dmesg \- print kernel messages for virtual machines .SH "SUMMARY" .IX Header "SUMMARY" -virt-df [\-options] +virt-uname [\-options] [domains...] +.PP +virt-dmesg [\-options] [domains...] .SH "DESCRIPTION" .IX Header "DESCRIPTION" -virt-df is a \fIdf\fR\|(1)\-like utility for showing the actual disk usage -of guests. Many command line options are the same as for ordinary -\&\fIdf\fR. +These virtualization tools allow you to inspect the status of +virtual machines running Linux. .PP -It uses libvirt so it is capable of showing stats across a variety of -different virtualization systems. -.SH "OPTIONS" -.IX Header "OPTIONS" -.IP "\fB\-a\fR, \fB\-\-all\fR" 4 -.IX Item "-a, --all" -Show all domains. The default is show only running (active) domains. +The tools all use libvirt so are capable of showing stats across a +variety of different virtualization systems. +.SH "COMMON OPTIONS" +.IX Header "COMMON OPTIONS" .IP "\fB\-c uri\fR, \fB\-\-connect uri\fR" 4 .IX Item "-c uri, --connect uri" Connect to libvirt \s-1URI\s0. The default is to connect to the default @@ -157,74 +157,103 @@ libvirt \s-1URI\s0, normally Xen. Print the results in \s-1CSV\s0 format, suitable for importing into a spreadsheet or database. .Sp -This option is only supported if virt-df was built with \s-1CSV\s0 support. +This option is only supported if virt-mem was built with \s-1CSV\s0 support. .IP "\fB\-\-debug\fR" 4 .IX Item "--debug" Emit debugging information on stderr. Please supply this if you report a bug. -.IP "\fB\-h\fR, \fB\-\-human\-readable\fR" 4 -.IX Item "-h, --human-readable" -Display human-readable sizes (eg. \*(L"10GiB\*(R" instead of large numbers). -.IP "\fB\-i\fR, \fB\-\-inodes\fR" 4 -.IX Item "-i, --inodes" -Display inode information. -.Sp -This option only works for Unix-like filesystems. .IP "\fB\-\-help\fR" 4 .IX Item "--help" Display usage summary. -.IP "\fB\-t diskimage\fR" 4 -.IX Item "-t diskimage" +.IP "\fB\-t memoryimage\fR" 4 +.IX Item "-t memoryimage" Test mode. Instead of checking libvirt for domain information, this -runs virt-df directly on the disk image (or device) supplied. You may +runs the virt-mem tool directly on the memory image supplied. You may specify the \fB\-t\fR option multiple times. .IP "\fB\-\-version\fR" 4 .IX Item "--version" Display version and exit. -.SH "EXAMPLE" -.IX Header "EXAMPLE" -.Vb 5 -\& # virt-df -\& Filesystem 1K-blocks Used Available Type -\& f9x32kvm:hda1 190740 24817 165923 Linux ext2/3 -\& f9x32kvm:VolGroup/LogVol00 6568348 3401656 3166692 Linux ext2/3 -\& f9x32kvm:VolGroup/LogVol01 1015808 Linux swap +.IP "\fB\-E auto|littleendian|bigendian\fR" 4 +.IX Item "-E auto|littleendian|bigendian" +.PD 0 +.IP "\fB\-T auto|i386|x86\-64|\f(BIaddress\fB\fR" 4 +.IX Item "-T auto|i386|x86-64|address" +.IP "\fB\-W auto|32|64\fR" 4 +.IX Item "-W auto|32|64" +.PD +These options force the endianness, text address, and word size for +the subsequent domains listed on the command line (or if no domains +are listed, then for all domains). +.Sp +These default to \fIauto\fR which tries to do automatic detection (using +libvirt, or details from the memory images themselves). You only need +to use these options if virt-mem tools get the automatic detection +wrong. +.Sp +Endianness (\fI\-E\fR) sets the memory endianness, for data, pointers and +so on. +.Sp +Text address (\fI\-T\fR) sets the base address of the kernel image. \fI\-T +i386\fR means to try some common addresses for i386\-based kernels. \fI\-T +x86\-64\fR means to try some common addresses for x86\-64\-based kernels. +\&\fI\-T \fIaddress\fI\fR sets the address specifically (\fI0x\fR prefix is +allowed to specify hex addresses). +.Sp +Word size (\fI\-W\fR) sets the word size, 32 or 64 bits. +.IP "\fB\-A auto|i386|x86\-64|...\fR" 4 +.IX Item "-A auto|i386|x86-64|..." +This option sets the architecture to one of a collection of known +architectures. It is equivalent to setting endianness and wordsize in +one go, but not text address. +.SH "EXAMPLES" +.IX Header "EXAMPLES" +.Vb 3 +\& # virt-uname +\& f9x32kvm: Linux localhost.localdomain 2.6.24-0.155.rc7.git6.fc9 #1 +\& SMP Tue Jan 15 17:52:31 EST 2008 i686 (none) +.Ve +.PP +.Vb 11 +\& # virt-dmesg f9x32kvm | tail +\& <6>Bluetooth: Core ver 2.11 +\& <6>NET: Registered protocol family 31 +\& <6>Bluetooth: HCI device and connection manager initialized +\& <6>Bluetooth: HCI socket layer initialized +\& <6>Bluetooth: L2CAP ver 2.9 +\& <6>Bluetooth: L2CAP socket layer initialized +\& <6>Bluetooth: RFCOMM socket layer initialized +\& <6>Bluetooth: RFCOMM TTY layer initialized +\& <6>Bluetooth: RFCOMM ver 1.8 +\& <7>eth0: no IPv6 routers present .Ve .SH "SHORTCOMINGS" .IX Header "SHORTCOMINGS" -virt-df spies on the guest's disk image to try to work out how much -disk space it is actually using. There are some shortcomings to this, -described here. +The virt-mem tools spy on the guest's memory image. There are some +shortcomings to this, described here. +.PP +(1) Only works on specific, tested releases of Linux kernels. Support +for arbitrary Linux kernel versions may be patchy because of changes +in the internal structures used. Support for non-Linux kernels is +currently non\-existent, and probably impossible for Windows because of +lack of an acceptable source license. .PP -(1) It only understands a limited set of partition types. Assuming -that the files and partitions that we get back from libvirt / Xen -correspond to block devices in the guests, we can go some way towards -manually parsing those partitions to find out what they contain. We -can read the \s-1MBR\s0, \s-1LVM\s0, superblocks and so on. However that's a lot of -parsing work, and currently there is no library which understands a -wide range of partition schemes and filesystem types (not even -libparted which doesn't support \s-1LVM\s0 yet). The Linux kernel does -support that, but there's not really any good way to access that work. +(2) Heuristics are used which may mean in the worst case that the +output is wrong. .PP -The current implementation uses a hand-coded parser which understands -some formats (\s-1MBR\s0, \s-1LVM2\s0, ext2/3, \s-1DOS\s0 \s-1FAT\s0, Windows \s-1NTFS\s0, Linux swap and -Linux suspend partitions). +(3) Structures which are frequently modified may cause errors. This +could be a problem if, for example, the process table in the guest is +being rapidly updated. .PP -(2) The statistics you get are delayed. The real state of, for -example, an ext2 filesystem is only stored in the memory of the -guest's kernel. The ext2 superblock contains some meta-information -about blocks used and free, but this superblock is not up to date. In -fact the guest kernel may not update it even on a 'sync', not until -the filesystem is unmounted. Some operations do appear to write the -superblock, for example \fIfsync\fR\|(2) [that is my reading of the ext2/3 -source code at least]. +(4) We have to scan memory to find kernel symbols, etc., which can be +quite slow. Optimizing the memory scanner would help, and caching the +base address of the symbol table(s) would make it dramatically faster. .SH "SECURITY" .IX Header "SECURITY" The current code tries hard to be secure against malicious guests, for -example guests which set up malicious disk partitions. +example guests which set up malicious kernel memory. .SH "SEE ALSO" .IX Header "SEE ALSO" -\&\fIdf\fR\|(1), +\&\fIuname\fR\|(1),\fIdmesg\fR\|(1), \&\fIvirsh\fR\|(1), \&\fIxm\fR\|(1), , @@ -236,7 +265,7 @@ example guests which set up malicious disk partitions. Richard W.M. Jones .SH "COPYRIGHT" .IX Header "COPYRIGHT" -(C) Copyright 2007\-2008 Red Hat Inc., Richard W.M. Jones +(C) Copyright 2008 Red Hat Inc., Richard W.M. Jones http://libvirt.org/ .PP This program is free software; you can redistribute it and/or modify @@ -257,7 +286,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, \s-1MA\s0 02139, \s-1USA\s0. Bugs can be viewed on the Red Hat Bugzilla page: . .PP -If you find a bug in virt\-df, please follow these steps to report it: +If you find a bug in virt\-mem, please follow these steps to report it: .IP "1. Check for existing bug reports" 4 .IX Item "1. Check for existing bug reports" Go to and search for similar bugs. @@ -268,17 +297,17 @@ have fixed it. Run .Sp .Vb 1 -\& virt-df --debug > virt-df.log 2>&1 +\& virt-[program] --debug > virt-mem.log 2>&1 .Ve .Sp -and keep \fIvirt\-df.log\fR. It contains error messages which you should +and keep \fIvirt\-mem.log\fR. It contains error messages which you should submit with your bug report. -.IP "3. Get version of virt-df and version of libvirt." 4 -.IX Item "3. Get version of virt-df and version of libvirt." +.IP "3. Get version of virt-mem and version of libvirt." 4 +.IX Item "3. Get version of virt-mem and version of libvirt." Run .Sp .Vb 1 -\& virt-df --version +\& virt-[program] --version .Ve .IP "4. Submit a bug report." 4 .IX Item "4. Submit a bug report." diff --git a/virt-mem.pod b/virt-mem.pod index f5dc3c3..1c81e29 100644 --- a/virt-mem.pod +++ b/virt-mem.pod @@ -1,28 +1,27 @@ =head1 NAME -virt-df - 'df'-like utility for virtualization stats +virt-uname - system information for virtual machines + +virt-dmesg - print kernel messages for virtual machines =head1 SUMMARY -virt-df [-options] +virt-uname [-options] [domains...] + +virt-dmesg [-options] [domains...] =head1 DESCRIPTION -virt-df is a L-like utility for showing the actual disk usage -of guests. Many command line options are the same as for ordinary -I. +These virtualization tools allow you to inspect the status of +virtual machines running Linux. -It uses libvirt so it is capable of showing stats across a variety of -different virtualization systems. +The tools all use libvirt so are capable of showing stats across a +variety of different virtualization systems. -=head1 OPTIONS +=head1 COMMON OPTIONS =over 4 -=item B<-a>, B<--all> - -Show all domains. The default is show only running (active) domains. - =item B<-c uri>, B<--connect uri> Connect to libvirt URI. The default is to connect to the default @@ -33,84 +32,109 @@ libvirt URI, normally Xen. Print the results in CSV format, suitable for importing into a spreadsheet or database. -This option is only supported if virt-df was built with CSV support. +This option is only supported if virt-mem was built with CSV support. =item B<--debug> Emit debugging information on stderr. Please supply this if you report a bug. -=item B<-h>, B<--human-readable> - -Display human-readable sizes (eg. "10GiB" instead of large numbers). - -=item B<-i>, B<--inodes> - -Display inode information. - -This option only works for Unix-like filesystems. - =item B<--help> Display usage summary. -=item B<-t diskimage> +=item B<-t memoryimage> Test mode. Instead of checking libvirt for domain information, this -runs virt-df directly on the disk image (or device) supplied. You may +runs the virt-mem tool directly on the memory image supplied. You may specify the B<-t> option multiple times. =item B<--version> Display version and exit. +=item B<-E auto|littleendian|bigendian> + +=item B<-T auto|i386|x86-64|I
> + +=item B<-W auto|32|64> + +These options force the endianness, text address, and word size for +the subsequent domains listed on the command line (or if no domains +are listed, then for all domains). + +These default to I which tries to do automatic detection (using +libvirt, or details from the memory images themselves). You only need +to use these options if virt-mem tools get the automatic detection +wrong. + +Endianness (I<-E>) sets the memory endianness, for data, pointers and +so on. + +Text address (I<-T>) sets the base address of the kernel image. I<-T +i386> means to try some common addresses for i386-based kernels. I<-T +x86-64> means to try some common addresses for x86-64-based kernels. +I<-T I
> sets the address specifically (I<0x> prefix is +allowed to specify hex addresses). + +Word size (I<-W>) sets the word size, 32 or 64 bits. + +=item B<-A auto|i386|x86-64|...> + +This option sets the architecture to one of a collection of known +architectures. It is equivalent to setting endianness and wordsize in +one go, but not text address. + =back -=head1 EXAMPLE +=head1 EXAMPLES + + # virt-uname + f9x32kvm: Linux localhost.localdomain 2.6.24-0.155.rc7.git6.fc9 #1 + SMP Tue Jan 15 17:52:31 EST 2008 i686 (none) - # virt-df - Filesystem 1K-blocks Used Available Type - f9x32kvm:hda1 190740 24817 165923 Linux ext2/3 - f9x32kvm:VolGroup/LogVol00 6568348 3401656 3166692 Linux ext2/3 - f9x32kvm:VolGroup/LogVol01 1015808 Linux swap + # virt-dmesg f9x32kvm | tail + <6>Bluetooth: Core ver 2.11 + <6>NET: Registered protocol family 31 + <6>Bluetooth: HCI device and connection manager initialized + <6>Bluetooth: HCI socket layer initialized + <6>Bluetooth: L2CAP ver 2.9 + <6>Bluetooth: L2CAP socket layer initialized + <6>Bluetooth: RFCOMM socket layer initialized + <6>Bluetooth: RFCOMM TTY layer initialized + <6>Bluetooth: RFCOMM ver 1.8 + <7>eth0: no IPv6 routers present =head1 SHORTCOMINGS -virt-df spies on the guest's disk image to try to work out how much -disk space it is actually using. There are some shortcomings to this, -described here. - -(1) It only understands a limited set of partition types. Assuming -that the files and partitions that we get back from libvirt / Xen -correspond to block devices in the guests, we can go some way towards -manually parsing those partitions to find out what they contain. We -can read the MBR, LVM, superblocks and so on. However that's a lot of -parsing work, and currently there is no library which understands a -wide range of partition schemes and filesystem types (not even -libparted which doesn't support LVM yet). The Linux kernel does -support that, but there's not really any good way to access that work. - -The current implementation uses a hand-coded parser which understands -some formats (MBR, LVM2, ext2/3, DOS FAT, Windows NTFS, Linux swap and -Linux suspend partitions). - -(2) The statistics you get are delayed. The real state of, for -example, an ext2 filesystem is only stored in the memory of the -guest's kernel. The ext2 superblock contains some meta-information -about blocks used and free, but this superblock is not up to date. In -fact the guest kernel may not update it even on a 'sync', not until -the filesystem is unmounted. Some operations do appear to write the -superblock, for example L [that is my reading of the ext2/3 -source code at least]. +The virt-mem tools spy on the guest's memory image. There are some +shortcomings to this, described here. + +(1) Only works on specific, tested releases of Linux kernels. Support +for arbitrary Linux kernel versions may be patchy because of changes +in the internal structures used. Support for non-Linux kernels is +currently non-existent, and probably impossible for Windows because of +lack of an acceptable source license. + +(2) Heuristics are used which may mean in the worst case that the +output is wrong. + +(3) Structures which are frequently modified may cause errors. This +could be a problem if, for example, the process table in the guest is +being rapidly updated. + +(4) We have to scan memory to find kernel symbols, etc., which can be +quite slow. Optimizing the memory scanner would help, and caching the +base address of the symbol table(s) would make it dramatically faster. =head1 SECURITY The current code tries hard to be secure against malicious guests, for -example guests which set up malicious disk partitions. +example guests which set up malicious kernel memory. =head1 SEE ALSO -L, +L,L, L, L, L, @@ -124,7 +148,7 @@ Richard W.M. Jones =head1 COPYRIGHT -(C) Copyright 2007-2008 Red Hat Inc., Richard W.M. Jones +(C) Copyright 2008 Red Hat Inc., Richard W.M. Jones http://libvirt.org/ This program is free software; you can redistribute it and/or modify @@ -146,7 +170,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Bugs can be viewed on the Red Hat Bugzilla page: L. -If you find a bug in virt-df, please follow these steps to report it: +If you find a bug in virt-mem, please follow these steps to report it: =over 4 @@ -160,16 +184,16 @@ have fixed it. Run - virt-df --debug > virt-df.log 2>&1 + virt-[program] --debug > virt-mem.log 2>&1 -and keep I. It contains error messages which you should +and keep I. It contains error messages which you should submit with your bug report. -=item 3. Get version of virt-df and version of libvirt. +=item 3. Get version of virt-mem and version of libvirt. Run - virt-df --version + virt-[program] --version =item 4. Submit a bug report. diff --git a/virt-mem.txt b/virt-mem.txt index a8ab3dc..119ede4 100644 --- a/virt-mem.txt +++ b/virt-mem.txt @@ -1,20 +1,21 @@ NAME - virt-df - 'df'-like utility for virtualization stats + virt-uname - system information for virtual machines + + virt-dmesg - print kernel messages for virtual machines SUMMARY - virt-df [-options] + virt-uname [-options] [domains...] -DESCRIPTION - virt-df is a df(1)-like utility for showing the actual disk usage of - guests. Many command line options are the same as for ordinary *df*. + virt-dmesg [-options] [domains...] - It uses libvirt so it is capable of showing stats across a variety of - different virtualization systems. +DESCRIPTION + These virtualization tools allow you to inspect the status of virtual + machines running Linux. -OPTIONS - -a, --all - Show all domains. The default is show only running (active) domains. + The tools all use libvirt so are capable of showing stats across a + variety of different virtualization systems. +COMMON OPTIONS -c uri, --connect uri Connect to libvirt URI. The default is to connect to the default libvirt URI, normally Xen. @@ -23,72 +24,96 @@ OPTIONS Print the results in CSV format, suitable for importing into a spreadsheet or database. - This option is only supported if virt-df was built with CSV support. + This option is only supported if virt-mem was built with CSV + support. --debug Emit debugging information on stderr. Please supply this if you report a bug. - -h, --human-readable - Display human-readable sizes (eg. "10GiB" instead of large numbers). - - -i, --inodes - Display inode information. - - This option only works for Unix-like filesystems. - --help Display usage summary. - -t diskimage + -t memoryimage Test mode. Instead of checking libvirt for domain information, this - runs virt-df directly on the disk image (or device) supplied. You + runs the virt-mem tool directly on the memory image supplied. You may specify the -t option multiple times. --version Display version and exit. -EXAMPLE - # virt-df - Filesystem 1K-blocks Used Available Type - f9x32kvm:hda1 190740 24817 165923 Linux ext2/3 - f9x32kvm:VolGroup/LogVol00 6568348 3401656 3166692 Linux ext2/3 - f9x32kvm:VolGroup/LogVol01 1015808 Linux swap + -E auto|littleendian|bigendian + -T auto|i386|x86-64|*address* + -W auto|32|64 + These options force the endianness, text address, and word size for + the subsequent domains listed on the command line (or if no domains + are listed, then for all domains). + + These default to *auto* which tries to do automatic detection (using + libvirt, or details from the memory images themselves). You only + need to use these options if virt-mem tools get the automatic + detection wrong. + + Endianness (*-E*) sets the memory endianness, for data, pointers and + so on. + + Text address (*-T*) sets the base address of the kernel image. *-T + i386* means to try some common addresses for i386-based kernels. *-T + x86-64* means to try some common addresses for x86-64-based kernels. + *-T *address** sets the address specifically (*0x* prefix is allowed + to specify hex addresses). + + Word size (*-W*) sets the word size, 32 or 64 bits. + + -A auto|i386|x86-64|... + This option sets the architecture to one of a collection of known + architectures. It is equivalent to setting endianness and wordsize + in one go, but not text address. + +EXAMPLES + # virt-uname + f9x32kvm: Linux localhost.localdomain 2.6.24-0.155.rc7.git6.fc9 #1 + SMP Tue Jan 15 17:52:31 EST 2008 i686 (none) + + # virt-dmesg f9x32kvm | tail + <6>Bluetooth: Core ver 2.11 + <6>NET: Registered protocol family 31 + <6>Bluetooth: HCI device and connection manager initialized + <6>Bluetooth: HCI socket layer initialized + <6>Bluetooth: L2CAP ver 2.9 + <6>Bluetooth: L2CAP socket layer initialized + <6>Bluetooth: RFCOMM socket layer initialized + <6>Bluetooth: RFCOMM TTY layer initialized + <6>Bluetooth: RFCOMM ver 1.8 + <7>eth0: no IPv6 routers present SHORTCOMINGS - virt-df spies on the guest's disk image to try to work out how much disk - space it is actually using. There are some shortcomings to this, - described here. - - (1) It only understands a limited set of partition types. Assuming that - the files and partitions that we get back from libvirt / Xen correspond - to block devices in the guests, we can go some way towards manually - parsing those partitions to find out what they contain. We can read the - MBR, LVM, superblocks and so on. However that's a lot of parsing work, - and currently there is no library which understands a wide range of - partition schemes and filesystem types (not even libparted which doesn't - support LVM yet). The Linux kernel does support that, but there's not - really any good way to access that work. - - The current implementation uses a hand-coded parser which understands - some formats (MBR, LVM2, ext2/3, DOS FAT, Windows NTFS, Linux swap and - Linux suspend partitions). - - (2) The statistics you get are delayed. The real state of, for example, - an ext2 filesystem is only stored in the memory of the guest's kernel. - The ext2 superblock contains some meta-information about blocks used and - free, but this superblock is not up to date. In fact the guest kernel - may not update it even on a 'sync', not until the filesystem is - unmounted. Some operations do appear to write the superblock, for - example fsync(2) [that is my reading of the ext2/3 source code at - least]. + The virt-mem tools spy on the guest's memory image. There are some + shortcomings to this, described here. + + (1) Only works on specific, tested releases of Linux kernels. Support + for arbitrary Linux kernel versions may be patchy because of changes in + the internal structures used. Support for non-Linux kernels is currently + non-existent, and probably impossible for Windows because of lack of an + acceptable source license. + + (2) Heuristics are used which may mean in the worst case that the output + is wrong. + + (3) Structures which are frequently modified may cause errors. This + could be a problem if, for example, the process table in the guest is + being rapidly updated. + + (4) We have to scan memory to find kernel symbols, etc., which can be + quite slow. Optimizing the memory scanner would help, and caching the + base address of the symbol table(s) would make it dramatically faster. SECURITY The current code tries hard to be secure against malicious guests, for - example guests which set up malicious disk partitions. + example guests which set up malicious kernel memory. SEE ALSO - df(1), virsh(1), xm(1), , + uname(1),dmesg(1), virsh(1), xm(1), , , , @@ -96,8 +121,7 @@ AUTHORS Richard W.M. Jones COPYRIGHT - (C) Copyright 2007-2008 Red Hat Inc., Richard W.M. Jones - http://libvirt.org/ + (C) Copyright 2008 Red Hat Inc., Richard W.M. Jones http://libvirt.org/ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -117,7 +141,7 @@ REPORTING BUGS Bugs can be viewed on the Red Hat Bugzilla page: . - If you find a bug in virt-df, please follow these steps to report it: + If you find a bug in virt-mem, please follow these steps to report it: 1. Check for existing bug reports Go to and search for similar bugs. @@ -127,15 +151,15 @@ REPORTING BUGS 2. Capture debug and error messages Run - virt-df --debug > virt-df.log 2>&1 + virt-[program] --debug > virt-mem.log 2>&1 - and keep *virt-df.log*. It contains error messages which you should + and keep *virt-mem.log*. It contains error messages which you should submit with your bug report. - 3. Get version of virt-df and version of libvirt. + 3. Get version of virt-mem and version of libvirt. Run - virt-df --version + virt-[program] --version 4. Submit a bug report. Go to and enter a new bug. Please