1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Red Hat Inc.
3 # This file is distributed under the same license as the libguestfs package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
9 "Project-Id-Version: libguestfs 1.13.17\n"
10 "Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
11 "POT-Creation-Date: 2011-10-04 19:22+0200\n"
12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 "Language-Team: LANGUAGE <LL@li.org>\n"
17 "Content-Type: text/plain; charset=UTF-8\n"
18 "Content-Transfer-Encoding: 8bit\n"
21 #: ../cat/virt-cat.pod:3 ../cat/virt-filesystems.pod:3 ../cat/virt-ls.pod:3 ../df/virt-df.pod:3 ../edit/virt-edit.pod:3 ../erlang/examples/guestfs-erlang.pod:3 ../examples/guestfs-examples.pod:3 ../examples/guestfs-recipes.pod:14 ../fish/guestfish.pod:3 ../fish/virt-copy-in.pod:3 ../fish/virt-copy-out.pod:3 ../fish/virt-tar-in.pod:3 ../fish/virt-tar-out.pod:3 ../fuse/guestmount.pod:3 ../inspector/virt-inspector.pod:3 ../java/examples/guestfs-java.pod:3 ../ocaml/examples/guestfs-ocaml.pod:3 ../perl/examples/guestfs-perl.pod:3 ../python/examples/guestfs-python.pod:3 ../rescue/virt-rescue.pod:3 ../resize/virt-resize.pod:3 ../ruby/examples/guestfs-ruby.pod:3 ../sparsify/virt-sparsify.pod:3 ../src/guestfs.pod:3 ../test-tool/libguestfs-test-tool.pod:3 ../tools/virt-list-filesystems.pl:30 ../tools/virt-list-partitions.pl:30 ../tools/virt-make-fs.pl:35 ../tools/virt-tar.pl:31 ../tools/virt-win-reg.pl:35
26 #: ../cat/virt-cat.pod:5
27 msgid "virt-cat - Display files in a virtual machine"
31 #: ../cat/virt-cat.pod:7 ../cat/virt-filesystems.pod:7 ../cat/virt-ls.pod:7 ../df/virt-df.pod:7 ../edit/virt-edit.pod:7 ../erlang/examples/guestfs-erlang.pod:7 ../examples/guestfs-examples.pod:7 ../fish/guestfish.pod:7 ../fish/virt-copy-in.pod:7 ../fish/virt-copy-out.pod:7 ../fish/virt-tar-in.pod:7 ../fish/virt-tar-out.pod:7 ../fuse/guestmount.pod:7 ../inspector/virt-inspector.pod:7 ../java/examples/guestfs-java.pod:7 ../ocaml/examples/guestfs-ocaml.pod:7 ../perl/examples/guestfs-perl.pod:7 ../python/examples/guestfs-python.pod:7 ../rescue/virt-rescue.pod:7 ../resize/virt-resize.pod:7 ../ruby/examples/guestfs-ruby.pod:7 ../sparsify/virt-sparsify.pod:7 ../src/guestfs.pod:7 ../test-tool/libguestfs-test-tool.pod:7 ../tools/virt-list-filesystems.pl:34 ../tools/virt-list-partitions.pl:34 ../tools/virt-make-fs.pl:39 ../tools/virt-tar.pl:35 ../tools/virt-win-reg.pl:39
36 #: ../cat/virt-cat.pod:9
39 " virt-cat [--options] -d domname file [file ...]\n"
44 #: ../cat/virt-cat.pod:11
47 " virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]\n"
52 #: ../cat/virt-cat.pod:13 ../edit/virt-edit.pod:15 ../inspector/virt-inspector.pod:13
57 #: ../cat/virt-cat.pod:15
60 " virt-cat domname file\n"
65 #: ../cat/virt-cat.pod:17
68 " virt-cat disk.img file\n"
73 #: ../cat/virt-cat.pod:19 ../cat/virt-filesystems.pod:13 ../cat/virt-ls.pod:19 ../df/virt-df.pod:21 ../edit/virt-edit.pod:27 ../erlang/examples/guestfs-erlang.pod:16 ../examples/guestfs-examples.pod:19 ../examples/guestfs-recipes.pod:18 ../fish/guestfish.pod:30 ../fish/virt-copy-in.pod:19 ../fish/virt-copy-out.pod:13 ../fish/virt-tar-in.pod:21 ../fish/virt-tar-out.pod:15 ../fuse/guestmount.pod:20 ../inspector/virt-inspector.pod:19 ../java/examples/guestfs-java.pod:15 ../ocaml/examples/guestfs-ocaml.pod:25 ../perl/examples/guestfs-perl.pod:18 ../python/examples/guestfs-python.pod:14 ../rescue/virt-rescue.pod:29 ../resize/virt-resize.pod:13 ../ruby/examples/guestfs-ruby.pod:15 ../sparsify/virt-sparsify.pod:11 ../src/guestfs.pod:23 ../test-tool/libguestfs-test-tool.pod:11 ../tools/virt-list-filesystems.pl:40 ../tools/virt-list-partitions.pl:40 ../tools/virt-make-fs.pl:47 ../tools/virt-tar.pl:77 ../tools/virt-win-reg.pl:63
78 #: ../cat/virt-cat.pod:21
80 "C<virt-cat> is a command line tool to display the contents of C<file> where "
81 "C<file> exists in the named virtual machine (or disk image)."
85 #: ../cat/virt-cat.pod:24
87 "Multiple filenames can be given, in which case they are concatenated "
88 "together. Each filename must be a full path, starting at the root directory "
89 "(starting with '/')."
93 #: ../cat/virt-cat.pod:28
95 "C<virt-cat> can be used to quickly view a file. To edit a file, use "
96 "C<virt-edit>. For more complex cases you should look at the L<guestfish(1)> "
97 "tool (see L</USING GUESTFISH> below)."
101 #: ../cat/virt-cat.pod:32 ../cat/virt-ls.pod:35 ../df/virt-df.pod:43 ../edit/virt-edit.pod:44 ../fish/guestfish.pod:41 ../fish/guestfish.pod:1018 ../fish/virt-copy-in.pod:29 ../fish/virt-copy-out.pod:21 ../fish/virt-tar-in.pod:30 ../fish/virt-tar-out.pod:24 ../fuse/guestmount.pod:39 ../resize/virt-resize.pod:27 ../sparsify/virt-sparsify.pod:75 ../tools/virt-tar.pl:50
106 #: ../cat/virt-cat.pod:34
107 msgid "Display C</etc/fstab> file from inside the libvirt VM called C<mydomain>:"
111 #: ../cat/virt-cat.pod:37
114 " virt-cat -d mydomain /etc/fstab\n"
119 #: ../cat/virt-cat.pod:39
120 msgid "List syslog messages from a VM disk image file:"
124 #: ../cat/virt-cat.pod:41
127 " virt-cat -a disk.img /var/log/messages | tail\n"
132 #: ../cat/virt-cat.pod:43
133 msgid "Find out what DHCP IP address a VM acquired:"
137 #: ../cat/virt-cat.pod:45
140 " virt-cat -d mydomain /var/log/messages | \\\n"
141 " grep 'dhclient: bound to' | tail\n"
146 #: ../cat/virt-cat.pod:48
147 msgid "Find out what packages were recently installed:"
151 #: ../cat/virt-cat.pod:50
154 " virt-cat -d mydomain /var/log/yum.log | tail\n"
159 #: ../cat/virt-cat.pod:52
160 msgid "Find out who is logged on inside a virtual machine:"
164 #: ../cat/virt-cat.pod:54
167 " virt-cat -d mydomain /var/run/utmp > /tmp/utmp\n"
173 #: ../cat/virt-cat.pod:57
174 msgid "or who was logged on:"
178 #: ../cat/virt-cat.pod:59
181 " virt-cat -d mydomain /var/log/wtmp > /tmp/wtmp\n"
182 " last -f /tmp/wtmp\n"
187 #: ../cat/virt-cat.pod:62 ../cat/virt-filesystems.pod:91 ../cat/virt-ls.pod:261 ../df/virt-df.pod:59 ../edit/virt-edit.pod:62 ../fish/guestfish.pod:148 ../fish/virt-copy-in.pod:45 ../fish/virt-copy-out.pod:34 ../fish/virt-tar-in.pod:42 ../fish/virt-tar-out.pod:36 ../fuse/guestmount.pod:83 ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:84 ../resize/virt-resize.pod:241 ../sparsify/virt-sparsify.pod:99 ../test-tool/libguestfs-test-tool.pod:36 ../tools/virt-list-filesystems.pl:53 ../tools/virt-list-partitions.pl:54 ../tools/virt-make-fs.pl:153 ../tools/virt-tar.pl:103 ../tools/virt-win-reg.pl:96
192 #: ../cat/virt-cat.pod:66 ../cat/virt-filesystems.pod:95 ../cat/virt-ls.pod:265 ../df/virt-df.pod:63 ../edit/virt-edit.pod:66 ../fish/guestfish.pod:152 ../fuse/guestmount.pod:151 ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:88 ../resize/virt-resize.pod:245 ../sparsify/virt-sparsify.pod:103 ../test-tool/libguestfs-test-tool.pod:40 ../tools/virt-list-filesystems.pl:61 ../tools/virt-list-partitions.pl:62 ../tools/virt-make-fs.pl:161 ../tools/virt-tar.pl:111 ../tools/virt-win-reg.pl:104
197 #: ../cat/virt-cat.pod:68 ../cat/virt-filesystems.pod:97 ../cat/virt-ls.pod:267 ../df/virt-df.pod:65 ../edit/virt-edit.pod:68 ../inspector/virt-inspector.pod:61 ../rescue/virt-rescue.pod:90 ../tools/virt-list-filesystems.pl:63 ../tools/virt-list-partitions.pl:64 ../tools/virt-make-fs.pl:163 ../tools/virt-tar.pl:113 ../tools/virt-win-reg.pl:106
198 msgid "Display brief help."
202 #: ../cat/virt-cat.pod:70 ../cat/virt-filesystems.pod:99 ../cat/virt-ls.pod:269 ../df/virt-df.pod:67 ../edit/virt-edit.pod:70 ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:92
207 #: ../cat/virt-cat.pod:72 ../cat/virt-filesystems.pod:101 ../cat/virt-ls.pod:271 ../df/virt-df.pod:69 ../edit/virt-edit.pod:72 ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:94
208 msgid "B<--add> file"
212 #: ../cat/virt-cat.pod:74 ../cat/virt-filesystems.pod:103 ../cat/virt-ls.pod:273 ../df/virt-df.pod:71 ../edit/virt-edit.pod:74 ../inspector/virt-inspector.pod:67 ../rescue/virt-rescue.pod:96
214 "Add I<file> which should be a disk image from a virtual machine. If the "
215 "virtual machine has multiple block devices, you must supply all of them with "
216 "separate I<-a> options."
220 #: ../cat/virt-cat.pod:78 ../cat/virt-filesystems.pod:107 ../cat/virt-ls.pod:277 ../df/virt-df.pod:75 ../edit/virt-edit.pod:78 ../fish/guestfish.pod:174 ../fuse/guestmount.pod:93 ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:100
222 "The format of the disk image is auto-detected. To override this and force a "
223 "particular format use the I<--format=..> option."
227 #: ../cat/virt-cat.pod:81 ../cat/virt-filesystems.pod:125 ../cat/virt-ls.pod:291 ../df/virt-df.pod:78 ../rescue/virt-rescue.pod:107
232 #: ../cat/virt-cat.pod:83 ../cat/virt-filesystems.pod:127 ../cat/virt-ls.pod:293 ../df/virt-df.pod:80 ../rescue/virt-rescue.pod:109
233 msgid "B<--connect> URI"
237 #: ../cat/virt-cat.pod:85 ../cat/virt-filesystems.pod:129 ../cat/virt-ls.pod:295 ../df/virt-df.pod:82 ../edit/virt-edit.pod:99 ../inspector/virt-inspector.pod:78 ../rescue/virt-rescue.pod:111 ../tools/virt-list-filesystems.pl:81 ../tools/virt-list-partitions.pl:82 ../tools/virt-tar.pl:131 ../tools/virt-win-reg.pl:132
239 "If using libvirt, connect to the given I<URI>. If omitted, then we connect "
240 "to the default libvirt hypervisor."
244 #: ../cat/virt-cat.pod:88 ../cat/virt-filesystems.pod:132 ../cat/virt-ls.pod:298 ../df/virt-df.pod:85 ../rescue/virt-rescue.pod:114
246 "If you specify guest block devices directly (I<-a>), then libvirt is not "
251 #: ../cat/virt-cat.pod:91 ../cat/virt-filesystems.pod:141 ../cat/virt-ls.pod:307 ../df/virt-df.pod:94 ../edit/virt-edit.pod:105 ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:117
256 #: ../cat/virt-cat.pod:93 ../cat/virt-filesystems.pod:143 ../cat/virt-ls.pod:309 ../df/virt-df.pod:96 ../edit/virt-edit.pod:107 ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:119
257 msgid "B<--domain> guest"
261 #: ../cat/virt-cat.pod:95 ../cat/virt-filesystems.pod:145 ../cat/virt-ls.pod:311 ../df/virt-df.pod:98 ../edit/virt-edit.pod:109 ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:121
263 "Add all the disks from the named libvirt guest. Domain UUIDs can be used "
268 #: ../cat/virt-cat.pod:98 ../cat/virt-filesystems.pod:148 ../cat/virt-ls.pod:314 ../edit/virt-edit.pod:112 ../fish/guestfish.pod:217 ../fuse/guestmount.pod:126 ../inspector/virt-inspector.pod:92
269 msgid "B<--echo-keys>"
273 #: ../cat/virt-cat.pod:100
275 "When prompting for keys and passphrases, virt-cat normally turns echoing off "
276 "so you cannot see what you are typing. If you are not worried about Tempest "
277 "attacks and there is no one else in the room you can specify this flag to "
278 "see what you are typing."
282 #: ../cat/virt-cat.pod:105 ../cat/virt-filesystems.pod:170 ../cat/virt-ls.pod:328 ../df/virt-df.pod:101 ../fish/guestfish.pod:233 ../fuse/guestmount.pod:133 ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:124
283 msgid "B<--format=raw|qcow2|..>"
287 #: ../cat/virt-cat.pod:107 ../cat/virt-filesystems.pod:172 ../cat/virt-ls.pod:330 ../df/virt-df.pod:103 ../edit/virt-edit.pod:134 ../fish/guestfish.pod:235 ../fuse/guestmount.pod:135 ../inspector/virt-inspector.pod:101 ../rescue/virt-rescue.pod:126
292 #: ../cat/virt-cat.pod:109 ../cat/virt-filesystems.pod:174 ../cat/virt-ls.pod:332 ../df/virt-df.pod:105 ../edit/virt-edit.pod:136 ../fish/guestfish.pod:237 ../fuse/guestmount.pod:137 ../rescue/virt-rescue.pod:128
294 "The default for the I<-a> option is to auto-detect the format of the disk "
295 "image. Using this forces the disk format for I<-a> options which follow on "
296 "the command line. Using I<--format> with no argument switches back to "
297 "auto-detection for subsequent I<-a> options."
301 #: ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../df/virt-df.pod:110 ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 ../fish/guestfish.pod:673 ../inspector/virt-inspector.pod:336 ../rescue/virt-rescue.pod:133 ../src/guestfs.pod:2791
306 #: ../cat/virt-cat.pod:116
309 " virt-cat --format=raw -a disk.img file\n"
314 #: ../cat/virt-cat.pod:118 ../cat/virt-filesystems.pod:183 ../cat/virt-ls.pod:341 ../df/virt-df.pod:114 ../edit/virt-edit.pod:145 ../fish/guestfish.pod:246 ../rescue/virt-rescue.pod:137
315 msgid "forces raw format (no auto-detection) for C<disk.img>."
319 #: ../cat/virt-cat.pod:120
322 " virt-cat --format=raw -a disk.img --format -a another.img file\n"
327 #: ../cat/virt-cat.pod:122 ../cat/virt-filesystems.pod:187 ../cat/virt-ls.pod:345 ../df/virt-df.pod:118 ../edit/virt-edit.pod:149 ../fish/guestfish.pod:250 ../rescue/virt-rescue.pod:141
329 "forces raw format (no auto-detection) for C<disk.img> and reverts to "
330 "auto-detection for C<another.img>."
334 #: ../cat/virt-cat.pod:125 ../cat/virt-filesystems.pod:190 ../cat/virt-ls.pod:348 ../df/virt-df.pod:121 ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:144
336 "If you have untrusted raw-format guest disk images, you should use this "
337 "option to specify the disk format. This avoids a possible security problem "
338 "with malicious guests (CVE-2010-3851)."
342 #: ../cat/virt-cat.pod:129 ../cat/virt-filesystems.pod:200 ../cat/virt-ls.pod:361 ../edit/virt-edit.pod:156 ../fish/guestfish.pod:289 ../fuse/guestmount.pod:163 ../inspector/virt-inspector.pod:114
343 msgid "B<--keys-from-stdin>"
347 #: ../cat/virt-cat.pod:131 ../cat/virt-filesystems.pod:202 ../cat/virt-ls.pod:363 ../edit/virt-edit.pod:158 ../fish/guestfish.pod:291 ../fuse/guestmount.pod:165 ../inspector/virt-inspector.pod:116
349 "Read key or passphrase parameters from stdin. The default is to try to read "
350 "passphrases from the user by opening C</dev/tty>."
354 #: ../cat/virt-cat.pod:134 ../cat/virt-filesystems.pod:261 ../cat/virt-ls.pod:425 ../df/virt-df.pod:173 ../edit/virt-edit.pod:161 ../fish/guestfish.pod:390 ../fuse/guestmount.pod:257 ../inspector/virt-inspector.pod:119 ../rescue/virt-rescue.pod:182 ../sparsify/virt-sparsify.pod:159
359 #: ../cat/virt-cat.pod:136 ../cat/virt-filesystems.pod:263 ../cat/virt-ls.pod:427 ../df/virt-df.pod:175 ../edit/virt-edit.pod:163 ../fish/guestfish.pod:392 ../fuse/guestmount.pod:259 ../inspector/virt-inspector.pod:121 ../rescue/virt-rescue.pod:184 ../sparsify/virt-sparsify.pod:161
364 #: ../cat/virt-cat.pod:138 ../cat/virt-filesystems.pod:265 ../cat/virt-ls.pod:429 ../df/virt-df.pod:177 ../edit/virt-edit.pod:165 ../inspector/virt-inspector.pod:123 ../rescue/virt-rescue.pod:186 ../sparsify/virt-sparsify.pod:163
365 msgid "Enable verbose messages for debugging."
369 #: ../cat/virt-cat.pod:140 ../cat/virt-filesystems.pod:267 ../cat/virt-ls.pod:431 ../df/virt-df.pod:179 ../edit/virt-edit.pod:167 ../fish/guestfish.pod:397 ../fuse/guestmount.pod:263 ../inspector/virt-inspector.pod:125 ../rescue/virt-rescue.pod:188 ../resize/virt-resize.pod:484 ../sparsify/virt-sparsify.pod:165
374 #: ../cat/virt-cat.pod:142 ../cat/virt-filesystems.pod:269 ../cat/virt-ls.pod:433 ../df/virt-df.pod:181 ../edit/virt-edit.pod:169 ../fish/guestfish.pod:399 ../fuse/guestmount.pod:265 ../inspector/virt-inspector.pod:127 ../rescue/virt-rescue.pod:190 ../resize/virt-resize.pod:486 ../sparsify/virt-sparsify.pod:167 ../tools/virt-list-filesystems.pl:69 ../tools/virt-list-partitions.pl:70 ../tools/virt-make-fs.pl:169 ../tools/virt-tar.pl:119 ../tools/virt-win-reg.pl:112
379 #: ../cat/virt-cat.pod:144 ../cat/virt-filesystems.pod:271 ../cat/virt-ls.pod:435 ../df/virt-df.pod:183 ../edit/virt-edit.pod:171 ../inspector/virt-inspector.pod:129 ../rescue/virt-rescue.pod:192 ../resize/virt-resize.pod:488 ../sparsify/virt-sparsify.pod:169 ../tools/virt-list-filesystems.pl:71 ../tools/virt-list-partitions.pl:72 ../tools/virt-make-fs.pl:171 ../tools/virt-tar.pl:121 ../tools/virt-win-reg.pl:114
380 msgid "Display version number and exit."
384 #: ../cat/virt-cat.pod:146 ../cat/virt-filesystems.pod:281 ../cat/virt-ls.pod:437 ../df/virt-df.pod:185 ../edit/virt-edit.pod:173 ../fish/guestfish.pod:412 ../fuse/guestmount.pod:278 ../inspector/virt-inspector.pod:131 ../rescue/virt-rescue.pod:203 ../sparsify/virt-sparsify.pod:171 ../tools/virt-tar.pl:158
389 #: ../cat/virt-cat.pod:148 ../cat/virt-filesystems.pod:283 ../cat/virt-ls.pod:439 ../df/virt-df.pod:187 ../edit/virt-edit.pod:175 ../inspector/virt-inspector.pod:133 ../rescue/virt-rescue.pod:205 ../sparsify/virt-sparsify.pod:173
390 msgid "Enable tracing of libguestfs API calls."
394 #: ../cat/virt-cat.pod:152 ../cat/virt-ls.pod:443 ../edit/virt-edit.pod:179 ../inspector/virt-inspector.pod:137 ../rescue/virt-rescue.pod:209
395 msgid "OLD-STYLE COMMAND LINE ARGUMENTS"
399 #: ../cat/virt-cat.pod:154
400 msgid "Previous versions of virt-cat allowed you to write either:"
404 #: ../cat/virt-cat.pod:156
407 " virt-cat disk.img [disk.img ...] file\n"
412 #: ../cat/virt-cat.pod:158 ../cat/virt-ls.pod:449 ../edit/virt-edit.pod:185 ../inspector/virt-inspector.pod:143 ../rescue/virt-rescue.pod:215
417 #: ../cat/virt-cat.pod:160
420 " virt-cat guestname file\n"
425 #: ../cat/virt-cat.pod:162 ../cat/virt-ls.pod:453 ../edit/virt-edit.pod:189 ../inspector/virt-inspector.pod:147 ../rescue/virt-rescue.pod:219
427 "whereas in this version you should use I<-a> or I<-d> respectively to avoid "
428 "the confusing case where a disk image might have the same name as a guest."
432 #: ../cat/virt-cat.pod:166 ../cat/virt-ls.pod:457 ../edit/virt-edit.pod:193 ../inspector/virt-inspector.pod:151 ../rescue/virt-rescue.pod:223
433 msgid "For compatibility the old style is still supported."
437 #: ../cat/virt-cat.pod:168 ../edit/virt-edit.pod:297
438 msgid "USING GUESTFISH"
442 #: ../cat/virt-cat.pod:170
444 "L<guestfish(1)> is a more powerful, lower level tool which you can use when "
445 "C<virt-cat> doesn't work."
449 #: ../cat/virt-cat.pod:173
450 msgid "Using C<virt-cat> is approximately equivalent to doing:"
454 #: ../cat/virt-cat.pod:175
457 " guestfish --ro -i -d domname download file -\n"
462 #: ../cat/virt-cat.pod:177
464 "where C<domname> is the name of the libvirt guest, and C<file> is the full "
465 "path to the file. Note the final C<-> (meaning \"output to stdout\")."
469 #: ../cat/virt-cat.pod:181
471 "The command above uses libguestfs's guest inspection feature and so does not "
472 "work on guests that libguestfs cannot inspect, or on things like arbitrary "
473 "disk images that don't contain guests. To display a file from a disk image "
478 #: ../cat/virt-cat.pod:186
481 " guestfish --ro -a disk.img -m /dev/sda1 download file -\n"
486 #: ../cat/virt-cat.pod:188
488 "where C<disk.img> is the disk image, C</dev/sda1> is the filesystem within "
489 "the disk image, and C<file> is the full path to the file."
493 #: ../cat/virt-cat.pod:191 ../cat/virt-filesystems.pod:365 ../cat/virt-ls.pod:483 ../df/virt-df.pod:215 ../edit/virt-edit.pod:342 ../inspector/virt-inspector.pod:352 ../rescue/virt-rescue.pod:266 ../resize/virt-resize.pod:601 ../tools/virt-list-filesystems.pl:188 ../tools/virt-list-partitions.pl:258 ../tools/virt-make-fs.pl:532 ../tools/virt-tar.pl:289 ../tools/virt-win-reg.pl:733
494 msgid "SHELL QUOTING"
498 #: ../cat/virt-cat.pod:193 ../cat/virt-filesystems.pod:367 ../cat/virt-ls.pod:485 ../df/virt-df.pod:217 ../edit/virt-edit.pod:344 ../inspector/virt-inspector.pod:354 ../rescue/virt-rescue.pod:268 ../resize/virt-resize.pod:603 ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260 ../tools/virt-make-fs.pl:534 ../tools/virt-tar.pl:291 ../tools/virt-win-reg.pl:741
500 "Libvirt guest names can contain arbitrary characters, some of which have "
501 "meaning to the shell such as C<#> and space. You may need to quote or "
502 "escape these characters on the command line. See the shell manual page "
503 "L<sh(1)> for details."
507 #: ../cat/virt-cat.pod:198 ../cat/virt-filesystems.pod:372 ../cat/virt-ls.pod:490 ../df/virt-df.pod:222 ../edit/virt-edit.pod:349 ../fish/guestfish.pod:1081 ../fuse/guestmount.pod:303 ../inspector/virt-inspector.pod:375 ../resize/virt-resize.pod:608 ../sparsify/virt-sparsify.pod:227 ../test-tool/libguestfs-test-tool.pod:90
512 #: ../cat/virt-cat.pod:200 ../cat/virt-filesystems.pod:374 ../cat/virt-ls.pod:492 ../df/virt-df.pod:224 ../edit/virt-edit.pod:351 ../fuse/guestmount.pod:305 ../inspector/virt-inspector.pod:377 ../resize/virt-resize.pod:610 ../sparsify/virt-sparsify.pod:229
513 msgid "This program returns 0 if successful, or non-zero if there was an error."
517 #: ../cat/virt-cat.pod:203 ../cat/virt-filesystems.pod:377 ../cat/virt-ls.pod:495 ../df/virt-df.pod:227 ../edit/virt-edit.pod:354 ../erlang/examples/guestfs-erlang.pod:97 ../examples/guestfs-examples.pod:33 ../examples/guestfs-recipes.pod:384 ../fish/guestfish.pod:1235 ../fish/virt-copy-in.pod:50 ../fish/virt-copy-out.pod:39 ../fish/virt-tar-in.pod:47 ../fish/virt-tar-out.pod:41 ../fuse/guestmount.pod:308 ../inspector/virt-inspector.pod:380 ../java/examples/guestfs-java.pod:45 ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:39 ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:288 ../resize/virt-resize.pod:613 ../ruby/examples/guestfs-ruby.pod:36 ../sparsify/virt-sparsify.pod:251 ../src/guestfs.pod:3167 ../test-tool/libguestfs-test-tool.pod:100 ../tools/virt-list-filesystems.pl:195 ../tools/virt-list-partitions.pl:265 ../tools/virt-make-fs.pl:539 ../tools/virt-tar.pl:296 ../tools/virt-win-reg.pl:746
522 #: ../cat/virt-cat.pod:205
524 "L<guestfs(3)>, L<guestfish(1)>, L<virt-copy-out(1)>, L<virt-edit(1)>, "
525 "L<virt-tar-out(1)>, L<http://libguestfs.org/>."
529 #: ../cat/virt-cat.pod:212 ../cat/virt-filesystems.pod:388 ../cat/virt-ls.pod:507 ../df/virt-df.pod:235 ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:296 ../resize/virt-resize.pod:635 ../sparsify/virt-sparsify.pod:264 ../tools/virt-list-filesystems.pl:208 ../tools/virt-list-partitions.pl:277 ../tools/virt-make-fs.pl:564 ../tools/virt-tar.pl:311 ../tools/virt-win-reg.pl:772
534 #: ../cat/virt-cat.pod:214 ../cat/virt-filesystems.pod:390 ../cat/virt-ls.pod:509 ../df/virt-df.pod:237 ../edit/virt-edit.pod:370 ../inspector/virt-inspector.pod:395 ../rescue/virt-rescue.pod:298 ../resize/virt-resize.pod:637 ../sparsify/virt-sparsify.pod:266 ../tools/virt-list-filesystems.pl:210 ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:566 ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:774
535 msgid "Richard W.M. Jones L<http://people.redhat.com/~rjones/>"
539 #: ../cat/virt-cat.pod:216 ../cat/virt-filesystems.pod:392 ../cat/virt-ls.pod:511 ../df/virt-df.pod:239 ../edit/virt-edit.pod:372 ../erlang/examples/guestfs-erlang.pod:114 ../examples/guestfs-examples.pod:49 ../examples/guestfs-recipes.pod:401 ../fish/guestfish.pod:1265 ../fish/virt-copy-in.pod:64 ../fish/virt-copy-out.pod:53 ../fish/virt-tar-in.pod:62 ../fish/virt-tar-out.pod:55 ../fuse/guestmount.pod:323 ../inspector/virt-inspector.pod:403 ../java/examples/guestfs-java.pod:62 ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:56 ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:300 ../resize/virt-resize.pod:639 ../ruby/examples/guestfs-ruby.pod:52 ../sparsify/virt-sparsify.pod:268 ../src/guestfs.pod:3246 ../test-tool/libguestfs-test-tool.pod:110 ../tools/virt-list-filesystems.pl:212 ../tools/virt-list-partitions.pl:281 ../tools/virt-make-fs.pl:568 ../tools/virt-tar.pl:315 ../tools/virt-win-reg.pl:776
544 #: ../cat/virt-cat.pod:218 ../inspector/virt-inspector.pod:405 ../resize/virt-resize.pod:641
545 msgid "Copyright (C) 2010-2011 Red Hat Inc."
549 #: ../cat/virt-cat.pod:220 ../cat/virt-filesystems.pod:396 ../cat/virt-ls.pod:515 ../df/virt-df.pod:243 ../edit/virt-edit.pod:376 ../fish/guestfish.pod:1270 ../fish/virt-copy-in.pod:69 ../fish/virt-copy-out.pod:58 ../fish/virt-tar-in.pod:67 ../fish/virt-tar-out.pod:60 ../fuse/guestmount.pod:328 ../inspector/virt-inspector.pod:407 ../rescue/virt-rescue.pod:304 ../resize/virt-resize.pod:643 ../sparsify/virt-sparsify.pod:272 ../test-tool/libguestfs-test-tool.pod:115 ../tools/virt-list-filesystems.pl:216 ../tools/virt-list-partitions.pl:285 ../tools/virt-make-fs.pl:572 ../tools/virt-tar.pl:319 ../tools/virt-win-reg.pl:780
551 "This program is free software; you can redistribute it and/or modify it "
552 "under the terms of the GNU General Public License as published by the Free "
553 "Software Foundation; either version 2 of the License, or (at your option) "
558 #: ../cat/virt-cat.pod:225 ../cat/virt-filesystems.pod:401 ../cat/virt-ls.pod:520 ../df/virt-df.pod:248 ../edit/virt-edit.pod:381 ../fish/guestfish.pod:1275 ../fish/virt-copy-in.pod:74 ../fish/virt-copy-out.pod:63 ../fish/virt-tar-in.pod:72 ../fish/virt-tar-out.pod:65 ../fuse/guestmount.pod:333 ../inspector/virt-inspector.pod:412 ../rescue/virt-rescue.pod:309 ../resize/virt-resize.pod:648 ../sparsify/virt-sparsify.pod:277 ../test-tool/libguestfs-test-tool.pod:120 ../tools/virt-list-filesystems.pl:221 ../tools/virt-list-partitions.pl:290 ../tools/virt-make-fs.pl:577 ../tools/virt-tar.pl:324 ../tools/virt-win-reg.pl:785
560 "This program is distributed in the hope that it will be useful, but WITHOUT "
561 "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
562 "FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for "
567 #: ../cat/virt-cat.pod:230 ../cat/virt-filesystems.pod:406 ../cat/virt-ls.pod:525 ../df/virt-df.pod:253 ../edit/virt-edit.pod:386 ../fish/guestfish.pod:1280 ../fish/virt-copy-in.pod:79 ../fish/virt-copy-out.pod:68 ../fish/virt-tar-in.pod:77 ../fish/virt-tar-out.pod:70 ../fuse/guestmount.pod:338 ../inspector/virt-inspector.pod:417 ../rescue/virt-rescue.pod:314 ../resize/virt-resize.pod:653 ../sparsify/virt-sparsify.pod:282 ../test-tool/libguestfs-test-tool.pod:125 ../tools/virt-list-filesystems.pl:226 ../tools/virt-list-partitions.pl:295 ../tools/virt-make-fs.pl:582 ../tools/virt-tar.pl:329 ../tools/virt-win-reg.pl:790
569 "You should have received a copy of the GNU General Public License along with "
570 "this program; if not, write to the Free Software Foundation, Inc., 675 Mass "
571 "Ave, Cambridge, MA 02139, USA."
575 #: ../cat/virt-filesystems.pod:5
577 "virt-filesystems - List filesystems, partitions, block devices, LVM in a "
578 "virtual machine or disk image"
582 #: ../cat/virt-filesystems.pod:9
585 " virt-filesystems [--options] -d domname\n"
590 #: ../cat/virt-filesystems.pod:11
593 " virt-filesystems [--options] -a disk.img [-a disk.img ...]\n"
598 #: ../cat/virt-filesystems.pod:15
600 "This tool allows you to discover filesystems, partitions, logical volumes, "
601 "and their sizes in a disk image or virtual machine. It is a replacement for "
602 "L<virt-list-filesystems(1)> and L<virt-list-partitions(1)>."
606 #: ../cat/virt-filesystems.pod:20
608 "One use for this tool is from shell scripts to iterate over all filesystems "
613 #: ../cat/virt-filesystems.pod:23
616 " for fs in $(virt-filesystems -a disk.img); do\n"
623 #: ../cat/virt-filesystems.pod:27
625 "Another use is to list partitions before using another tool to modify those "
626 "partitions (such as L<virt-resize(1)>). If you are curious about what an "
627 "unknown disk image contains, use this tool along with L<virt-inspector(1)>."
631 #: ../cat/virt-filesystems.pod:32
633 "Various command line options control what this program displays. You need "
634 "to give either I<-a> or I<-d> options to specify the disk image or libvirt "
635 "guest respectively. If you just specify that then the program shows "
636 "filesystems found, one per line, like this:"
640 #: ../cat/virt-filesystems.pod:37
643 " $ virt-filesystems -a disk.img\n"
645 " /dev/vg_guest/lv_root\n"
650 #: ../cat/virt-filesystems.pod:41
651 msgid "If you add I<-l> or I<--long> then the output includes extra information:"
655 #: ../cat/virt-filesystems.pod:44
658 " $ virt-filesystems -a disk.img -l\n"
659 " Name Type VFS Label Size\n"
660 " /dev/sda1 filesystem ext4 boot 524288000\n"
661 " /dev/vg_guest/lv_root filesystem ext4 root 10212081664\n"
666 #: ../cat/virt-filesystems.pod:49
668 "If you add I<--extra> then non-mountable (swap, unknown) filesystems are "
673 #: ../cat/virt-filesystems.pod:52
676 " $ virt-filesystems -a disk.img --extra\n"
678 " /dev/vg_guest/lv_root\n"
679 " /dev/vg_guest/lv_swap\n"
680 " /dev/vg_guest/lv_data\n"
685 #: ../cat/virt-filesystems.pod:58
686 msgid "If you add I<--partitions> then partitions are shown instead of filesystems:"
690 #: ../cat/virt-filesystems.pod:60
693 " $ virt-filesystems -a disk.img --partitions\n"
700 #: ../cat/virt-filesystems.pod:64
702 "Similarly you can use I<--logical-volumes>, I<--volume-groups>, "
703 "I<--physical-volumes>, I<--block-devices> to list those items."
707 #: ../cat/virt-filesystems.pod:67
709 "You can use these options in combination as well (if you want a combination "
710 "including filesystems, you have to add I<--filesystems>). Notice that some "
711 "items fall into several categories (eg. C</dev/sda1> might be both a "
712 "partition and a filesystem). These items are listed several times. To get "
713 "a list which includes absolutely everything that virt-filesystems knows "
714 "about, use the I<--all> option."
718 #: ../cat/virt-filesystems.pod:74
720 "UUIDs (because they are quite long) are not shown by default. Add the "
721 "I<--uuid> option to display device and filesystem UUIDs in the long output."
725 #: ../cat/virt-filesystems.pod:78
727 "I<--all --long --uuid> is a useful combination to display all possible "
728 "information about everything."
732 #: ../cat/virt-filesystems.pod:81
735 " $ virt-filesystems -a win.img --all --long --uuid -h\n"
736 " Name Type VFS Label Size Parent UUID\n"
737 " /dev/sda1 filesystem ntfs System Reserved 100M - F81C92571C92112C\n"
738 " /dev/sda2 filesystem ntfs - 20G - F2E8996AE8992E3B\n"
739 " /dev/sda1 partition - - 100M /dev/sda -\n"
740 " /dev/sda2 partition - - 20G /dev/sda -\n"
741 " /dev/sda device - - 20G - -\n"
746 #: ../cat/virt-filesystems.pod:89
747 msgid "For machine-readable output, use I<--csv> to get Comma-Separated Values."
751 #: ../cat/virt-filesystems.pod:110 ../tools/virt-list-filesystems.pl:121
756 #: ../cat/virt-filesystems.pod:112
758 "Display everything. This is currently the same as specifying these options: "
759 "I<--filesystems>, I<--extra>, I<--partitions>, I<--block-devices>, "
760 "I<--logical-volumes>, I<--volume-groups>, I<--physical-volumes>. (More may "
761 "be added to this list in future)."
765 #: ../cat/virt-filesystems.pod:117
766 msgid "See also I<--long>."
770 #: ../cat/virt-filesystems.pod:119
775 #: ../cat/virt-filesystems.pod:121
776 msgid "B<--block-devices>"
780 #: ../cat/virt-filesystems.pod:123
781 msgid "Display block devices."
785 #: ../cat/virt-filesystems.pod:135 ../cat/virt-ls.pod:301 ../df/virt-df.pod:88
790 #: ../cat/virt-filesystems.pod:137 ../cat/virt-ls.pod:303 ../df/virt-df.pod:90
792 "Write out the results in CSV format (comma-separated values). This format "
793 "can be imported easily into databases and spreadsheets, but read L</NOTE "
794 "ABOUT CSV FORMAT> below."
798 #: ../cat/virt-filesystems.pod:150
800 "When prompting for keys and passphrases, virt-filesystems normally turns "
801 "echoing off so you cannot see what you are typing. If you are not worried "
802 "about Tempest attacks and there is no one else in the room you can specify "
803 "this flag to see what you are typing."
807 #: ../cat/virt-filesystems.pod:155
812 #: ../cat/virt-filesystems.pod:157
814 "This causes filesystems that are not ordinary, mountable filesystems to be "
815 "displayed. This category includes swapspace, and filesystems that are empty "
816 "or contain unknown data."
820 #: ../cat/virt-filesystems.pod:161
821 msgid "This option implies I<--filesystems>."
825 #: ../cat/virt-filesystems.pod:163
826 msgid "B<--filesystems>"
830 #: ../cat/virt-filesystems.pod:165
832 "Display mountable filesystems. If no display option was selected then this "
837 #: ../cat/virt-filesystems.pod:168
838 msgid "With I<--extra>, non-mountable filesystems are shown too."
842 #: ../cat/virt-filesystems.pod:181
845 " virt-filesystems --format=raw -a disk.img\n"
850 #: ../cat/virt-filesystems.pod:185
853 " virt-filesystems --format=raw -a disk.img --format -a another.img\n"
858 #: ../cat/virt-filesystems.pod:194 ../cat/virt-ls.pod:352 ../df/virt-df.pod:125 ../fish/guestfish.pod:156 ../tools/virt-list-partitions.pl:109
863 #: ../cat/virt-filesystems.pod:196 ../cat/virt-ls.pod:354 ../df/virt-df.pod:127 ../tools/virt-list-partitions.pl:111
864 msgid "B<--human-readable>"
868 #: ../cat/virt-filesystems.pod:198
869 msgid "In I<--long> mode, display sizes in human-readable format."
873 #: ../cat/virt-filesystems.pod:205 ../cat/virt-ls.pod:366 ../tools/virt-list-filesystems.pl:108 ../tools/virt-list-partitions.pl:119
878 #: ../cat/virt-filesystems.pod:207 ../cat/virt-ls.pod:368 ../tools/virt-list-filesystems.pl:110 ../tools/virt-list-partitions.pl:121
883 #: ../cat/virt-filesystems.pod:209
884 msgid "Display extra columns of data (\"long format\")."
888 #: ../cat/virt-filesystems.pod:211
889 msgid "A title row is added unless you also specify I<--no-title>."
893 #: ../cat/virt-filesystems.pod:213
895 "The extra columns displayed depend on what output you select, and the "
896 "ordering of columns may change in future versions. Use the title row, "
897 "I<--csv> output and/or L<csvtool(1)> to match columns to data in external "
902 #: ../cat/virt-filesystems.pod:218
904 "Use I<-h> if you want sizes to be displayed in human-readable format. The "
905 "default is to show raw numbers of I<bytes>."
909 #: ../cat/virt-filesystems.pod:221
910 msgid "Use I<--uuid> to display UUIDs too."
914 #: ../cat/virt-filesystems.pod:223
919 #: ../cat/virt-filesystems.pod:225
924 #: ../cat/virt-filesystems.pod:227
925 msgid "B<--logical-volumes>"
929 #: ../cat/virt-filesystems.pod:229
931 "Display LVM logical volumes. In this mode, these are displayed irrespective "
932 "of whether the LVs contain filesystems."
936 #: ../cat/virt-filesystems.pod:232
937 msgid "B<--no-title>"
941 #: ../cat/virt-filesystems.pod:234
942 msgid "In I<--long> mode, don't add a title row."
946 #: ../cat/virt-filesystems.pod:236
948 "Note that the order of the columns is not fixed, and may change in future "
949 "versions of virt-filesystems, so using this option may give you unexpected "
954 #: ../cat/virt-filesystems.pod:240
959 #: ../cat/virt-filesystems.pod:242
960 msgid "B<--partitions>"
964 #: ../cat/virt-filesystems.pod:244
966 "Display partitions. In this mode, these are displayed irrespective of "
967 "whether the partitions contain filesystems."
971 #: ../cat/virt-filesystems.pod:247
976 #: ../cat/virt-filesystems.pod:249
977 msgid "B<--physvols>"
981 #: ../cat/virt-filesystems.pod:251
982 msgid "B<--physical-volumes>"
986 #: ../cat/virt-filesystems.pod:253
987 msgid "Display LVM physical volumes."
991 #: ../cat/virt-filesystems.pod:255 ../df/virt-df.pod:163
996 #: ../cat/virt-filesystems.pod:257
1001 #: ../cat/virt-filesystems.pod:259
1002 msgid "In I<--long> mode, display UUIDs as well."
1006 #: ../cat/virt-filesystems.pod:273
1011 #: ../cat/virt-filesystems.pod:275
1012 msgid "B<--volgroups>"
1016 #: ../cat/virt-filesystems.pod:277
1017 msgid "B<--volume-groups>"
1021 #: ../cat/virt-filesystems.pod:279
1022 msgid "Display LVM volume groups."
1026 #: ../cat/virt-filesystems.pod:287
1031 #: ../cat/virt-filesystems.pod:289
1033 "Note that columns in the output are subject to reordering and change in "
1034 "future versions of this tool."
1038 #: ../cat/virt-filesystems.pod:294
1043 #: ../cat/virt-filesystems.pod:296
1044 msgid "The filesystem, partition, block device or LVM name."
1048 #: ../cat/virt-filesystems.pod:298
1050 "For device and partition names these are displayed as canonical libguestfs "
1051 "names, so that for example C</dev/sda2> is the second partition on the first "
1056 #: ../cat/virt-filesystems.pod:302
1058 "If the I<--long> option is B<not> specified, then only the name column is "
1059 "shown in the output."
1063 #: ../cat/virt-filesystems.pod:305
1068 #: ../cat/virt-filesystems.pod:307
1069 msgid "The object type, for example C<filesystem>, C<lv>, C<device> etc."
1073 #: ../cat/virt-filesystems.pod:309
1078 #: ../cat/virt-filesystems.pod:311
1080 "If there is a filesystem, then this column displays the filesystem type if "
1081 "one could be detected, eg. C<ext4>."
1085 #: ../cat/virt-filesystems.pod:314
1090 #: ../cat/virt-filesystems.pod:316
1092 "If the object has a label (used for identifying and mounting filesystems) "
1093 "then this column contains the label."
1097 #: ../cat/virt-filesystems.pod:319
1102 #: ../cat/virt-filesystems.pod:321
1104 "The size of the object in bytes. If the I<--human> option is used then the "
1105 "size is displayed in a human-readable form."
1109 #: ../cat/virt-filesystems.pod:324
1114 #: ../cat/virt-filesystems.pod:326
1116 "The parent column records the parent relationship between objects. For "
1117 "example, if the object is a partition, then this column contains the name of "
1118 "the containing device. If the object is a logical volume, then this column "
1119 "is the name of the volume group."
1123 #: ../cat/virt-filesystems.pod:331
1128 #: ../cat/virt-filesystems.pod:333
1130 "If the object has a UUID (used for identifying and mounting filesystems and "
1131 "block devices) then this column contains the UUID as a string."
1135 #: ../cat/virt-filesystems.pod:337
1136 msgid "The UUID is only displayed if the I<--uuid> option is given."
1140 #: ../cat/virt-filesystems.pod:341 ../cat/virt-ls.pod:459 ../df/virt-df.pod:191
1141 msgid "NOTE ABOUT CSV FORMAT"
1145 #: ../cat/virt-filesystems.pod:343 ../cat/virt-ls.pod:461 ../df/virt-df.pod:193
1147 "Comma-separated values (CSV) is a deceptive format. It I<seems> like it "
1148 "should be easy to parse, but it is definitely not easy to parse."
1152 #: ../cat/virt-filesystems.pod:346 ../cat/virt-ls.pod:464 ../df/virt-df.pod:196
1154 "Myth: Just split fields at commas. Reality: This does I<not> work "
1155 "reliably. This example has two columns:"
1159 #: ../cat/virt-filesystems.pod:349 ../cat/virt-ls.pod:467 ../df/virt-df.pod:199
1162 " \"foo,bar\",baz\n"
1167 #: ../cat/virt-filesystems.pod:351 ../cat/virt-ls.pod:469 ../df/virt-df.pod:201
1169 "Myth: Read the file one line at a time. Reality: This does I<not> work "
1170 "reliably. This example has one row:"
1174 #: ../cat/virt-filesystems.pod:354 ../cat/virt-ls.pod:472 ../df/virt-df.pod:204
1183 #: ../cat/virt-filesystems.pod:357 ../cat/virt-ls.pod:475 ../df/virt-df.pod:207
1185 "For shell scripts, use C<csvtool> (L<http://merjis.com/developers/csv> also "
1186 "packaged in major Linux distributions)."
1190 #: ../cat/virt-filesystems.pod:360 ../cat/virt-ls.pod:478 ../df/virt-df.pod:210
1192 "For other languages, use a CSV processing library (eg. C<Text::CSV> for Perl "
1193 "or Python's built-in csv library)."
1197 #: ../cat/virt-filesystems.pod:363 ../cat/virt-ls.pod:481 ../df/virt-df.pod:213
1198 msgid "Most spreadsheets and databases can import CSV directly."
1202 #: ../cat/virt-filesystems.pod:379
1204 "L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-df(1)>, "
1205 "L<virt-list-filesystems(1)>, L<virt-list-partitions(1)>, L<csvtool(1)>, "
1206 "L<http://libguestfs.org/>."
1210 #: ../cat/virt-filesystems.pod:394 ../tools/virt-make-fs.pl:570 ../tools/virt-win-reg.pl:778
1211 msgid "Copyright (C) 2010 Red Hat Inc."
1215 #: ../cat/virt-ls.pod:5
1216 msgid "virt-ls - List files in a virtual machine"
1220 #: ../cat/virt-ls.pod:9
1223 " virt-ls [--options] -d domname directory [directory ...]\n"
1228 #: ../cat/virt-ls.pod:11
1231 " virt-ls [--options] -a disk.img [-a disk.img ...] directory [directory "
1237 #: ../cat/virt-ls.pod:13 ../df/virt-df.pod:15 ../rescue/virt-rescue.pod:13
1242 #: ../cat/virt-ls.pod:15
1245 " virt-ls [--options] domname directory\n"
1250 #: ../cat/virt-ls.pod:17
1253 " virt-ls [--options] disk.img [disk.img ...] directory\n"
1258 #: ../cat/virt-ls.pod:21
1260 "C<virt-ls> lists filenames, file sizes, checksums, extended attributes and "
1261 "more from a virtual machine or disk image."
1265 #: ../cat/virt-ls.pod:24
1267 "Multiple directory names can be given, in which case the output from each is "
1272 #: ../cat/virt-ls.pod:27
1274 "To list directories from a libvirt guest use the I<-d> option to specify the "
1275 "name of the guest. For a disk image, use the I<-a> option."
1279 #: ../cat/virt-ls.pod:31
1281 "C<virt-ls> can do many simple file listings. For more complicated cases you "
1282 "may need to use L<guestfish(1)>, or write a program directly to the "
1283 "L<guestfs(3)> API."
1287 #: ../cat/virt-ls.pod:37
1288 msgid "Get a list of all files and directories in a virtual machine:"
1292 #: ../cat/virt-ls.pod:39
1295 " virt-ls -R -d guest /\n"
1300 #: ../cat/virt-ls.pod:41
1301 msgid "List all setuid or setgid programs in a Linux virtual machine:"
1305 #: ../cat/virt-ls.pod:43
1308 " virt-ls -lR -d guest / | grep '^- [42]'\n"
1313 #: ../cat/virt-ls.pod:45
1314 msgid "List all public-writable directories in a Linux virtual machine:"
1318 #: ../cat/virt-ls.pod:47
1321 " virt-ls -lR -d guest / | grep '^d ...7'\n"
1326 #: ../cat/virt-ls.pod:49
1327 msgid "List all Unix domain sockets in a Linux virtual machine:"
1331 #: ../cat/virt-ls.pod:51
1334 " virt-ls -lR -d guest / | grep '^s'\n"
1339 #: ../cat/virt-ls.pod:53
1340 msgid "List all regular files with filenames ending in '.png':"
1344 #: ../cat/virt-ls.pod:55
1347 " virt-ls -lR -d guest / | grep -i '^-.*\\.png$'\n"
1352 #: ../cat/virt-ls.pod:57
1353 msgid "To display files larger than 10MB in home directories:"
1357 #: ../cat/virt-ls.pod:59
1360 " virt-ls -lR -d guest /home | awk '$3 > 10*1024*1024'\n"
1365 #: ../cat/virt-ls.pod:61
1366 msgid "Find everything modified in the last 7 days:"
1370 #: ../cat/virt-ls.pod:63
1373 " virt-ls -lR -d guest --time-days / | awk '$6 <= 7'\n"
1378 #: ../cat/virt-ls.pod:65
1379 msgid "Find regular files modified in the last 24 hours:"
1383 #: ../cat/virt-ls.pod:67
1386 " virt-ls -lR -d guest --time-days / | grep '^-' | awk '$6 < 1'\n"
1391 #: ../cat/virt-ls.pod:69
1392 msgid "DIFFERENCES IN SNAPSHOTS AND BACKING FILES"
1396 #: ../cat/virt-ls.pod:71
1398 "Find the differences between files in a guest and an earlier snapshot of the "
1403 #: ../cat/virt-ls.pod:74
1406 " virt-ls -lR -a snapshot.img / --uids --time-t > old\n"
1407 " virt-ls -lR -a current.img / --uids --time-t > new\n"
1408 " diff -u old new | less\n"
1413 #: ../cat/virt-ls.pod:78
1415 "The commands above won't find files where the content has changed but the "
1416 "metadata (eg. file size and modification date) is the same. To do that, you "
1417 "need to add the I<--checksum> parameter to both C<virt-ls> commands. "
1418 "I<--checksum> can be quite slow since it has to read and compute a checksum "
1419 "of every regular file in the virtual machine."
1423 #: ../cat/virt-ls.pod:84
1424 msgid "OUTPUT MODES"
1428 #: ../cat/virt-ls.pod:86
1430 "C<virt-ls> has four output modes, controlled by different combinations of "
1431 "the I<-l> and I<-R> options."
1435 #: ../cat/virt-ls.pod:89
1436 msgid "SIMPLE LISTING"
1440 #: ../cat/virt-ls.pod:91
1441 msgid "A simple listing is like the ordinary L<ls(1)> command:"
1445 #: ../cat/virt-ls.pod:93
1448 " $ virt-ls -d guest /\n"
1456 #: ../cat/virt-ls.pod:98
1457 msgid "LONG LISTING"
1461 #: ../cat/virt-ls.pod:100
1463 "With the I<-l> (I<--long>) option, the output is like the C<ls -l> command "
1464 "(more specifically, like the C<guestfs_ll> function)."
1468 #: ../cat/virt-ls.pod:103
1471 " $ virt-ls -l -d guest /\n"
1473 " dr-xr-xr-x. 2 root root 4096 2009-08-25 19:06 bin\n"
1474 " dr-xr-xr-x. 5 root root 3072 2009-08-25 19:06 boot\n"
1480 #: ../cat/virt-ls.pod:109
1482 "Note that while this is useful for displaying a directory, do not try "
1483 "parsing this output in another program. Use L</RECURSIVE LONG LISTING> "
1488 #: ../cat/virt-ls.pod:113
1489 msgid "RECURSIVE LISTING"
1493 #: ../cat/virt-ls.pod:115
1495 "With the I<-R> (I<--recursive>) option, C<virt-ls> lists the names of files "
1496 "and directories recursively:"
1500 #: ../cat/virt-ls.pod:118
1503 " $ virt-ls -R -d guest /tmp\n"
1511 #: ../cat/virt-ls.pod:123
1513 "To generate this output, C<virt-ls> runs the C<guestfs_find0> function and "
1514 "converts C<\\0> characters to C<\\n>."
1518 #: ../cat/virt-ls.pod:126
1519 msgid "RECURSIVE LONG LISTING"
1523 #: ../cat/virt-ls.pod:128
1525 "Using I<-lR> options together changes the output to display directories "
1526 "recursively, with file stats, and optionally other features such as "
1527 "checksums and extended attributes."
1531 #: ../cat/virt-ls.pod:132
1533 "Most of the interesting features of C<virt-ls> are only available when using "
1538 #: ../cat/virt-ls.pod:135
1540 "The fields are normally space-separated. Filenames are B<not> quoted, so "
1541 "you cannot use the output in another program (because filenames can contain "
1542 "spaces and other unsafe characters). If the guest was untrusted and someone "
1543 "knew you were using C<virt-ls> to analyze the guest, they could play tricks "
1544 "on you by creating filenames with embedded newline characters. To B<safely> "
1545 "parse the output in another program, use the I<--csv> (Comma-Separated "
1550 #: ../cat/virt-ls.pod:143
1552 "Note that this output format is completely unrelated to the C<ls -lR> "
1557 #: ../cat/virt-ls.pod:146
1560 " $ virt-ls -lR -d guest /bin\n"
1561 " d 0555 4096 /bin\n"
1562 " - 0755 123 /bin/alsaunmute\n"
1563 " - 0755 28328 /bin/arch\n"
1564 " l 0777 4 /bin/awk -> gawk\n"
1565 " - 0755 27216 /bin/basename\n"
1566 " - 0755 943360 /bin/bash\n"
1572 #: ../cat/virt-ls.pod:155
1573 msgid "These basic fields are always shown:"
1577 #: ../cat/virt-ls.pod:159
1582 #: ../cat/virt-ls.pod:161
1584 "The file type, one of: C<-> (regular file), C<d> (directory), C<c> "
1585 "(character device), C<b> (block device), C<p> (named pipe), C<l> (symbolic "
1586 "link), C<s> (socket) or C<u> (unknown)."
1590 #: ../cat/virt-ls.pod:171
1595 #: ../cat/virt-ls.pod:173
1596 msgid "The Unix permissions, displayed as a 4 digit octal number."
1600 #: ../cat/virt-ls.pod:175
1605 #: ../cat/virt-ls.pod:177
1607 "The size of the file. This is shown in bytes unless I<-h> or "
1608 "I<--human-readable> option is given, in which case this is shown as a "
1609 "human-readable number."
1613 #: ../cat/virt-ls.pod:181 ../fish/guestfish-actions.pod:4245
1618 #: ../cat/virt-ls.pod:183
1619 msgid "The full path of the file or directory."
1623 #: ../cat/virt-ls.pod:185
1628 #: ../cat/virt-ls.pod:187
1629 msgid "For symbolic links only, the link target."
1633 #: ../cat/virt-ls.pod:191
1635 "In I<-lR> mode, additional command line options enable the display of more "
1640 #: ../cat/virt-ls.pod:194
1642 "With the I<--uids> flag, these additional fields are displayed before the "
1647 #: ../cat/virt-ls.pod:199
1652 #: ../cat/virt-ls.pod:201
1657 #: ../cat/virt-ls.pod:203
1659 "The UID and GID of the owner of the file (displayed numerically). Note "
1660 "these only make sense in the context of a Unix-like guest."
1664 #: ../cat/virt-ls.pod:208
1665 msgid "With the I<--times> flag, these additional fields are displayed:"
1669 #: ../cat/virt-ls.pod:212
1674 #: ../cat/virt-ls.pod:214
1675 msgid "The time of last access."
1679 #: ../cat/virt-ls.pod:216
1684 #: ../cat/virt-ls.pod:218
1685 msgid "The time of last modification."
1689 #: ../cat/virt-ls.pod:220
1694 #: ../cat/virt-ls.pod:222
1695 msgid "The time of last status change."
1699 #: ../cat/virt-ls.pod:226
1701 "The time fields are displayed as string dates and times, unless one of the "
1702 "I<--time-t>, I<--time-relative> or I<--time-days> flags is given."
1706 #: ../cat/virt-ls.pod:229
1707 msgid "With the I<--extra-stats> flag, these additional fields are displayed:"
1711 #: ../cat/virt-ls.pod:233
1716 #: ../cat/virt-ls.pod:235
1718 "The device containing the file (displayed as major:minor). This may not "
1719 "match devices as known to the guest."
1723 #: ../cat/virt-ls.pod:238
1728 #: ../cat/virt-ls.pod:240
1729 msgid "The inode number."
1733 #: ../cat/virt-ls.pod:242
1738 #: ../cat/virt-ls.pod:244
1739 msgid "The number of hard links."
1743 #: ../cat/virt-ls.pod:246
1748 #: ../cat/virt-ls.pod:248
1749 msgid "For block and char special files, the device (displayed as major:minor)."
1753 #: ../cat/virt-ls.pod:251
1758 #: ../cat/virt-ls.pod:253
1759 msgid "The number of 512 byte blocks allocated to the file."
1763 #: ../cat/virt-ls.pod:257
1765 "With the I<--checksum> flag, the checksum of the file contents is shown "
1766 "(only for regular files). Computing file checksums can take a considerable "
1771 #: ../cat/virt-ls.pod:280
1772 msgid "B<--checksum>"
1776 #: ../cat/virt-ls.pod:282
1777 msgid "B<--checksum=crc|md5|sha1|sha224|sha256|sha384|sha512>"
1781 #: ../cat/virt-ls.pod:284
1783 "Display checksum over file contents for regular files. With no argument, "
1784 "this defaults to using I<md5>. Using an argument, you can select the "
1785 "checksum type to use."
1789 #: ../cat/virt-ls.pod:288 ../cat/virt-ls.pod:325 ../cat/virt-ls.pod:358 ../cat/virt-ls.pod:391 ../cat/virt-ls.pod:401 ../cat/virt-ls.pod:408 ../cat/virt-ls.pod:415 ../cat/virt-ls.pod:422
1791 "This option only has effect in I<-lR> output mode. See L</RECURSIVE LONG "
1796 #: ../cat/virt-ls.pod:316
1798 "When prompting for keys and passphrases, virt-ls normally turns echoing off "
1799 "so you cannot see what you are typing. If you are not worried about Tempest "
1800 "attacks and there is no one else in the room you can specify this flag to "
1801 "see what you are typing."
1805 #: ../cat/virt-ls.pod:321
1806 msgid "B<--extra-stats>"
1810 #: ../cat/virt-ls.pod:323
1811 msgid "Display extra stats."
1815 #: ../cat/virt-ls.pod:339
1818 " virt-ls --format=raw -a disk.img /dir\n"
1823 #: ../cat/virt-ls.pod:343
1826 " virt-ls --format=raw -a disk.img --format -a another.img /dir\n"
1831 #: ../cat/virt-ls.pod:356
1832 msgid "Display file sizes in human-readable format."
1836 #: ../cat/virt-ls.pod:370
1841 #: ../cat/virt-ls.pod:372
1842 msgid "B<--recursive>"
1846 #: ../cat/virt-ls.pod:374
1848 "Select the mode. With neither of these options, C<virt-ls> produces a "
1849 "simple, flat list of the files in the named directory. See L</SIMPLE "
1854 #: ../cat/virt-ls.pod:378
1856 "C<virt-ls -l> produces a \"long listing\", which shows more detail. See "
1861 #: ../cat/virt-ls.pod:381
1863 "C<virt-ls -R> produces a recursive list of files starting at the named "
1864 "directory. See L</RECURSIVE LISTING>."
1868 #: ../cat/virt-ls.pod:384
1870 "C<virt-ls -lR> produces a recursive long listing which can be more easily "
1871 "parsed. See L</RECURSIVE LONG LISTING>."
1875 #: ../cat/virt-ls.pod:387
1880 #: ../cat/virt-ls.pod:389
1881 msgid "Display time fields."
1885 #: ../cat/virt-ls.pod:394
1886 msgid "B<--time-days>"
1890 #: ../cat/virt-ls.pod:396
1891 msgid "Display time fields as days before now (negative if in the future)."
1895 #: ../cat/virt-ls.pod:398
1897 "Note that C<0> in output means \"up to 1 day before now\", or that the age "
1898 "of the file is between 0 and 86399 seconds."
1902 #: ../cat/virt-ls.pod:404
1903 msgid "B<--time-relative>"
1907 #: ../cat/virt-ls.pod:406
1908 msgid "Display time fields as seconds before now (negative if in the future)."
1912 #: ../cat/virt-ls.pod:411
1917 #: ../cat/virt-ls.pod:413
1918 msgid "Display time fields as seconds since the Unix epoch."
1922 #: ../cat/virt-ls.pod:418
1927 #: ../cat/virt-ls.pod:420
1928 msgid "Display UID and GID fields."
1932 #: ../cat/virt-ls.pod:445
1933 msgid "Previous versions of virt-ls allowed you to write either:"
1937 #: ../cat/virt-ls.pod:447
1940 " virt-ls disk.img [disk.img ...] /dir\n"
1945 #: ../cat/virt-ls.pod:451
1948 " virt-ls guestname /dir\n"
1953 #: ../cat/virt-ls.pod:497
1955 "L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-copy-out(1)>, "
1956 "L<virt-tar-out(1)>, L<Sys::Guestfs(3)>, L<Sys::Guestfs::Lib(3)>, "
1957 "L<Sys::Virt(3)>, L<http://libguestfs.org/>."
1961 #: ../cat/virt-ls.pod:513 ../df/virt-df.pod:241 ../edit/virt-edit.pod:374 ../rescue/virt-rescue.pod:302
1962 msgid "Copyright (C) 2009-2011 Red Hat Inc."
1966 #: ../df/virt-df.pod:5
1967 msgid "virt-df - Display free space on virtual filesystems"
1971 #: ../df/virt-df.pod:9
1974 " virt-df [--options]\n"
1979 #: ../df/virt-df.pod:11
1982 " virt-df [--options] -d domname\n"
1987 #: ../df/virt-df.pod:13
1990 " virt-df [--options] -a disk.img [-a disk.img ...]\n"
1995 #: ../df/virt-df.pod:17
1998 " virt-df [--options] domname\n"
2003 #: ../df/virt-df.pod:19
2006 " virt-df [--options] disk.img [disk.img ...]\n"
2011 #: ../df/virt-df.pod:23
2013 "C<virt-df> is a command line tool to display free space on virtual machine "
2014 "filesystems. Unlike other tools, it doesn't just display the size of disk "
2015 "allocated to a virtual machine, but can look inside disk images to see how "
2016 "much space is really being used."
2020 #: ../df/virt-df.pod:28
2022 "If used without any I<-a> or I<-d> arguments, C<virt-df> checks with libvirt "
2023 "to get a list of all active and inactive guests, and performs a C<df>-type "
2024 "operation on each one in turn, printing out the results."
2028 #: ../df/virt-df.pod:32
2030 "If any I<-a> or I<-d> arguments are specified, C<virt-df> performs a "
2031 "C<df>-type operation on either the single named libvirt domain, or on the "
2032 "disk image(s) listed on the command line (which must all belong to a single "
2033 "VM). In this mode (with arguments), C<virt-df> will I<only work for a "
2034 "single guest>. If you want to run on multiple guests, then you have to "
2035 "invoke C<virt-df> multiple times."
2039 #: ../df/virt-df.pod:39
2041 "Use the I<--csv> option to get a format which can be easily parsed by other "
2042 "programs. Other options are similar to the standard L<df(1)> command."
2046 #: ../df/virt-df.pod:45
2048 "Show disk usage for a single libvirt guest called C<F14x64>. Make the "
2049 "output human-readable:"
2053 #: ../df/virt-df.pod:48
2056 " # virt-df -d F14x64 -h\n"
2057 " Filesystem Size Used Available Use%\n"
2058 " F14x64:/dev/sda1 484M 66M 393M 14%\n"
2059 " F14x64:/dev/vg_f13x64/lv_root 7.4G 3.4G 4.0G 46%\n"
2064 #: ../df/virt-df.pod:53
2065 msgid "Show disk usage for a disk image file called C<test.img>:"
2069 #: ../df/virt-df.pod:55
2072 " $ virt-df -a test1.img\n"
2073 " Filesystem 1K-blocks Used Available Use%\n"
2074 " test1.img:/dev/sda1 99099 1551 92432 2%\n"
2079 #: ../df/virt-df.pod:112
2082 " virt-df --format=raw -a disk.img\n"
2087 #: ../df/virt-df.pod:116
2090 " virt-df --format=raw -a disk.img --format -a another.img\n"
2095 #: ../df/virt-df.pod:129
2096 msgid "Print sizes in human-readable format."
2100 #: ../df/virt-df.pod:131
2101 msgid "You are not allowed to use I<-h> and I<--csv> at the same time."
2105 #: ../df/virt-df.pod:133 ../fish/guestfish.pod:258 ../fuse/guestmount.pod:155
2110 #: ../df/virt-df.pod:135
2115 #: ../df/virt-df.pod:137
2116 msgid "Print inodes instead of blocks."
2120 #: ../df/virt-df.pod:139
2121 msgid "B<--one-per-guest>"
2125 #: ../df/virt-df.pod:141
2127 "Run one libguestfs appliance per guest. Normally C<virt-df> will add the "
2128 "disks from several guests to a single libguestfs appliance."
2132 #: ../df/virt-df.pod:144
2133 msgid "You might use this option in the following circumstances:"
2137 #: ../df/virt-df.pod:148 ../df/virt-df.pod:154 ../edit/virt-edit.pod:266 ../edit/virt-edit.pod:271 ../edit/virt-edit.pod:276 ../edit/virt-edit.pod:287 ../edit/virt-edit.pod:291 ../examples/guestfs-recipes.pod:98 ../examples/guestfs-recipes.pod:102 ../examples/guestfs-recipes.pod:106 ../examples/guestfs-recipes.pod:132 ../examples/guestfs-recipes.pod:137 ../examples/guestfs-recipes.pod:227 ../examples/guestfs-recipes.pod:231 ../examples/guestfs-recipes.pod:235 ../examples/guestfs-recipes.pod:239 ../examples/guestfs-recipes.pod:243 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:390 ../fish/guestfish-actions.pod:398 ../fish/guestfish-actions.pod:405 ../fish/guestfish-actions.pod:412 ../fish/guestfish-actions.pod:1139 ../fish/guestfish-actions.pod:1143 ../fish/guestfish-actions.pod:1147 ../fish/guestfish-actions.pod:1151 ../fish/guestfish-actions.pod:1159 ../fish/guestfish-actions.pod:1163 ../fish/guestfish-actions.pod:1167 ../fish/guestfish-actions.pod:1177 ../fish/guestfish-actions.pod:1181 ../fish/guestfish-actions.pod:1185 ../fish/guestfish-actions.pod:1275 ../fish/guestfish-actions.pod:1279 ../fish/guestfish-actions.pod:1284 ../fish/guestfish-actions.pod:1289 ../fish/guestfish-actions.pod:1331 ../fish/guestfish-actions.pod:1335 ../fish/guestfish-actions.pod:1340 ../fish/guestfish-actions.pod:1596 ../fish/guestfish-actions.pod:1603 ../fish/guestfish-actions.pod:1610 ../fish/guestfish-actions.pod:2005 ../fish/guestfish-actions.pod:2011 ../fish/guestfish-actions.pod:2019 ../fish/guestfish-actions.pod:2026 ../fish/guestfish-actions.pod:2033 ../fish/guestfish.pod:445 ../fish/guestfish.pod:449 ../fish/guestfish.pod:453 ../fish/guestfish.pod:457 ../inspector/virt-inspector.pod:393 ../inspector/virt-inspector.pod:397 ../resize/virt-resize.pod:282 ../resize/virt-resize.pod:286 ../resize/virt-resize.pod:295 ../resize/virt-resize.pod:301 ../sparsify/virt-sparsify.pod:32 ../sparsify/virt-sparsify.pod:39 ../sparsify/virt-sparsify.pod:43 ../sparsify/virt-sparsify.pod:49 ../sparsify/virt-sparsify.pod:54 ../sparsify/virt-sparsify.pod:58 ../sparsify/virt-sparsify.pod:64 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:29 ../src/guestfs-actions.pod:588 ../src/guestfs-actions.pod:596 ../src/guestfs-actions.pod:603 ../src/guestfs-actions.pod:610 ../src/guestfs-actions.pod:1778 ../src/guestfs-actions.pod:1782 ../src/guestfs-actions.pod:1786 ../src/guestfs-actions.pod:1790 ../src/guestfs-actions.pod:1798 ../src/guestfs-actions.pod:1802 ../src/guestfs-actions.pod:1806 ../src/guestfs-actions.pod:1816 ../src/guestfs-actions.pod:1820 ../src/guestfs-actions.pod:1824 ../src/guestfs-actions.pod:1962 ../src/guestfs-actions.pod:1966 ../src/guestfs-actions.pod:1971 ../src/guestfs-actions.pod:1976 ../src/guestfs-actions.pod:2037 ../src/guestfs-actions.pod:2041 ../src/guestfs-actions.pod:2046 ../src/guestfs-actions.pod:2461 ../src/guestfs-actions.pod:2468 ../src/guestfs-actions.pod:2475 ../src/guestfs-actions.pod:3012 ../src/guestfs-actions.pod:3018 ../src/guestfs-actions.pod:3026 ../src/guestfs-actions.pod:3033 ../src/guestfs-actions.pod:3040 ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:398 ../src/guestfs.pod:402 ../src/guestfs.pod:407 ../src/guestfs.pod:411 ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1094 ../src/guestfs.pod:1098 ../src/guestfs.pod:1102 ../src/guestfs.pod:1107 ../src/guestfs.pod:1115 ../src/guestfs.pod:1134 ../src/guestfs.pod:1142 ../src/guestfs.pod:1164 ../src/guestfs.pod:1168 ../src/guestfs.pod:1172 ../src/guestfs.pod:1176 ../src/guestfs.pod:1180 ../src/guestfs.pod:1184 ../src/guestfs.pod:1674 ../src/guestfs.pod:1679 ../src/guestfs.pod:1683 ../src/guestfs.pod:1785 ../src/guestfs.pod:1790 ../src/guestfs.pod:1794 ../src/guestfs.pod:1804 ../src/guestfs.pod:2093 ../src/guestfs.pod:2098 ../src/guestfs.pod:2104 ../src/guestfs.pod:2112 ../src/guestfs.pod:2559 ../src/guestfs.pod:2565 ../src/guestfs.pod:2570 ../src/guestfs.pod:2576 ../src/guestfs.pod:2959 ../src/guestfs.pod:2964 ../src/guestfs.pod:2968 ../src/guestfs.pod:2972 ../src/guestfs.pod:2976 ../src/guestfs.pod:2990 ../src/guestfs.pod:2995 ../src/guestfs.pod:3223 ../src/guestfs.pod:3227 ../src/guestfs.pod:3231 ../src/guestfs.pod:3235 ../tools/virt-win-reg.pl:197 ../tools/virt-win-reg.pl:202 ../tools/virt-win-reg.pl:208 ../tools/virt-win-reg.pl:710 ../tools/virt-win-reg.pl:716 ../tools/virt-win-reg.pl:722
2142 #: ../df/virt-df.pod:150
2144 "If you think an untrusted guest might actively try to exploit the libguestfs "
2145 "appliance kernel, then this prevents one guest from interfering with the "
2146 "stats printed for another guest."
2150 #: ../df/virt-df.pod:156
2152 "If the kernel has a bug which stops it from accessing a filesystem in one "
2153 "guest (see for example RHBZ#635373) then this allows libguestfs to continue "
2154 "and report stats for further guests."
2158 #: ../df/virt-df.pod:165
2160 "Print UUIDs instead of names. This is useful for following a guest even "
2161 "when the guest is migrated or renamed, or when two guests happen to have the "
2166 #: ../df/virt-df.pod:169
2168 "Note that only domains that we fetch from libvirt come with UUIDs. For disk "
2169 "images, we still print the disk image name even when this option is "
2174 #: ../df/virt-df.pod:229
2176 "L<df(1)>, L<guestfs(3)>, L<guestfish(1)>, L<virt-filesystems(1)>, "
2177 "L<http://libguestfs.org/>."
2181 #: ../edit/virt-edit.pod:5
2182 msgid "virt-edit - Edit a file in a virtual machine"
2186 #: ../edit/virt-edit.pod:9
2189 " virt-edit [--options] -d domname file [file ...]\n"
2194 #: ../edit/virt-edit.pod:11
2197 " virt-edit [--options] -a disk.img [-a disk.img ...] file [file ...]\n"
2202 #: ../edit/virt-edit.pod:13
2205 " virt-edit [-d domname|-a disk.img] file -e 'expr'\n"
2210 #: ../edit/virt-edit.pod:17
2213 " virt-edit domname file\n"
2218 #: ../edit/virt-edit.pod:19 ../edit/virt-edit.pod:183
2221 " virt-edit disk.img [disk.img ...] file\n"
2226 #: ../edit/virt-edit.pod:21 ../fish/guestfish.pod:23 ../fish/virt-copy-in.pod:13 ../fish/virt-tar-in.pod:15 ../fuse/guestmount.pod:15 ../rescue/virt-rescue.pod:19 ../tools/virt-tar.pl:64 ../tools/virt-win-reg.pl:51
2231 #: ../edit/virt-edit.pod:23
2233 "You must I<not> use C<virt-edit> on live virtual machines. If you do this, "
2234 "you risk disk corruption in the VM. C<virt-edit> tries to stop you from "
2235 "doing this, but doesn't catch all cases."
2239 #: ../edit/virt-edit.pod:29
2241 "C<virt-edit> is a command line tool to edit C<file> where each C<file> "
2242 "exists in the named virtual machine (or disk image)."
2246 #: ../edit/virt-edit.pod:32
2248 "Multiple filenames can be given, in which case they are each edited in "
2249 "turn. Each filename must be a full path, starting at the root directory "
2250 "(starting with '/')."
2254 #: ../edit/virt-edit.pod:36
2255 msgid "If you want to just view a file, use L<virt-cat(1)>."
2259 #: ../edit/virt-edit.pod:38
2261 "For more complex cases you should look at the L<guestfish(1)> tool (see "
2262 "L</USING GUESTFISH> below)."
2266 #: ../edit/virt-edit.pod:41
2268 "C<virt-edit> cannot be used to create a new file. L<guestfish(1)> can do "
2269 "that and much more."
2273 #: ../edit/virt-edit.pod:46
2274 msgid "Edit the named files interactively:"
2278 #: ../edit/virt-edit.pod:48
2281 " virt-edit -d mydomain /boot/grub/grub.conf\n"
2286 #: ../edit/virt-edit.pod:50
2289 " virt-edit -d mydomain /etc/passwd\n"
2294 #: ../edit/virt-edit.pod:52
2295 msgid "For Windows guests, some Windows paths are understood:"
2299 #: ../edit/virt-edit.pod:54
2302 " virt-edit -d mywindomain 'c:\\autoexec.bat'\n"
2307 #: ../edit/virt-edit.pod:56
2309 "If Perl is installed, you can also edit files non-interactively (see "
2310 "L</NON-INTERACTIVE EDITING> below). To change the init default level to 5:"
2314 #: ../edit/virt-edit.pod:60
2317 " virt-edit -d mydomain /etc/inittab -e 's/^id:.*/id:5:initdefault:/'\n"
2322 #: ../edit/virt-edit.pod:81
2323 msgid "B<-b> extension"
2327 #: ../edit/virt-edit.pod:83
2328 msgid "B<--backup> extension"
2332 #: ../edit/virt-edit.pod:85
2334 "Create a backup of the original file I<in the guest disk image>. The backup "
2335 "has the original filename with C<extension> added."
2339 #: ../edit/virt-edit.pod:88
2341 "Usually the first character of C<extension> would be a dot C<.> so you would "
2346 #: ../edit/virt-edit.pod:91
2349 " virt-edit -b .orig [etc]\n"
2354 #: ../edit/virt-edit.pod:93
2355 msgid "By default, no backup file is made."
2359 #: ../edit/virt-edit.pod:95 ../fish/guestfish.pod:181 ../fuse/guestmount.pod:96 ../inspector/virt-inspector.pod:74 ../tools/virt-list-filesystems.pl:77 ../tools/virt-list-partitions.pl:78 ../tools/virt-tar.pl:127 ../tools/virt-win-reg.pl:128
2364 #: ../edit/virt-edit.pod:97 ../fish/guestfish.pod:183 ../fuse/guestmount.pod:98 ../inspector/virt-inspector.pod:76 ../tools/virt-list-filesystems.pl:79 ../tools/virt-list-partitions.pl:80 ../tools/virt-tar.pl:129 ../tools/virt-win-reg.pl:130
2365 msgid "B<--connect URI>"
2369 #: ../edit/virt-edit.pod:102 ../tools/virt-list-filesystems.pl:84 ../tools/virt-list-partitions.pl:85 ../tools/virt-tar.pl:134 ../tools/virt-win-reg.pl:135
2371 "If you specify guest block devices directly, then libvirt is not used at "
2376 #: ../edit/virt-edit.pod:114
2378 "When prompting for keys and passphrases, virt-edit normally turns echoing "
2379 "off so you cannot see what you are typing. If you are not worried about "
2380 "Tempest attacks and there is no one else in the room you can specify this "
2381 "flag to see what you are typing."
2385 #: ../edit/virt-edit.pod:119
2390 #: ../edit/virt-edit.pod:121
2391 msgid "B<--expr> EXPR"
2395 #: ../edit/virt-edit.pod:123
2397 "Instead of launching the external editor, non-interactively apply the Perl "
2398 "expression C<EXPR> to each line in the file. See L</NON-INTERACTIVE "
2403 #: ../edit/virt-edit.pod:127
2405 "Be careful to properly quote the expression to prevent it from being altered "
2410 #: ../edit/virt-edit.pod:130
2411 msgid "Note that this option is only available when Perl 5 is installed."
2415 #: ../edit/virt-edit.pod:132
2416 msgid "B<--format> raw|qcow2|..."
2420 #: ../edit/virt-edit.pod:143
2423 " virt-edit --format=raw -a disk.img file\n"
2428 #: ../edit/virt-edit.pod:147
2431 " virt-edit --format=raw -a disk.img --format -a another.img file\n"
2436 #: ../edit/virt-edit.pod:181
2437 msgid "Previous versions of virt-edit allowed you to write either:"
2441 #: ../edit/virt-edit.pod:187
2444 " virt-edit guestname file\n"
2449 #: ../edit/virt-edit.pod:195
2450 msgid "NON-INTERACTIVE EDITING"
2454 #: ../edit/virt-edit.pod:197
2456 "C<virt-edit> normally calls out to C<$EDITOR> (or vi) so the system "
2457 "administrator can interactively edit the file."
2461 #: ../edit/virt-edit.pod:200
2463 "There are two ways also to use C<virt-edit> from scripts in order to make "
2464 "automated edits to files. (Note that although you I<can> use C<virt-edit> "
2465 "like this, it's less error-prone to write scripts directly using the "
2466 "libguestfs API and Augeas for configuration file editing.)"
2470 #: ../edit/virt-edit.pod:206
2472 "The first method is to temporarily set C<$EDITOR> to any script or program "
2473 "you want to run. The script is invoked as C<$EDITOR tmpfile> and it should "
2474 "update C<tmpfile> in place however it likes."
2478 #: ../edit/virt-edit.pod:210
2480 "The second method is to use the I<-e> parameter of C<virt-edit> to run a "
2481 "short Perl snippet in the style of L<sed(1)>. For example to replace all "
2482 "instances of C<foo> with C<bar> in a file:"
2486 #: ../edit/virt-edit.pod:214
2489 " virt-edit -d domname filename -e 's/foo/bar/'\n"
2494 #: ../edit/virt-edit.pod:216
2496 "The full power of Perl regular expressions can be used (see L<perlre(1)>). "
2497 "For example to delete root's password you could do:"
2501 #: ../edit/virt-edit.pod:219
2504 " virt-edit -d domname /etc/passwd -e 's/^root:.*?:/root::/'\n"
2509 #: ../edit/virt-edit.pod:221
2511 "What really happens is that the snippet is evaluated as a Perl expression "
2512 "for each line of the file. The line, including the final C<\\n>, is passed "
2513 "in C<$_> and the expression should update C<$_> or leave it unchanged."
2517 #: ../edit/virt-edit.pod:226
2519 "To delete a line, set C<$_> to the empty string. For example, to delete the "
2520 "C<apache> user account from the password file you can do:"
2524 #: ../edit/virt-edit.pod:229
2527 " virt-edit -d mydomain /etc/passwd -e '$_ = \"\" if /^apache:/'\n"
2532 #: ../edit/virt-edit.pod:231
2534 "To insert a line, prepend or append it to C<$_>. However appending lines to "
2535 "the end of the file is rather difficult this way since there is no concept "
2536 "of \"last line of the file\" - your expression just doesn't get called "
2537 "again. You might want to use the first method (setting C<$EDITOR>) if you "
2542 #: ../edit/virt-edit.pod:237
2544 "The variable C<$lineno> contains the current line number. As is "
2545 "traditional, the first line in the file is number C<1>."
2549 #: ../edit/virt-edit.pod:240
2551 "The return value from the expression is ignored, but the expression may call "
2552 "C<die> in order to abort the whole program, leaving the original file "
2557 #: ../edit/virt-edit.pod:244
2559 "Remember when matching the end of a line that C<$_> may contain the final "
2560 "C<\\n>, or (for DOS files) C<\\r\\n>, or if the file does not end with a "
2561 "newline then neither of these. Thus to match or substitute some text at the "
2562 "end of a line, use this regular expression:"
2566 #: ../edit/virt-edit.pod:249
2569 " /some text(\\r?\\n)?$/\n"
2574 #: ../edit/virt-edit.pod:251
2576 "Alternately, use the perl C<chomp> function, being careful not to chomp "
2577 "C<$_> itself (since that would remove all newlines from the file):"
2581 #: ../edit/virt-edit.pod:255
2584 " my $m = $_; chomp $m; $m =~ /some text$/\n"
2589 #: ../edit/virt-edit.pod:257 ../fish/guestfish.pod:858
2590 msgid "WINDOWS PATHS"
2594 #: ../edit/virt-edit.pod:259
2596 "C<virt-edit> has a limited ability to understand Windows drive letters and "
2597 "paths (eg. C<E:\\foo\\bar.txt>)."
2601 #: ../edit/virt-edit.pod:262
2602 msgid "If and only if the guest is running Windows then:"
2606 #: ../edit/virt-edit.pod:268
2608 "Drive letter prefixes like C<C:> are resolved against the Windows Registry "
2609 "to the correct filesystem."
2613 #: ../edit/virt-edit.pod:273
2615 "Any backslash (C<\\>) characters in the path are replaced with forward "
2616 "slashes so that libguestfs can process it."
2620 #: ../edit/virt-edit.pod:278
2622 "The path is resolved case insensitively to locate the file that should be "
2627 #: ../edit/virt-edit.pod:283
2628 msgid "There are some known shortcomings:"
2632 #: ../edit/virt-edit.pod:289
2633 msgid "Some NTFS symbolic links may not be followed correctly."
2637 #: ../edit/virt-edit.pod:293
2638 msgid "NTFS junction points that cross filesystems are not followed."
2642 #: ../edit/virt-edit.pod:299
2644 "L<guestfish(1)> is a more powerful, lower level tool which you can use when "
2645 "C<virt-edit> doesn't work."
2649 #: ../edit/virt-edit.pod:302
2650 msgid "Using C<virt-edit> is approximately equivalent to doing:"
2654 #: ../edit/virt-edit.pod:304
2657 " guestfish --rw -i -d domname edit /file\n"
2662 #: ../edit/virt-edit.pod:306
2664 "where C<domname> is the name of the libvirt guest, and C</file> is the full "
2669 #: ../edit/virt-edit.pod:309
2671 "The command above uses libguestfs's guest inspection feature and so does not "
2672 "work on guests that libguestfs cannot inspect, or on things like arbitrary "
2673 "disk images that don't contain guests. To edit a file on a disk image "
2678 #: ../edit/virt-edit.pod:314
2681 " guestfish --rw -a disk.img -m /dev/sda1 edit /file\n"
2686 #: ../edit/virt-edit.pod:316
2688 "where C<disk.img> is the disk image, C</dev/sda1> is the filesystem within "
2689 "the disk image to edit, and C</file> is the full path to the file."
2693 #: ../edit/virt-edit.pod:320
2695 "C<virt-edit> cannot create new files. Use the guestfish commands C<touch>, "
2696 "C<write> or C<upload> instead:"
2700 #: ../edit/virt-edit.pod:323
2703 " guestfish --rw -i -d domname touch /newfile\n"
2708 #: ../edit/virt-edit.pod:325
2711 " guestfish --rw -i -d domname write /newfile \"new content\"\n"
2716 #: ../edit/virt-edit.pod:327
2719 " guestfish --rw -i -d domname upload localfile /newfile\n"
2724 #: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1086 ../rescue/virt-rescue.pod:261 ../sparsify/virt-sparsify.pod:232 ../src/guestfs.pod:3106 ../test-tool/libguestfs-test-tool.pod:95
2725 msgid "ENVIRONMENT VARIABLES"
2729 #: ../edit/virt-edit.pod:333
2734 #: ../edit/virt-edit.pod:335
2736 "If set, this string is used as the editor. It may contain arguments, "
2737 "eg. C<\"emacs -nw\">"
2741 #: ../edit/virt-edit.pod:338
2742 msgid "If not set, C<vi> is used."
2746 #: ../edit/virt-edit.pod:356
2748 "L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-copy-in(1)>, "
2749 "L<virt-tar-in(1)>, L<Sys::Guestfs(3)>, L<Sys::Guestfs::Lib(3)>, "
2750 "L<Sys::Virt(3)>, L<http://libguestfs.org/>, L<perl(1)>, L<perlre(1)>."
2754 #: ../erlang/examples/guestfs-erlang.pod:5
2755 msgid "guestfs-erlang - How to use libguestfs from Erlang"
2759 #: ../erlang/examples/guestfs-erlang.pod:9
2762 " {ok, G} = guestfs:create(),\n"
2763 " ok = guestfs:add_drive_opts(G, Disk,\n"
2764 " [{format, \"raw\"}, {readonly, true}]),\n"
2765 " ok = guestfs:launch(G),\n"
2766 " [Device] = guestfs:list_devices(G),\n"
2767 " ok = guestfs:close(G).\n"
2772 #: ../erlang/examples/guestfs-erlang.pod:18
2774 "This manual page documents how to call libguestfs from the Erlang "
2775 "programming language. This page just documents the differences from the C "
2776 "API and gives some examples. If you are not familiar with using libguestfs, "
2777 "you also need to read L<guestfs(3)>."
2781 #: ../erlang/examples/guestfs-erlang.pod:23
2782 msgid "OPENING AND CLOSING THE HANDLE"
2786 #: ../erlang/examples/guestfs-erlang.pod:25
2788 "The Erlang bindings are implemented using an external program called "
2789 "C<erl-guestfs>. This program must be on the current PATH, or else you "
2790 "should specify the full path to the program:"
2794 #: ../erlang/examples/guestfs-erlang.pod:29
2797 " {ok, G} = guestfs:create().\n"
2802 #: ../erlang/examples/guestfs-erlang.pod:31
2805 " {ok, G} = guestfs:create(\"/path/to/erl-guestfs\").\n"
2810 #: ../erlang/examples/guestfs-erlang.pod:33
2811 msgid "C<G> is the libguestfs handle which you should pass to other functions."
2815 #: ../erlang/examples/guestfs-erlang.pod:36
2816 msgid "To close the handle:"
2820 #: ../erlang/examples/guestfs-erlang.pod:38
2823 " ok = guestfs:close(G).\n"
2828 #: ../erlang/examples/guestfs-erlang.pod:40
2829 msgid "FUNCTIONS WITH OPTIONAL ARGUMENTS"
2833 #: ../erlang/examples/guestfs-erlang.pod:42
2835 "For functions that take optional arguments, the first arguments are the "
2836 "non-optional ones. The last argument is a list of tuples supplying the "
2837 "remaining optional arguments."
2841 #: ../erlang/examples/guestfs-erlang.pod:46
2844 " ok = guestfs:add_drive_opts(G, Disk,\n"
2845 " [{format, \"raw\"}, {readonly, true}]).\n"
2850 #: ../erlang/examples/guestfs-erlang.pod:49
2851 msgid "If the last argument would be an empty list, you can also omit it:"
2855 #: ../erlang/examples/guestfs-erlang.pod:51
2858 " ok = guestfs:add_drive_opts(G, Disk).\n"
2863 #: ../erlang/examples/guestfs-erlang.pod:53
2864 msgid "RETURN VALUES AND ERRORS"
2868 #: ../erlang/examples/guestfs-erlang.pod:55
2870 "On success, most functions return a C<Result> term (which could be a list, "
2871 "string, tuple etc.). If there is nothing for the function to return, then "
2872 "the atom C<ok> is returned."
2876 #: ../erlang/examples/guestfs-erlang.pod:59
2877 msgid "On error, you would see one of the following tuples:"
2881 #: ../erlang/examples/guestfs-erlang.pod:63
2882 msgid "C<{error, Msg, Errno}>"
2886 #: ../erlang/examples/guestfs-erlang.pod:65
2887 msgid "This indicates an ordinary error from the function."
2891 #: ../erlang/examples/guestfs-erlang.pod:67
2893 "C<Msg> is the error message (string) and C<Errno> is the Unix error "
2898 #: ../erlang/examples/guestfs-erlang.pod:70
2899 msgid "C<Errno> can be zero. See L<guestfs(3)/guestfs_last_errno>."
2903 #: ../erlang/examples/guestfs-erlang.pod:72
2904 msgid "C<{unknown, Function}>"
2908 #: ../erlang/examples/guestfs-erlang.pod:74
2910 "This indicates that the function you called is not known. Generally this "
2911 "means you are mixing C<erl-guestfs> from another version of libguestfs, "
2912 "which you should not do."
2916 #: ../erlang/examples/guestfs-erlang.pod:78
2917 msgid "C<Function> is the name of the unknown function."
2921 #: ../erlang/examples/guestfs-erlang.pod:80
2922 msgid "C<{unknownarg, Arg}>"
2926 #: ../erlang/examples/guestfs-erlang.pod:82
2928 "This indicates that you called a function with optional arguments, with an "
2929 "unknown argument name."
2933 #: ../erlang/examples/guestfs-erlang.pod:85
2934 msgid "C<Arg> is the name of the unknown argument."
2938 #: ../erlang/examples/guestfs-erlang.pod:89 ../examples/guestfs-examples.pod:25 ../java/examples/guestfs-java.pod:37 ../ocaml/examples/guestfs-ocaml.pod:70 ../perl/examples/guestfs-perl.pod:31 ../python/examples/guestfs-python.pod:34 ../ruby/examples/guestfs-ruby.pod:28
2939 msgid "EXAMPLE 1: CREATE A DISK IMAGE"
2943 #: ../erlang/examples/guestfs-erlang.pod:91 ../examples/guestfs-examples.pod:27 ../java/examples/guestfs-java.pod:39 ../ocaml/examples/guestfs-ocaml.pod:72 ../perl/examples/guestfs-perl.pod:33 ../python/examples/guestfs-python.pod:36 ../ruby/examples/guestfs-ruby.pod:30
2948 #: ../erlang/examples/guestfs-erlang.pod:93 ../examples/guestfs-examples.pod:29 ../java/examples/guestfs-java.pod:41 ../ocaml/examples/guestfs-ocaml.pod:74 ../perl/examples/guestfs-perl.pod:35 ../python/examples/guestfs-python.pod:38 ../ruby/examples/guestfs-ruby.pod:32
2949 msgid "EXAMPLE 2: INSPECT A VIRTUAL MACHINE DISK IMAGE"
2953 #: ../erlang/examples/guestfs-erlang.pod:95 ../examples/guestfs-examples.pod:31 ../java/examples/guestfs-java.pod:43 ../ocaml/examples/guestfs-ocaml.pod:76 ../perl/examples/guestfs-perl.pod:37 ../python/examples/guestfs-python.pod:40 ../ruby/examples/guestfs-ruby.pod:34
2958 #: ../erlang/examples/guestfs-erlang.pod:99
2960 "L<guestfs(3)>, L<guestfs-examples(3)>, L<guestfs-java(3)>, "
2961 "L<guestfs-ocaml(3)>, L<guestfs-perl(3)>, L<guestfs-python(3)>, "
2962 "L<guestfs-recipes(1)>, L<guestfs-ruby(3)>, L<http://www.erlang.org/>. "
2963 "L<http://libguestfs.org/>."
2967 #: ../erlang/examples/guestfs-erlang.pod:110 ../examples/guestfs-examples.pod:45 ../examples/guestfs-recipes.pod:397 ../fish/guestfish.pod:1261 ../fish/virt-copy-in.pod:60 ../fish/virt-copy-out.pod:49 ../fish/virt-tar-in.pod:58 ../fish/virt-tar-out.pod:51 ../fuse/guestmount.pod:319 ../inspector/virt-inspector.pod:389 ../java/examples/guestfs-java.pod:58 ../ocaml/examples/guestfs-ocaml.pod:91 ../perl/examples/guestfs-perl.pod:52 ../python/examples/guestfs-python.pod:54 ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3242 ../test-tool/libguestfs-test-tool.pod:106
2972 #: ../erlang/examples/guestfs-erlang.pod:112 ../examples/guestfs-examples.pod:47 ../examples/guestfs-recipes.pod:399 ../fish/guestfish.pod:1263 ../fish/virt-copy-in.pod:62 ../fish/virt-copy-out.pod:51 ../fish/virt-tar-in.pod:60 ../fish/virt-tar-out.pod:53 ../fuse/guestmount.pod:321 ../java/examples/guestfs-java.pod:60 ../ocaml/examples/guestfs-ocaml.pod:93 ../perl/examples/guestfs-perl.pod:54 ../python/examples/guestfs-python.pod:56 ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3244 ../test-tool/libguestfs-test-tool.pod:108
2973 msgid "Richard W.M. Jones (C<rjones at redhat dot com>)"
2977 #: ../erlang/examples/guestfs-erlang.pod:116 ../java/examples/guestfs-java.pod:64 ../perl/examples/guestfs-perl.pod:58
2978 msgid "Copyright (C) 2011 Red Hat Inc. L<http://libguestfs.org/>"
2982 #: ../erlang/examples/guestfs-erlang.pod:118 ../examples/guestfs-examples.pod:53 ../examples/guestfs-recipes.pod:405 ../java/examples/guestfs-java.pod:66 ../ocaml/examples/guestfs-ocaml.pod:99 ../perl/examples/guestfs-perl.pod:60 ../python/examples/guestfs-python.pod:62 ../ruby/examples/guestfs-ruby.pod:56
2984 "The examples in this manual page may be freely copied, modified and "
2985 "distributed without any restrictions."
2989 #: ../erlang/examples/guestfs-erlang.pod:121 ../examples/guestfs-examples.pod:56 ../examples/guestfs-recipes.pod:408 ../java/examples/guestfs-java.pod:69 ../ocaml/examples/guestfs-ocaml.pod:102 ../perl/examples/guestfs-perl.pod:63 ../python/examples/guestfs-python.pod:65 ../ruby/examples/guestfs-ruby.pod:59 ../src/guestfs.pod:3251
2991 "This library is free software; you can redistribute it and/or modify it "
2992 "under the terms of the GNU Lesser General Public License as published by the "
2993 "Free Software Foundation; either version 2 of the License, or (at your "
2994 "option) any later version."
2998 #: ../erlang/examples/guestfs-erlang.pod:126 ../examples/guestfs-examples.pod:61 ../examples/guestfs-recipes.pod:413 ../java/examples/guestfs-java.pod:74 ../ocaml/examples/guestfs-ocaml.pod:107 ../perl/examples/guestfs-perl.pod:68 ../python/examples/guestfs-python.pod:70 ../ruby/examples/guestfs-ruby.pod:64 ../src/guestfs.pod:3256
3000 "This library is distributed in the hope that it will be useful, but WITHOUT "
3001 "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
3002 "FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License "
3007 #: ../erlang/examples/guestfs-erlang.pod:131 ../examples/guestfs-examples.pod:66 ../examples/guestfs-recipes.pod:418 ../java/examples/guestfs-java.pod:79 ../ocaml/examples/guestfs-ocaml.pod:112 ../perl/examples/guestfs-perl.pod:73 ../python/examples/guestfs-python.pod:75 ../ruby/examples/guestfs-ruby.pod:69 ../src/guestfs.pod:3261
3009 "You should have received a copy of the GNU Lesser General Public License "
3010 "along with this library; if not, write to the Free Software Foundation, "
3011 "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA"
3015 #: ../examples/guestfs-examples.pod:5
3016 msgid "guestfs-examples - Examples of using libguestfs from C"
3020 #: ../examples/guestfs-examples.pod:9 ../src/guestfs.pod:9
3023 " #include <guestfs.h>\n"
3028 #: ../examples/guestfs-examples.pod:11
3031 " guestfs_h *g = guestfs_create ();\n"
3032 " guestfs_add_drive_ro (g, \"disk.img\");\n"
3033 " guestfs_launch (g);\n"
3038 #: ../examples/guestfs-examples.pod:15 ../src/guestfs.pod:19
3041 " cc prog.c -o prog -lguestfs\n"
3043 " cc prog.c -o prog `pkg-config libguestfs --cflags --libs`\n"
3048 #: ../examples/guestfs-examples.pod:21
3050 "This manual page contains examples of calling libguestfs from the C "
3051 "programming language. If you are not familiar with using libguestfs, you "
3052 "also need to read L<guestfs(3)>."
3056 #: ../examples/guestfs-examples.pod:35
3058 "L<guestfs(3)>, L<guestfs-erlang(3)>, L<guestfs-java(3)>, "
3059 "L<guestfs-ocaml(3)>, L<guestfs-perl(3)>, L<guestfs-python(3)>, "
3060 "L<guestfs-recipes(1)>, L<guestfs-ruby(3)>, L<http://libguestfs.org/>."
3064 #: ../examples/guestfs-examples.pod:51 ../ocaml/examples/guestfs-ocaml.pod:97 ../python/examples/guestfs-python.pod:60 ../ruby/examples/guestfs-ruby.pod:54
3065 msgid "Copyright (C) 2010 Red Hat Inc. L<http://libguestfs.org/>"
3069 #: ../examples/guestfs-recipes.pod:3 ../examples/guestfs-recipes.pod:12
3074 #: ../examples/guestfs-recipes.pod:5
3076 "pod2man and pod2html have differing bugs which makes it hard to write URLs "
3077 "here. The only way which works for both sorts of output is to just write "
3078 "the URL directly. Do NOT use L<...> for URLs."
3082 #: ../examples/guestfs-recipes.pod:9
3084 "We break with tradition here and don't use ALL CAPS for the section "
3085 "headings, as this makes them much easier to read."
3089 #: ../examples/guestfs-recipes.pod:16
3090 msgid "guestfs-recipes - libguestfs, guestfish and virt tools recipes"
3094 #: ../examples/guestfs-recipes.pod:20
3096 "This page contains recipes for and links to things you can do using "
3097 "libguestfs, L<guestfish(1)> and the virt tools."
3101 #: ../examples/guestfs-recipes.pod:23
3102 msgid "Audit a virtual machine for setuid files"
3106 #: ../examples/guestfs-recipes.pod:25
3108 "The link below contains a small program which can be used to audit a Linux "
3109 "virtual machine to see what setuid and setgid files it contains."
3113 #: ../examples/guestfs-recipes.pod:28
3114 msgid "https://rwmj.wordpress.com/2010/12/15/tip-audit-virtual-machine-for-setuid-files/#content"
3118 #: ../examples/guestfs-recipes.pod:30
3119 msgid "Change the background image in a Windows XP VM"
3123 #: ../examples/guestfs-recipes.pod:32
3125 "The links below explain how to use L<guestfish(1)> to change the background "
3126 "image for a user of a Windows XP VM. Unfortunately the technique appears to "
3127 "be substantially different for each version of Windows."
3131 #: ../examples/guestfs-recipes.pod:37
3133 "https://lists.fedoraproject.org/pipermail/virt/2011-May/002655.html "
3134 "https://lists.fedoraproject.org/pipermail/virt/2011-May/002658.html"
3138 #: ../examples/guestfs-recipes.pod:40
3139 msgid "Cloning a virtual machine (Linux)"
3143 #: ../examples/guestfs-recipes.pod:42
3145 "The guestfish technique described in the link below works well for most "
3146 "Linux VMs. Depending on the Linux distro you may need to change the paths "
3151 #: ../examples/guestfs-recipes.pod:46
3152 msgid "https://rwmj.wordpress.com/2010/09/24/tip-my-procedure-for-cloning-a-fedora-vm/#content"
3156 #: ../examples/guestfs-recipes.pod:48
3158 "Avoid L<virt-clone(1)>. Currently what to do about virt-clone is under "
3163 #: ../examples/guestfs-recipes.pod:51
3164 msgid "https://www.redhat.com/archives/virt-tools-list/2011-May/msg00019.html"
3168 #: ../examples/guestfs-recipes.pod:53
3169 msgid "Cloning a virtual machine (Windows)"
3173 #: ../examples/guestfs-recipes.pod:55
3175 "It is possible to do a \"sysprep\" using libguestfs alone, although not "
3176 "straightforward. Currently there is code in the Aeolus Oz project which "
3177 "does this (using libguestfs). As part of our review of the virt-clone tool, "
3178 "we may add sysprepping ability."
3182 #: ../examples/guestfs-recipes.pod:60
3184 "https://github.com/clalancette/oz "
3185 "https://www.redhat.com/archives/virt-tools-list/2011-May/msg00019.html"
3189 #: ../examples/guestfs-recipes.pod:63
3190 msgid "Convert a CD-ROM / DVD / ISO to a tarball"
3194 #: ../examples/guestfs-recipes.pod:65
3195 msgid "This converts input C<cd.iso> to output C<cd.tar.gz>:"
3199 #: ../examples/guestfs-recipes.pod:67
3202 " guestfish --ro -a cd.iso -m /dev/sda tgz-out / cd.tar.gz\n"
3207 #: ../examples/guestfs-recipes.pod:69
3208 msgid "To export just a subdirectory, eg. C</files>, do:"
3212 #: ../examples/guestfs-recipes.pod:71
3215 " guestfish --ro -a cd.iso -m /dev/sda tgz-out /files cd.tar.gz\n"
3220 #: ../examples/guestfs-recipes.pod:73
3221 msgid "Create empty disk images"
3225 #: ../examples/guestfs-recipes.pod:75
3227 "You can use the L<guestfish(1)> I<-N> option to create empty disk images. "
3228 "The useful guide below explains the options available."
3232 #: ../examples/guestfs-recipes.pod:78
3233 msgid "https://rwmj.wordpress.com/2010/09/08/new-guestfish-n-options-in-1-5-9/#content"
3237 #: ../examples/guestfs-recipes.pod:80
3238 msgid "Dump raw filesystem content from inside a disk image or VM"
3242 #: ../examples/guestfs-recipes.pod:82
3244 "You can use the L<guestfish(1)> C<download> command to extract the raw "
3245 "filesystem content from any filesystem in a disk image or a VM (even one "
3246 "which is encrypted or buried inside an LV):"
3250 #: ../examples/guestfs-recipes.pod:86
3253 " guestfish --ro -a disk.img run : download /dev/sda1 sda1.img\n"
3258 #: ../examples/guestfs-recipes.pod:88
3261 " guestfish --ro -d Guest run : download /dev/vg_guest/lv_root lv.img\n"
3266 #: ../examples/guestfs-recipes.pod:90
3267 msgid "To list the filesystems in a disk image, use L<virt-filesystems(1)>."
3271 #: ../examples/guestfs-recipes.pod:92
3272 msgid "Edit grub configuration in a VM"
3276 #: ../examples/guestfs-recipes.pod:94
3277 msgid "You can use this to:"
3281 #: ../examples/guestfs-recipes.pod:100
3282 msgid "Fix a virtual machine that does not boot."
3286 #: ../examples/guestfs-recipes.pod:104
3287 msgid "Change which kernel is used to boot the VM."
3291 #: ../examples/guestfs-recipes.pod:108
3292 msgid "Change kernel command line options."
3296 #: ../examples/guestfs-recipes.pod:112
3297 msgid "Use L<virt-edit(1)> to edit the grub configuration:"
3301 #: ../examples/guestfs-recipes.pod:114
3304 " virt-edit -d BrokenGuest /boot/grub/grub.conf\n"
3309 #: ../examples/guestfs-recipes.pod:116
3311 "or for general tinkering inside an unbootable VM use L<virt-rescue(1)> like "
3316 #: ../examples/guestfs-recipes.pod:119
3319 " virt-rescue -d BrokenGuest\n"
3324 #: ../examples/guestfs-recipes.pod:121
3325 msgid "Export any directory from a VM"
3329 #: ../examples/guestfs-recipes.pod:123
3330 msgid "To export C</home> from a VM into a local directory use L<virt-copy-out(1)>:"
3334 #: ../examples/guestfs-recipes.pod:126
3337 " virt-copy-out -d Guest /home .\n"
3342 #: ../examples/guestfs-recipes.pod:128 ../fish/guestfish-actions.pod:9 ../fish/guestfish-actions.pod:1327 ../fish/guestfish-actions.pod:1592 ../fish/guestfish-actions.pod:2001 ../src/guestfs-actions.pod:18 ../src/guestfs-actions.pod:2033 ../src/guestfs-actions.pod:2457 ../src/guestfs-actions.pod:3008 ../src/guestfs.pod:1670 ../tools/virt-win-reg.pl:706
3347 #: ../examples/guestfs-recipes.pod:134
3349 "The final dot of the command is not a printing error. It means we want to "
3350 "copy out to the current directory."
3354 #: ../examples/guestfs-recipes.pod:139
3355 msgid "This creates a directory called C<home> under the current directory."
3359 #: ../examples/guestfs-recipes.pod:143
3361 "If the guest is a Windows guest then you can use drive letters and "
3362 "backslashes, but you must prefix the path with C<win:> and quote it to "
3363 "protect it from the shell, like this:"
3367 #: ../examples/guestfs-recipes.pod:147
3370 " virt-copy-out -d WinGuest 'win:c:\\windows\\system32\\config' .\n"
3375 #: ../examples/guestfs-recipes.pod:149
3376 msgid "To get the output as a compressed tarball, do:"
3380 #: ../examples/guestfs-recipes.pod:151
3383 " virt-tar-out -d Guest /home - | gzip --best > home.tar.gz\n"
3388 #: ../examples/guestfs-recipes.pod:153
3390 "Although it sounds tempting, this is usually not a reliable way to get a "
3391 "backup from a running guest. See the entry in the FAQ: "
3392 "http://libguestfs.org/FAQ.html#backup"
3396 #: ../examples/guestfs-recipes.pod:157
3397 msgid "Find out which user is using the most space"
3401 #: ../examples/guestfs-recipes.pod:159
3403 "This simple script examines a Linux guest to find out which user is using "
3404 "the most space in their home directory:"
3408 #: ../examples/guestfs-recipes.pod:162
3416 #: ../examples/guestfs-recipes.pod:164
3424 #: ../examples/guestfs-recipes.pod:166
3433 #: ../examples/guestfs-recipes.pod:169
3436 " eval $(guestfish --ro -d \"$vm\" -i --listen)\n"
3441 #: ../examples/guestfs-recipes.pod:171
3444 " for d in $(guestfish --remote ls \"$dir\"); do\n"
3445 " echo -n \"$dir/$d\"\n"
3447 " guestfish --remote du \"$dir/$d\";\n"
3448 " done | sort -nr -k 2\n"
3453 #: ../examples/guestfs-recipes.pod:177 ../fish/guestfish.pod:941
3456 " guestfish --remote exit\n"
3461 #: ../examples/guestfs-recipes.pod:179
3462 msgid "Get DHCP address from a VM"
3466 #: ../examples/guestfs-recipes.pod:181
3468 "The link below explains the many different possible techniques for getting "
3469 "the last assigned DHCP address of a virtual machine."
3473 #: ../examples/guestfs-recipes.pod:184
3474 msgid "https://rwmj.wordpress.com/2011/03/31/tip-code-for-getting-dhcp-address-from-a-virtual-machine-disk-image/#content"
3478 #: ../examples/guestfs-recipes.pod:186
3480 "In the libguestfs source examples directory you will find the latest version "
3481 "of the C<virt-dhcp-address.c> program."
3485 #: ../examples/guestfs-recipes.pod:189
3486 msgid "Get the operating system product name string"
3490 #: ../examples/guestfs-recipes.pod:191
3491 msgid "Save the following script into a file called C<product-name.sh>:"
3495 #: ../examples/guestfs-recipes.pod:193
3500 " eval \"$(guestfish --ro -d \"$1\" --i --listen)\"\n"
3501 " root=\"$(guestfish --remote inspect-get-roots)\"\n"
3502 " guestfish --remote inspect-get-product-name \"$root\"\n"
3503 " guestfish --remote exit\n"
3508 #: ../examples/guestfs-recipes.pod:200
3509 msgid "Make the script executable and run it on a named guest:"
3513 #: ../examples/guestfs-recipes.pod:202
3516 " # product-name.sh RHEL60x64\n"
3517 " Red Hat Enterprise Linux Server release 6.0 (Santiago)\n"
3522 #: ../examples/guestfs-recipes.pod:205
3524 "You can also use an XPath query on the L<virt-inspector(1)> XML using the "
3525 "C<xpath> command line tool or from your favourite programming language:"
3529 #: ../examples/guestfs-recipes.pod:209
3532 " # virt-inspector RHEL60x64 > xml\n"
3533 " # xpath '//product_name' < xml\n"
3536 " <product_name>Red Hat Enterprise Linux Server release 6.0 "
3537 "(Santiago)</product_name>\n"
3542 #: ../examples/guestfs-recipes.pod:215
3543 msgid "Get the default boot kernel for a Linux VM"
3547 #: ../examples/guestfs-recipes.pod:217
3549 "The link below contains a program to print the default boot kernel for a "
3554 #: ../examples/guestfs-recipes.pod:220
3555 msgid "https://rwmj.wordpress.com/2010/10/30/tip-use-augeas-to-get-the-default-boot-kernel-for-a-vm/#content"
3559 #: ../examples/guestfs-recipes.pod:222
3561 "It uses Augeas, and the technique is generally applicable for many different "
3566 #: ../examples/guestfs-recipes.pod:229
3567 msgid "listing the user accounts in the guest"
3571 #: ../examples/guestfs-recipes.pod:233
3572 msgid "what repositories is it configured to use"
3576 #: ../examples/guestfs-recipes.pod:237
3577 msgid "what NTP servers does it connect to"
3581 #: ../examples/guestfs-recipes.pod:241
3582 msgid "what were the boot messages last time it booted"
3586 #: ../examples/guestfs-recipes.pod:245
3587 msgid "listing who was logged in recently"
3591 #: ../examples/guestfs-recipes.pod:249
3592 msgid "http://augeas.net/"
3596 #: ../examples/guestfs-recipes.pod:251
3597 msgid "Install RPMs in a guest"
3601 #: ../examples/guestfs-recipes.pod:253
3603 "The link below contains a method to install RPMs in a guest. In fact the "
3604 "RPMs are just uploaded to the guest along with a \"firstboot\" script that "
3605 "installs them next time the guest is booted. You could use this technique "
3606 "to install vital security updates in an offline guest."
3610 #: ../examples/guestfs-recipes.pod:259
3611 msgid "https://rwmj.wordpress.com/2010/12/01/tip-install-rpms-in-a-guest/#content"
3615 #: ../examples/guestfs-recipes.pod:261
3616 msgid "List applications installed in a VM"
3620 #: ../examples/guestfs-recipes.pod:263
3621 msgid "Save the following to a file C<list-apps.sh>:"
3625 #: ../examples/guestfs-recipes.pod:265
3630 " eval \"$(guestfish --ro -d \"$1\" --i --listen)\"\n"
3631 " root=\"$(guestfish --remote inspect-get-roots)\"\n"
3632 " guestfish --remote inspect-list-applications \"$root\"\n"
3633 " guestfish --remote exit\n"
3638 #: ../examples/guestfs-recipes.pod:272
3640 "Make the file executable and then you can run it on any named virtual "
3645 #: ../examples/guestfs-recipes.pod:275
3648 " # list-apps.sh WinGuest\n"
3650 " app_name: Mozilla Firefox (3.6.12)\n"
3651 " app_display_name: Mozilla Firefox (3.6.12)\n"
3653 " app_version: 3.6.12 (en-GB)\n"
3655 " app_install_path: C:\\Program Files\\Mozilla Firefox\n"
3656 " app_trans_path:\n"
3657 " app_publisher: Mozilla\n"
3658 " app_url: http://www.mozilla.com/en-GB/\n"
3659 " app_source_package:\n"
3661 " app_description: Mozilla Firefox\n"
3664 " app_name: VLC media player\n"
3665 " app_display_name: VLC media player 1.1.5\n"
3667 " app_version: 1.1.5\n"
3669 " app_install_path: C:\\Program Files\\VideoLAN\\VLC\n"
3670 " app_trans_path:\n"
3671 " app_publisher: VideoLAN\n"
3672 " app_url: http://www.videolan.org/\n"
3673 " app_source_package:\n"
3675 " app_description:\n"
3681 #: ../examples/guestfs-recipes.pod:305
3683 "If you want to run the script on disk images (instead of libvirt virtual "
3684 "machines), change C<-d \"$1\"> to C<-a \"$1\">. See also "
3685 "L<virt-inspector(1)>."
3689 #: ../examples/guestfs-recipes.pod:309
3690 msgid "List files and directories in a VM"
3694 #: ../examples/guestfs-recipes.pod:311
3695 msgid "This involves using the L<guestfish(1)> C<find0> command like this:"
3699 #: ../examples/guestfs-recipes.pod:313
3702 " guestfish --ro -d Guest -i find0 / - | tr '\\0' '\\n' | sort\n"
3707 #: ../examples/guestfs-recipes.pod:315
3708 msgid "List services in a Windows VM"
3712 #: ../examples/guestfs-recipes.pod:317
3714 "The link below contains a script that can be used to list out the services "
3715 "from a Windows VM, and whether those services run at boot time or are loaded "
3720 #: ../examples/guestfs-recipes.pod:321
3721 msgid "https://rwmj.wordpress.com/2010/12/10/tip-list-services-in-a-windows-guest/#content"
3725 #: ../examples/guestfs-recipes.pod:323
3726 msgid "Make a disk image sparse"
3730 #: ../examples/guestfs-recipes.pod:325
3732 "The link below contains some guides for making a disk image sparse (or "
3733 "reintroducing sparseness)."
3737 #: ../examples/guestfs-recipes.pod:328
3738 msgid "https://rwmj.wordpress.com/2010/10/19/tip-making-a-disk-image-sparse/#content"
3742 #: ../examples/guestfs-recipes.pod:330
3743 msgid "Monitor disk usage over time"
3747 #: ../examples/guestfs-recipes.pod:332
3749 "You can use L<virt-df(1)> to monitor disk usage of your guests over time. "
3750 "The link below contains a guide."
3754 #: ../examples/guestfs-recipes.pod:335
3755 msgid "http://virt-tools.org/learning/advanced-virt-df/"
3759 #: ../examples/guestfs-recipes.pod:337
3760 msgid "Reading the Windows Event Log from Windows Vista (or later)"
3764 #: ../examples/guestfs-recipes.pod:339
3766 "L<guestfish(1)> plus the tools described in the link below can be used to "
3767 "read out the Windows Event Log from any virtual machine running Windows "
3768 "Vista or a later version."
3772 #: ../examples/guestfs-recipes.pod:343
3773 msgid "https://rwmj.wordpress.com/2011/04/17/decoding-the-windows-event-log-using-guestfish/#content"
3777 #: ../examples/guestfs-recipes.pod:345
3778 msgid "Remove root password (Linux)"
3782 #: ../examples/guestfs-recipes.pod:347
3784 "Using the L<virt-edit(1)> I<-e> option you can do simple replacements on "
3785 "files. One use is to remove the root password from a Linux guest:"
3789 #: ../examples/guestfs-recipes.pod:350
3792 " virt-edit domname /etc/passwd -e 's/^root:.*?:/root::/'\n"
3797 #: ../examples/guestfs-recipes.pod:352
3798 msgid "Remove Administrator password (Windows)"
3802 #: ../examples/guestfs-recipes.pod:354
3804 "The link below contains one technique for removing the Administrator "
3805 "password from a Windows VM, or to be more precise, it gives you a command "
3806 "prompt the next time you log in which you can use to bypass any security:"
3810 #: ../examples/guestfs-recipes.pod:359
3811 msgid "https://mdbooth.wordpress.com/2010/10/18/resetting-a-windows-guests-administrator-password-with-guestfish/"
3815 #: ../examples/guestfs-recipes.pod:361
3816 msgid "Unpack a live CD"
3820 #: ../examples/guestfs-recipes.pod:363
3822 "Linux live CDs often contain multiple layers of disk images wrapped like a "
3823 "Russian doll. You can use L<guestfish(1)> to look inside these multiple "
3824 "layers, as outlined in the guide below."
3828 #: ../examples/guestfs-recipes.pod:367
3829 msgid "https://rwmj.wordpress.com/2009/07/15/unpack-the-russian-doll-of-a-f11-live-cd/#content"
3833 #: ../examples/guestfs-recipes.pod:369
3834 msgid "Uploading and downloading files"
3838 #: ../examples/guestfs-recipes.pod:371
3840 "The link below contains general tips on uploading (copying in) and "
3841 "downloading (copying out) files from VMs."
3845 #: ../examples/guestfs-recipes.pod:374
3846 msgid "https://rwmj.wordpress.com/2010/12/02/tip-uploading-and-downloading/#content"
3850 #: ../examples/guestfs-recipes.pod:376
3851 msgid "Use libguestfs tools on VMware ESX guests"
3855 #: ../examples/guestfs-recipes.pod:378
3857 "The link below explains how to use libguestfs, L<guestfish(1)> and the virt "
3858 "tools on any VMware ESX guests, by first sharing the VMware VMFS over sshfs."
3862 #: ../examples/guestfs-recipes.pod:382
3863 msgid "https://rwmj.wordpress.com/2011/05/10/tip-use-libguestfs-on-vmware-esx-guests/#content"
3867 #: ../examples/guestfs-recipes.pod:386
3869 "L<guestfs(3)>, L<guestfish(1)>, L<guestfs-examples(3)>, "
3870 "L<guestfs-erlang(3)>, L<guestfs-java(3)>, L<guestfs-ocaml(3)>, "
3871 "L<guestfs-perl(3)>, L<guestfs-python(3)>, L<guestfs-ruby(3)>, "
3872 "L<http://libguestfs.org/>."
3876 #: ../examples/guestfs-recipes.pod:403
3877 msgid "Copyright (C) 2009-2011 Red Hat Inc. L<http://libguestfs.org/>"
3881 #: ../fish/guestfish-actions.pod:1
3886 #: ../fish/guestfish-actions.pod:3
3889 " add-cdrom filename\n"
3894 #: ../fish/guestfish-actions.pod:5 ../src/guestfs-actions.pod:14
3895 msgid "This function adds a virtual CD-ROM disk image to the guest."
3899 #: ../fish/guestfish-actions.pod:7 ../src/guestfs-actions.pod:16
3900 msgid "This is equivalent to the qemu parameter I<-cdrom filename>."
3904 #: ../fish/guestfish-actions.pod:15
3906 "This call checks for the existence of C<filename>. This stops you from "
3907 "specifying other types of drive which are supported by qemu such as C<nbd:> "
3908 "and C<http:> URLs. To specify those, use the general L</config> call "
3913 #: ../fish/guestfish-actions.pod:22
3915 "If you just want to add an ISO file (often you use this as an efficient way "
3916 "to transfer large files into the guest), then you should probably use "
3917 "L</add-drive-ro> instead."
3921 #: ../fish/guestfish-actions.pod:28 ../fish/guestfish-actions.pod:163 ../fish/guestfish-actions.pod:177
3923 "I<This function is deprecated.> In new code, use the L</add_drive_opts> call "
3928 #: ../fish/guestfish-actions.pod:31 ../fish/guestfish-actions.pod:166 ../fish/guestfish-actions.pod:180 ../fish/guestfish-actions.pod:1026 ../fish/guestfish-actions.pod:1386 ../fish/guestfish-actions.pod:1400 ../fish/guestfish-actions.pod:3157 ../fish/guestfish-actions.pod:3468 ../fish/guestfish-actions.pod:3516 ../fish/guestfish-actions.pod:4429 ../fish/guestfish-actions.pod:4452 ../fish/guestfish-actions.pod:4474 ../fish/guestfish-actions.pod:4512 ../fish/guestfish-actions.pod:5161 ../fish/guestfish-actions.pod:5267 ../src/guestfs-actions.pod:10 ../src/guestfs-actions.pod:252 ../src/guestfs-actions.pod:273 ../src/guestfs-actions.pod:1619 ../src/guestfs-actions.pod:2118 ../src/guestfs-actions.pod:2139 ../src/guestfs-actions.pod:4771 ../src/guestfs-actions.pod:5293 ../src/guestfs-actions.pod:5393 ../src/guestfs-actions.pod:6675 ../src/guestfs-actions.pod:6719 ../src/guestfs-actions.pod:6753 ../src/guestfs-actions.pod:6816 ../src/guestfs-actions.pod:7748 ../src/guestfs-actions.pod:7857 ../src/guestfs-actions.pod:8040
3930 "Deprecated functions will not be removed from the API, but the fact that "
3931 "they are deprecated indicates that there are problems with correct use of "
3936 #: ../fish/guestfish-actions.pod:35
3941 #: ../fish/guestfish-actions.pod:37
3946 #: ../fish/guestfish-actions.pod:39
3949 " add-domain dom [libvirturi:..] [readonly:..] [iface:..] [live:..] "
3955 #: ../fish/guestfish-actions.pod:41
3957 "This function adds the disk(s) attached to the named libvirt domain C<dom>. "
3958 "It works by connecting to libvirt, requesting the domain and domain XML from "
3959 "libvirt, parsing it for disks, and calling L</add-drive-opts> on each one."
3963 #: ../fish/guestfish-actions.pod:46 ../src/guestfs-actions.pod:64
3965 "The number of disks added is returned. This operation is atomic: if an "
3966 "error is returned, then no disks are added."
3970 #: ../fish/guestfish-actions.pod:49 ../src/guestfs-actions.pod:67
3972 "This function does some minimal checks to make sure the libvirt domain is "
3973 "not running (unless C<readonly> is true). In a future version we will try "
3974 "to acquire the libvirt lock on each disk."
3978 #: ../fish/guestfish-actions.pod:53 ../src/guestfs-actions.pod:71
3980 "Disks must be accessible locally. This often means that adding disks from a "
3981 "remote libvirt connection (see L<http://libvirt.org/remote.html>) will fail "
3982 "unless those disks are accessible via the same device path locally too."
3986 #: ../fish/guestfish-actions.pod:58 ../src/guestfs-actions.pod:76
3988 "The optional C<libvirturi> parameter sets the libvirt URI (see "
3989 "L<http://libvirt.org/uri.html>). If this is not set then we connect to the "
3990 "default libvirt URI (or one set through an environment variable, see the "
3991 "libvirt documentation for full details)."
3995 #: ../fish/guestfish-actions.pod:64 ../src/guestfs-actions.pod:82
3997 "The optional C<live> flag controls whether this call will try to connect to "
3998 "a running virtual machine C<guestfsd> process if it sees a suitable "
3999 "E<lt>channelE<gt> element in the libvirt XML definition. The default (if "
4000 "the flag is omitted) is never to try. See L<guestfs(3)/ATTACHING TO RUNNING "
4001 "DAEMONS> for more information."
4005 #: ../fish/guestfish-actions.pod:71 ../src/guestfs-actions.pod:89
4007 "If the C<allowuuid> flag is true (default is false) then a UUID I<may> be "
4008 "passed instead of the domain name. The C<dom> string is treated as a UUID "
4009 "first and looked up, and if that lookup fails then we treat C<dom> as a name "
4014 #: ../fish/guestfish-actions.pod:76
4016 "The other optional parameters are passed directly through to "
4017 "L</add-drive-opts>."
4021 #: ../fish/guestfish-actions.pod:79 ../fish/guestfish-actions.pod:143 ../fish/guestfish-actions.pod:573 ../fish/guestfish-actions.pod:784 ../fish/guestfish-actions.pod:805 ../fish/guestfish-actions.pod:2040 ../fish/guestfish-actions.pod:3206 ../fish/guestfish-actions.pod:3369 ../fish/guestfish-actions.pod:3504
4023 "This command has one or more optional arguments. See L</OPTIONAL "
4028 #: ../fish/guestfish-actions.pod:81
4033 #: ../fish/guestfish-actions.pod:83
4036 " add-drive filename\n"
4041 #: ../fish/guestfish-actions.pod:85
4043 "This function is the equivalent of calling L</add-drive-opts> with no "
4044 "optional parameters, so the disk is added writable, with the format being "
4045 "detected automatically."
4049 #: ../fish/guestfish-actions.pod:89
4051 "Automatic detection of the format opens you up to a potential security hole "
4052 "when dealing with untrusted raw-format images. See CVE-2010-3851 and "
4053 "RHBZ#642934. Specifying the format closes this security hole. Therefore "
4054 "you should think about replacing calls to this function with calls to "
4055 "L</add-drive-opts>, and specifying the format."
4059 #: ../fish/guestfish-actions.pod:96
4060 msgid "add-drive-opts"
4064 #: ../fish/guestfish-actions.pod:98
4069 #: ../fish/guestfish-actions.pod:100
4072 " add-drive-opts filename [readonly:..] [format:..] [iface:..]\n"
4077 #: ../fish/guestfish-actions.pod:102 ../src/guestfs-actions.pod:160
4079 "This function adds a virtual machine disk image C<filename> to libguestfs. "
4080 "The first time you call this function, the disk appears as C</dev/sda>, the "
4081 "second time as C</dev/sdb>, and so on."
4085 #: ../fish/guestfish-actions.pod:107 ../src/guestfs-actions.pod:165
4087 "You don't necessarily need to be root when using libguestfs. However you "
4088 "obviously do need sufficient permissions to access the filename for whatever "
4089 "operations you want to perform (ie. read access if you just want to read the "
4090 "image or write access if you want to modify the image)."
4094 #: ../fish/guestfish-actions.pod:113 ../src/guestfs-actions.pod:171
4095 msgid "This call checks that C<filename> exists."
4099 #: ../fish/guestfish-actions.pod:115 ../fish/guestfish-actions.pod:3168 ../src/guestfs-actions.pod:173 ../src/guestfs-actions.pod:4808
4100 msgid "The optional arguments are:"
4104 #: ../fish/guestfish-actions.pod:119 ../src/guestfs-actions.pod:177
4109 #: ../fish/guestfish-actions.pod:121 ../src/guestfs-actions.pod:179
4111 "If true then the image is treated as read-only. Writes are still allowed, "
4112 "but they are stored in a temporary snapshot overlay which is discarded at "
4113 "the end. The disk that you add is not modified."
4117 #: ../fish/guestfish-actions.pod:125 ../src/guestfs-actions.pod:183
4122 #: ../fish/guestfish-actions.pod:127
4124 "This forces the image format. If you omit this (or use L</add-drive> or "
4125 "L</add-drive-ro>) then the format is automatically detected. Possible "
4126 "formats include C<raw> and C<qcow2>."
4130 #: ../fish/guestfish-actions.pod:131 ../src/guestfs-actions.pod:189
4132 "Automatic detection of the format opens you up to a potential security hole "
4133 "when dealing with untrusted raw-format images. See CVE-2010-3851 and "
4134 "RHBZ#642934. Specifying the format closes this security hole."
4138 #: ../fish/guestfish-actions.pod:136 ../src/guestfs-actions.pod:194
4143 #: ../fish/guestfish-actions.pod:138
4145 "This rarely-used option lets you emulate the behaviour of the deprecated "
4146 "L</add-drive-with-if> call (q.v.)"
4150 #: ../fish/guestfish-actions.pod:145
4151 msgid "add-drive-ro"
4155 #: ../fish/guestfish-actions.pod:147
4160 #: ../fish/guestfish-actions.pod:149
4163 " add-drive-ro filename\n"
4168 #: ../fish/guestfish-actions.pod:151
4170 "This function is the equivalent of calling L</add-drive-opts> with the "
4171 "optional parameter C<GUESTFS_ADD_DRIVE_OPTS_READONLY> set to 1, so the disk "
4172 "is added read-only, with the format being detected automatically."
4176 #: ../fish/guestfish-actions.pod:156
4177 msgid "add-drive-ro-with-if"
4181 #: ../fish/guestfish-actions.pod:158
4184 " add-drive-ro-with-if filename iface\n"
4189 #: ../fish/guestfish-actions.pod:160
4191 "This is the same as L</add-drive-ro> but it allows you to specify the QEMU "
4192 "interface emulation to use at run time."
4196 #: ../fish/guestfish-actions.pod:170
4197 msgid "add-drive-with-if"
4201 #: ../fish/guestfish-actions.pod:172
4204 " add-drive-with-if filename iface\n"
4209 #: ../fish/guestfish-actions.pod:174
4211 "This is the same as L</add-drive> but it allows you to specify the QEMU "
4212 "interface emulation to use at run time."
4216 #: ../fish/guestfish-actions.pod:184
4221 #: ../fish/guestfish-actions.pod:186
4224 " aug-clear augpath\n"
4229 #: ../fish/guestfish-actions.pod:188 ../src/guestfs-actions.pod:290
4231 "Set the value associated with C<path> to C<NULL>. This is the same as the "
4232 "L<augtool(1)> C<clear> command."
4236 #: ../fish/guestfish-actions.pod:191
4241 #: ../fish/guestfish-actions.pod:193
4249 #: ../fish/guestfish-actions.pod:195
4251 "Close the current Augeas handle and free up any resources used by it. After "
4252 "calling this, you have to call L</aug-init> again before you can use any "
4253 "other Augeas functions."
4257 #: ../fish/guestfish-actions.pod:200
4262 #: ../fish/guestfish-actions.pod:202
4265 " aug-defnode name expr val\n"
4270 #: ../fish/guestfish-actions.pod:204 ../src/guestfs-actions.pod:319
4271 msgid "Defines a variable C<name> whose value is the result of evaluating C<expr>."
4275 #: ../fish/guestfish-actions.pod:207
4277 "If C<expr> evaluates to an empty nodeset, a node is created, equivalent to "
4278 "calling L</aug-set> C<expr>, C<value>. C<name> will be the nodeset "
4279 "containing that single node."
4283 #: ../fish/guestfish-actions.pod:211 ../src/guestfs-actions.pod:326
4285 "On success this returns a pair containing the number of nodes in the "
4286 "nodeset, and a boolean flag if a node was created."
4290 #: ../fish/guestfish-actions.pod:215
4295 #: ../fish/guestfish-actions.pod:217
4298 " aug-defvar name expr\n"
4303 #: ../fish/guestfish-actions.pod:219 ../src/guestfs-actions.pod:343
4305 "Defines an Augeas variable C<name> whose value is the result of evaluating "
4306 "C<expr>. If C<expr> is NULL, then C<name> is undefined."
4310 #: ../fish/guestfish-actions.pod:223 ../src/guestfs-actions.pod:347
4312 "On success this returns the number of nodes in C<expr>, or C<0> if C<expr> "
4313 "evaluates to something which is not a nodeset."
4317 #: ../fish/guestfish-actions.pod:226
4322 #: ../fish/guestfish-actions.pod:228
4325 " aug-get augpath\n"
4330 #: ../fish/guestfish-actions.pod:230 ../src/guestfs-actions.pod:360
4332 "Look up the value associated with C<path>. If C<path> matches exactly one "
4333 "node, the C<value> is returned."
4337 #: ../fish/guestfish-actions.pod:233
4342 #: ../fish/guestfish-actions.pod:235
4345 " aug-init root flags\n"
4350 #: ../fish/guestfish-actions.pod:237 ../src/guestfs-actions.pod:375
4352 "Create a new Augeas handle for editing configuration files. If there was "
4353 "any previous Augeas handle associated with this guestfs session, then it is "
4358 #: ../fish/guestfish-actions.pod:241
4359 msgid "You must call this before using any other L</aug-*> commands."
4363 #: ../fish/guestfish-actions.pod:244 ../src/guestfs-actions.pod:382
4364 msgid "C<root> is the filesystem root. C<root> must not be NULL, use C</> instead."
4368 #: ../fish/guestfish-actions.pod:247 ../src/guestfs-actions.pod:385
4370 "The flags are the same as the flags defined in E<lt>augeas.hE<gt>, the "
4371 "logical I<or> of the following integers:"
4375 #: ../fish/guestfish-actions.pod:253 ../src/guestfs-actions.pod:391
4376 msgid "C<AUG_SAVE_BACKUP> = 1"
4380 #: ../fish/guestfish-actions.pod:255 ../src/guestfs-actions.pod:393
4381 msgid "Keep the original file with a C<.augsave> extension."
4385 #: ../fish/guestfish-actions.pod:257 ../src/guestfs-actions.pod:395
4386 msgid "C<AUG_SAVE_NEWFILE> = 2"
4390 #: ../fish/guestfish-actions.pod:259 ../src/guestfs-actions.pod:397
4392 "Save changes into a file with extension C<.augnew>, and do not overwrite "
4393 "original. Overrides C<AUG_SAVE_BACKUP>."
4397 #: ../fish/guestfish-actions.pod:262 ../src/guestfs-actions.pod:400
4398 msgid "C<AUG_TYPE_CHECK> = 4"
4402 #: ../fish/guestfish-actions.pod:264 ../src/guestfs-actions.pod:402
4403 msgid "Typecheck lenses."
4407 #: ../fish/guestfish-actions.pod:266
4409 "This option is only useful when debugging Augeas lenses. Use of this option "
4410 "may require additional memory for the libguestfs appliance. You may need to "
4411 "set the C<LIBGUESTFS_MEMSIZE> environment variable or call L</set-memsize>."
4415 #: ../fish/guestfish-actions.pod:271 ../src/guestfs-actions.pod:409
4416 msgid "C<AUG_NO_STDINC> = 8"
4420 #: ../fish/guestfish-actions.pod:273 ../src/guestfs-actions.pod:411
4421 msgid "Do not use standard load path for modules."
4425 #: ../fish/guestfish-actions.pod:275 ../src/guestfs-actions.pod:413
4426 msgid "C<AUG_SAVE_NOOP> = 16"
4430 #: ../fish/guestfish-actions.pod:277 ../src/guestfs-actions.pod:415
4431 msgid "Make save a no-op, just record what would have been changed."
4435 #: ../fish/guestfish-actions.pod:279 ../src/guestfs-actions.pod:417
4436 msgid "C<AUG_NO_LOAD> = 32"
4440 #: ../fish/guestfish-actions.pod:281
4441 msgid "Do not load the tree in L</aug-init>."
4445 #: ../fish/guestfish-actions.pod:285
4446 msgid "To close the handle, you can call L</aug-close>."
4450 #: ../fish/guestfish-actions.pod:287 ../src/guestfs-actions.pod:425
4451 msgid "To find out more about Augeas, see L<http://augeas.net/>."
4455 #: ../fish/guestfish-actions.pod:289
4460 #: ../fish/guestfish-actions.pod:291
4463 " aug-insert augpath label true|false\n"
4468 #: ../fish/guestfish-actions.pod:293 ../src/guestfs-actions.pod:439
4470 "Create a new sibling C<label> for C<path>, inserting it into the tree before "
4471 "or after C<path> (depending on the boolean flag C<before>)."
4475 #: ../fish/guestfish-actions.pod:297 ../src/guestfs-actions.pod:443
4477 "C<path> must match exactly one existing node in the tree, and C<label> must "
4478 "be a label, ie. not contain C</>, C<*> or end with a bracketed index C<[N]>."
4482 #: ../fish/guestfish-actions.pod:301
4487 #: ../fish/guestfish-actions.pod:303
4495 #: ../fish/guestfish-actions.pod:305 ../src/guestfs-actions.pod:456
4496 msgid "Load files into the tree."
4500 #: ../fish/guestfish-actions.pod:307 ../src/guestfs-actions.pod:458
4501 msgid "See C<aug_load> in the Augeas documentation for the full gory details."
4505 #: ../fish/guestfish-actions.pod:310
4510 #: ../fish/guestfish-actions.pod:312
4518 #: ../fish/guestfish-actions.pod:314
4520 "This is just a shortcut for listing L</aug-match> C<path/*> and sorting the "
4521 "resulting nodes into alphabetical order."
4525 #: ../fish/guestfish-actions.pod:317
4530 #: ../fish/guestfish-actions.pod:319
4533 " aug-match augpath\n"
4538 #: ../fish/guestfish-actions.pod:321 ../src/guestfs-actions.pod:486
4540 "Returns a list of paths which match the path expression C<path>. The "
4541 "returned paths are sufficiently qualified so that they match exactly one "
4542 "node in the current tree."
4546 #: ../fish/guestfish-actions.pod:325
4551 #: ../fish/guestfish-actions.pod:327
4554 " aug-mv src dest\n"
4559 #: ../fish/guestfish-actions.pod:329 ../src/guestfs-actions.pod:503
4561 "Move the node C<src> to C<dest>. C<src> must match exactly one node. "
4562 "C<dest> is overwritten if it exists."
4566 #: ../fish/guestfish-actions.pod:332
4571 #: ../fish/guestfish-actions.pod:334
4579 #: ../fish/guestfish-actions.pod:336 ../src/guestfs-actions.pod:516
4580 msgid "Remove C<path> and all of its children."
4584 #: ../fish/guestfish-actions.pod:338 ../src/guestfs-actions.pod:518
4585 msgid "On success this returns the number of entries which were removed."
4589 #: ../fish/guestfish-actions.pod:340
4594 #: ../fish/guestfish-actions.pod:342
4602 #: ../fish/guestfish-actions.pod:344 ../src/guestfs-actions.pod:529
4603 msgid "This writes all pending changes to disk."
4607 #: ../fish/guestfish-actions.pod:346
4609 "The flags which were passed to L</aug-init> affect exactly how files are "
4614 #: ../fish/guestfish-actions.pod:349
4619 #: ../fish/guestfish-actions.pod:351
4622 " aug-set augpath val\n"
4627 #: ../fish/guestfish-actions.pod:353 ../src/guestfs-actions.pod:545
4628 msgid "Set the value associated with C<path> to C<val>."
4632 #: ../fish/guestfish-actions.pod:355
4634 "In the Augeas API, it is possible to clear a node by setting the value to "
4635 "NULL. Due to an oversight in the libguestfs API you cannot do that with "
4636 "this call. Instead you must use the L</aug-clear> call."
4640 #: ../fish/guestfish-actions.pod:360
4645 #: ../fish/guestfish-actions.pod:362
4648 " available 'groups ...'\n"
4653 #: ../fish/guestfish-actions.pod:364 ../src/guestfs-actions.pod:562
4655 "This command is used to check the availability of some groups of "
4656 "functionality in the appliance, which not all builds of the libguestfs "
4657 "appliance will be able to provide."
4661 #: ../fish/guestfish-actions.pod:368
4663 "The libguestfs groups, and the functions that those groups correspond to, "
4664 "are listed in L<guestfs(3)/AVAILABILITY>. You can also fetch this list at "
4665 "runtime by calling L</available-all-groups>."
4669 #: ../fish/guestfish-actions.pod:373 ../src/guestfs-actions.pod:571
4671 "The argument C<groups> is a list of group names, eg: C<[\"inotify\", "
4672 "\"augeas\"]> would check for the availability of the Linux inotify functions "
4673 "and Augeas (configuration file editing) functions."
4677 #: ../fish/guestfish-actions.pod:378 ../src/guestfs-actions.pod:576
4678 msgid "The command returns no error if I<all> requested groups are available."
4682 #: ../fish/guestfish-actions.pod:380 ../src/guestfs-actions.pod:578
4684 "It fails with an error if one or more of the requested groups is unavailable "
4689 #: ../fish/guestfish-actions.pod:383 ../src/guestfs-actions.pod:581
4691 "If an unknown group name is included in the list of groups then an error is "