1virt-diff(1) Virtualization Support virt-diff(1)
2
3
4
6 virt-diff - Differences between files in two virtual machines
7
9 virt-diff [--options] -d domain1 -D domain2
10
11 virt-diff [--options] -a disk1.img [-a ...] -A disk2.img [-A ...]
12
14 "virt-diff" lists the differences between files in two virtual machines
15 or disk images. The usual use case is to show the changes in a VM
16 after it has been running for a while, by taking a snapshot, running
17 the VM, and then using this tool to show what changed between the new
18 VM state and the old snapshot.
19
20 This tool will find differences in filenames, file sizes, checksums,
21 extended attributes, file content and more from a virtual machine or
22 disk image. However it does not look at the boot loader, unused space
23 between partitions or within filesystems, "hidden" sectors and so on.
24 In other words, it is not a security or forensics tool.
25
26 To specify two guests, you have to use the -a or -d option(s) for the
27 first guest, and the -A or -D option(s) for the second guest. The
28 common case is:
29
30 virt-diff -a old.img -A new.img
31
32 or using names known to libvirt:
33
34 virt-diff -d oldguest -D newguest
35
37 --help
38 Display brief help.
39
40 -a file
41 --add file
42 Add file which should be a disk image from the first virtual
43 machine. If the virtual machine has multiple block devices, you
44 must supply all of them with separate -a options.
45
46 The format of the disk image is auto-detected. To override this
47 and force a particular format use the --format=.. option.
48
49 -a URI
50 --add URI
51 Add a remote disk. See "ADDING REMOTE STORAGE" in guestfish(1).
52
53 --all
54 Same as --extra-stats --times --uids --xattrs.
55
56 --atime
57 The default is to ignore changes in file access times, since those
58 are unlikely to be interesting. Using this flag shows atime
59 differences as well.
60
61 -A file
62 -A URI
63 Add a disk image from the second virtual machine.
64
65 --checksum
66 --checksum=crc|md5|sha1|sha224|sha256|sha384|sha512
67 Use a checksum over file contents to detect when regular files have
68 changed content.
69
70 With no argument, this defaults to using md5. Using an argument,
71 you can select the checksum type to use. If the flag is omitted
72 then file times and size are used to determine if a file has
73 changed.
74
75 -c URI
76 --connect URI
77 If using libvirt, connect to the given URI. If omitted, then we
78 connect to the default libvirt hypervisor.
79
80 If you specify guest block devices directly (-a), then libvirt is
81 not used at all.
82
83 --csv
84 Write out the results in CSV format (comma-separated values). This
85 format can be imported easily into databases and spreadsheets, but
86 read "NOTE ABOUT CSV FORMAT" below.
87
88 --dir-links
89 The default is to ignore changes in the number of links in
90 directory entries, since those are unlikely to be interesting.
91 Using this flag shows changes to the nlink field of directories.
92
93 --dir-times
94 The default is to ignore changed times on directory entries, since
95 those are unlikely to be interesting. Using this flag shows
96 changes to the time fields of directories.
97
98 -d guest
99 --domain guest
100 Add all the disks from the named libvirt guest, as the first guest.
101 Domain UUIDs can be used instead of names.
102
103 -D guest
104 Add all the disks from the named libvirt guest, as the second
105 guest. Domain UUIDs can be used instead of names.
106
107 --echo-keys
108 When prompting for keys and passphrases, virt-diff normally turns
109 echoing off so you cannot see what you are typing. If you are not
110 worried about Tempest attacks and there is no one else in the room
111 you can specify this flag to see what you are typing.
112
113 --extra-stats
114 Display extra stats.
115
116 --format=raw|qcow2|..
117 --format
118 The default for the -a/-A option is to auto-detect the format of
119 the disk image. Using this forces the disk format for -a/-A
120 options which follow on the command line. Using --format with no
121 argument switches back to auto-detection for subsequent -a/-A
122 options.
123
124 For example:
125
126 virt-diff --format=raw -a disk.img [...]
127
128 forces raw format (no auto-detection) for disk.img.
129
130 virt-diff --format=raw -a disk.img --format -a another.img [...]
131
132 forces raw format (no auto-detection) for disk.img and reverts to
133 auto-detection for another.img.
134
135 If you have untrusted raw-format guest disk images, you should use
136 this option to specify the disk format. This avoids a possible
137 security problem with malicious guests (CVE-2010-3851).
138
139 -h
140 --human-readable
141 Display file sizes in human-readable format.
142
143 --keys-from-stdin
144 Read key or passphrase parameters from stdin. The default is to
145 try to read passphrases from the user by opening /dev/tty.
146
147 --times
148 Display time fields.
149
150 --time-days
151 Display time fields as days before now (negative if in the future).
152
153 Note that 0 in output means "up to 1 day before now", or that the
154 age of the file is between 0 and 86399 seconds.
155
156 --time-relative
157 Display time fields as seconds before now (negative if in the
158 future).
159
160 --time-t
161 Display time fields as seconds since the Unix epoch.
162
163 --uids
164 Display UID and GID fields.
165
166 -v
167 --verbose
168 Enable verbose messages for debugging.
169
170 -V
171 --version
172 Display version number and exit.
173
174 -x Enable tracing of libguestfs API calls.
175
176 --xattrs
177 Display extended attributes.
178
180 Comma-separated values (CSV) is a deceptive format. It seems like it
181 should be easy to parse, but it is definitely not easy to parse.
182
183 Myth: Just split fields at commas. Reality: This does not work
184 reliably. This example has two columns:
185
186 "foo,bar",baz
187
188 Myth: Read the file one line at a time. Reality: This does not work
189 reliably. This example has one row:
190
191 "foo
192 bar",baz
193
194 For shell scripts, use "csvtool" (https://github.com/Chris00/ocaml-csv
195 also packaged in major Linux distributions).
196
197 For other languages, use a CSV processing library (eg. "Text::CSV" for
198 Perl or Python’s built-in csv library).
199
200 Most spreadsheets and databases can import CSV directly.
201
203 This program returns 0 if successful, or non-zero if there was an
204 error.
205
207 guestfs(3), guestfish(1), virt-cat(1), virt-copy-out(1), virt-ls(1),
208 virt-tar-out(1), http://libguestfs.org/.
209
211 Richard W.M. Jones http://people.redhat.com/~rjones/
212
214 Copyright (C) 2009-2018 Red Hat Inc.
215
217 This program is free software; you can redistribute it and/or modify it
218 under the terms of the GNU General Public License as published by the
219 Free Software Foundation; either version 2 of the License, or (at your
220 option) any later version.
221
222 This program is distributed in the hope that it will be useful, but
223 WITHOUT ANY WARRANTY; without even the implied warranty of
224 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
225 General Public License for more details.
226
227 You should have received a copy of the GNU General Public License along
228 with this program; if not, write to the Free Software Foundation, Inc.,
229 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
230
232 To get a list of bugs against libguestfs, use this link:
233 https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools
234
235 To report a new bug against libguestfs, use this link:
236 https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools
237
238 When reporting a bug, please supply:
239
240 · The version of libguestfs.
241
242 · Where you got libguestfs (eg. which Linux distro, compiled from
243 source, etc)
244
245 · Describe the bug accurately and give a way to reproduce it.
246
247 · Run libguestfs-test-tool(1) and paste the complete, unedited output
248 into the bug report.
249
250
251
252libguestfs-1.38.2 2018-05-15 virt-diff(1)