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.25\n"
10 "Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
11 "POT-Creation-Date: 2011-10-26 14:08+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 #: ../align/virt-alignment-scan.pod:3 ../cat/virt-cat.pod:3 ../cat/virt-filesystems.pod:3 ../cat/virt-ls.pod:3 ../clone/virt-sysprep.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 #: ../align/virt-alignment-scan.pod:5
27 msgid "virt-alignment-scan - Check alignment of virtual machine partitions"
31 #: ../align/virt-alignment-scan.pod:7 ../cat/virt-cat.pod:7 ../cat/virt-filesystems.pod:7 ../cat/virt-ls.pod:7 ../clone/virt-sysprep.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 #: ../align/virt-alignment-scan.pod:9
39 " virt-alignment-scan [--options] -d domname\n"
44 #: ../align/virt-alignment-scan.pod:11
47 " virt-alignment-scan [--options] -a disk.img [-a disk.img ...]\n"
52 #: ../align/virt-alignment-scan.pod:13 ../cat/virt-cat.pod:19 ../cat/virt-filesystems.pod:13 ../cat/virt-ls.pod:19 ../clone/virt-sysprep.pod:13 ../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
57 #: ../align/virt-alignment-scan.pod:15
59 "When older operating systems install themselves, the partitioning tools "
60 "place partitions at a sector misaligned with the underlying storage "
61 "(commonly the first partition starts on sector C<63>). Misaligned "
62 "partitions can result in an operating system issuing more I/O than should be "
67 #: ../align/virt-alignment-scan.pod:21
69 "The virt-alignment-scan tool checks the alignment of partitions in virtual "
70 "machines and disk images and warns you if there are alignment problems."
74 #: ../align/virt-alignment-scan.pod:25
76 "Currently there is no virt tool for fixing alignment problems. You can only "
77 "reinstall the guest operating system. The following NetApp document "
78 "summarises the problem and possible solutions: "
79 "L<http://media.netapp.com/documents/tr-3747.pdf>"
83 #: ../align/virt-alignment-scan.pod:30
88 #: ../align/virt-alignment-scan.pod:32
89 msgid "To run this tool on a disk image directly, use the I<-a> option:"
93 #: ../align/virt-alignment-scan.pod:34
96 " $ virt-alignment-scan -a winxp.img\n"
97 " /dev/sda1 32256 512 bad (alignment < 4K)\n"
102 #: ../align/virt-alignment-scan.pod:37
105 " $ virt-alignment-scan -a fedora16.img\n"
106 " /dev/sda1 1048576 1024K ok\n"
107 " /dev/sda2 2097152 2048K ok\n"
108 " /dev/sda3 526385152 2048K ok\n"
113 #: ../align/virt-alignment-scan.pod:42
115 "To run the tool on a guest known to libvirt, use the I<-d> option and "
116 "possibly the I<-c> option:"
120 #: ../align/virt-alignment-scan.pod:45
123 " # virt-alignment-scan -d RHEL5\n"
124 " /dev/sda1 32256 512 bad (alignment < 4K)\n"
125 " /dev/sda2 106928640 512 bad (alignment < 4K)\n"
130 #: ../align/virt-alignment-scan.pod:49
133 " $ virt-alignment-scan -c qemu:///system -d Win7TwoDisks\n"
134 " /dev/sda1 1048576 1024K ok\n"
135 " /dev/sda2 105906176 1024K ok\n"
136 " /dev/sdb1 65536 64K ok\n"
141 #: ../align/virt-alignment-scan.pod:54
143 "The output consists of 4 or more whitespace-separated columns. Only the "
144 "first 4 columns are signficant if you want to parse this from a program. "
149 #: ../align/virt-alignment-scan.pod:60
154 #: ../align/virt-alignment-scan.pod:62
156 "the device and partition name (eg. C</dev/sda1> meaning the first partition "
157 "on the first block device)"
161 #: ../align/virt-alignment-scan.pod:65
166 #: ../align/virt-alignment-scan.pod:67
167 msgid "the start of the partition in bytes"
171 #: ../align/virt-alignment-scan.pod:69
176 #: ../align/virt-alignment-scan.pod:71
177 msgid "the alignment in bytes or Kbytes (eg. C<512> or C<4K>)"
181 #: ../align/virt-alignment-scan.pod:73
186 #: ../align/virt-alignment-scan.pod:75
188 "C<ok> if the alignment is best for performance, or C<bad> if the alignment "
189 "can cause performance problems"
193 #: ../align/virt-alignment-scan.pod:78
198 #: ../align/virt-alignment-scan.pod:80
199 msgid "optional free-text explanation."
203 #: ../align/virt-alignment-scan.pod:84
205 "The exit code from the program changes depending on whether poorly aligned "
206 "partitions were found. See L</EXIT STATUS> below."
210 #: ../align/virt-alignment-scan.pod:87
211 msgid "If you just want the exit code with no output, use the I<-q> option."
215 #: ../align/virt-alignment-scan.pod:89 ../cat/virt-cat.pod:62 ../cat/virt-filesystems.pod:91 ../cat/virt-ls.pod:261 ../clone/virt-sysprep.pod:42 ../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:92 ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:84 ../resize/virt-resize.pod:262 ../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
220 #: ../align/virt-alignment-scan.pod:93 ../cat/virt-cat.pod:66 ../cat/virt-filesystems.pod:95 ../cat/virt-ls.pod:265 ../clone/virt-sysprep.pod:46 ../df/virt-df.pod:63 ../edit/virt-edit.pod:66 ../fish/guestfish.pod:152 ../fuse/guestmount.pod:160 ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:88 ../resize/virt-resize.pod:266 ../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
225 #: ../align/virt-alignment-scan.pod:95 ../cat/virt-cat.pod:68 ../cat/virt-filesystems.pod:97 ../cat/virt-ls.pod:267 ../clone/virt-sysprep.pod:48 ../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
226 msgid "Display brief help."
230 #: ../align/virt-alignment-scan.pod:97 ../cat/virt-cat.pod:70 ../cat/virt-filesystems.pod:99 ../cat/virt-ls.pod:269 ../clone/virt-sysprep.pod:50 ../df/virt-df.pod:67 ../edit/virt-edit.pod:70 ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:92
235 #: ../align/virt-alignment-scan.pod:99 ../cat/virt-cat.pod:72 ../cat/virt-filesystems.pod:101 ../cat/virt-ls.pod:271 ../clone/virt-sysprep.pod:52 ../df/virt-df.pod:69 ../edit/virt-edit.pod:72 ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:94
236 msgid "B<--add> file"
240 #: ../align/virt-alignment-scan.pod:101 ../clone/virt-sysprep.pod:54
241 msgid "Add I<file> which should be a disk image from a virtual machine."
245 #: ../align/virt-alignment-scan.pod:103 ../cat/virt-cat.pod:78 ../cat/virt-filesystems.pod:107 ../cat/virt-ls.pod:277 ../clone/virt-sysprep.pod:56 ../df/virt-df.pod:75 ../edit/virt-edit.pod:78 ../fish/guestfish.pod:174 ../fuse/guestmount.pod:102 ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:100
247 "The format of the disk image is auto-detected. To override this and force a "
248 "particular format use the I<--format=..> option."
252 #: ../align/virt-alignment-scan.pod:106 ../cat/virt-cat.pod:81 ../cat/virt-filesystems.pod:125 ../cat/virt-ls.pod:291 ../clone/virt-sysprep.pod:59 ../df/virt-df.pod:78 ../rescue/virt-rescue.pod:107
257 #: ../align/virt-alignment-scan.pod:108 ../cat/virt-cat.pod:83 ../cat/virt-filesystems.pod:127 ../cat/virt-ls.pod:293 ../clone/virt-sysprep.pod:61 ../df/virt-df.pod:80 ../rescue/virt-rescue.pod:109
258 msgid "B<--connect> URI"
262 #: ../align/virt-alignment-scan.pod:110 ../cat/virt-cat.pod:85 ../cat/virt-filesystems.pod:129 ../cat/virt-ls.pod:295 ../clone/virt-sysprep.pod:63 ../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
264 "If using libvirt, connect to the given I<URI>. If omitted, then we connect "
265 "to the default libvirt hypervisor."
269 #: ../align/virt-alignment-scan.pod:113 ../cat/virt-cat.pod:88 ../cat/virt-filesystems.pod:132 ../cat/virt-ls.pod:298 ../clone/virt-sysprep.pod:66 ../df/virt-df.pod:85 ../rescue/virt-rescue.pod:114
271 "If you specify guest block devices directly (I<-a>), then libvirt is not "
276 #: ../align/virt-alignment-scan.pod:116 ../cat/virt-cat.pod:91 ../cat/virt-filesystems.pod:141 ../cat/virt-ls.pod:307 ../clone/virt-sysprep.pod:69 ../df/virt-df.pod:94 ../edit/virt-edit.pod:105 ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:117
281 #: ../align/virt-alignment-scan.pod:118 ../cat/virt-cat.pod:93 ../cat/virt-filesystems.pod:143 ../cat/virt-ls.pod:309 ../clone/virt-sysprep.pod:71 ../df/virt-df.pod:96 ../edit/virt-edit.pod:107 ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:119
282 msgid "B<--domain> guest"
286 #: ../align/virt-alignment-scan.pod:120 ../cat/virt-cat.pod:95 ../cat/virt-filesystems.pod:145 ../cat/virt-ls.pod:311 ../clone/virt-sysprep.pod:73 ../df/virt-df.pod:98 ../edit/virt-edit.pod:109 ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:121
288 "Add all the disks from the named libvirt guest. Domain UUIDs can be used "
293 #: ../align/virt-alignment-scan.pod:123 ../cat/virt-cat.pod:105 ../cat/virt-filesystems.pod:170 ../cat/virt-ls.pod:328 ../clone/virt-sysprep.pod:95 ../df/virt-df.pod:101 ../fish/guestfish.pod:233 ../fuse/guestmount.pod:142 ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:124
294 msgid "B<--format=raw|qcow2|..>"
298 #: ../align/virt-alignment-scan.pod:125 ../cat/virt-cat.pod:107 ../cat/virt-filesystems.pod:172 ../cat/virt-ls.pod:330 ../clone/virt-sysprep.pod:97 ../df/virt-df.pod:103 ../edit/virt-edit.pod:134 ../fish/guestfish.pod:235 ../fuse/guestmount.pod:144 ../inspector/virt-inspector.pod:101 ../rescue/virt-rescue.pod:126
303 #: ../align/virt-alignment-scan.pod:127 ../cat/virt-cat.pod:109 ../cat/virt-filesystems.pod:174 ../cat/virt-ls.pod:332 ../clone/virt-sysprep.pod:99 ../df/virt-df.pod:105 ../edit/virt-edit.pod:136 ../fish/guestfish.pod:237 ../fuse/guestmount.pod:146 ../rescue/virt-rescue.pod:128
305 "The default for the I<-a> option is to auto-detect the format of the disk "
306 "image. Using this forces the disk format for I<-a> options which follow on "
307 "the command line. Using I<--format> with no argument switches back to "
308 "auto-detection for subsequent I<-a> options."
312 #: ../align/virt-alignment-scan.pod:132 ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../clone/virt-sysprep.pod:104 ../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:2877
317 #: ../align/virt-alignment-scan.pod:134
320 " virt-alignment-scan --format=raw -a disk.img\n"
325 #: ../align/virt-alignment-scan.pod:136 ../cat/virt-cat.pod:118 ../cat/virt-filesystems.pod:183 ../cat/virt-ls.pod:341 ../clone/virt-sysprep.pod:108 ../df/virt-df.pod:114 ../edit/virt-edit.pod:145 ../fish/guestfish.pod:246 ../rescue/virt-rescue.pod:137
326 msgid "forces raw format (no auto-detection) for C<disk.img>."
330 #: ../align/virt-alignment-scan.pod:138
333 " virt-alignment-scan --format=raw -a disk.img --format -a another.img\n"
338 #: ../align/virt-alignment-scan.pod:140 ../cat/virt-cat.pod:122 ../cat/virt-filesystems.pod:187 ../cat/virt-ls.pod:345 ../clone/virt-sysprep.pod:112 ../df/virt-df.pod:118 ../edit/virt-edit.pod:149 ../fish/guestfish.pod:250 ../rescue/virt-rescue.pod:141
340 "forces raw format (no auto-detection) for C<disk.img> and reverts to "
341 "auto-detection for C<another.img>."
345 #: ../align/virt-alignment-scan.pod:143 ../cat/virt-cat.pod:125 ../cat/virt-filesystems.pod:190 ../cat/virt-ls.pod:348 ../clone/virt-sysprep.pod:115 ../df/virt-df.pod:121 ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:144
347 "If you have untrusted raw-format guest disk images, you should use this "
348 "option to specify the disk format. This avoids a possible security problem "
349 "with malicious guests (CVE-2010-3851)."
353 #: ../align/virt-alignment-scan.pod:147 ../resize/virt-resize.pod:491 ../sparsify/virt-sparsify.pod:153
358 #: ../align/virt-alignment-scan.pod:149 ../resize/virt-resize.pod:493 ../sparsify/virt-sparsify.pod:155
363 #: ../align/virt-alignment-scan.pod:151
365 "Don't produce any output. Just set the exit code (see L</EXIT STATUS> "
370 #: ../align/virt-alignment-scan.pod:154 ../cat/virt-cat.pod:134 ../cat/virt-filesystems.pod:261 ../cat/virt-ls.pod:425 ../clone/virt-sysprep.pod:138 ../df/virt-df.pod:173 ../edit/virt-edit.pod:161 ../fish/guestfish.pod:390 ../fuse/guestmount.pod:266 ../inspector/virt-inspector.pod:119 ../rescue/virt-rescue.pod:182 ../sparsify/virt-sparsify.pod:159
375 #: ../align/virt-alignment-scan.pod:156 ../cat/virt-cat.pod:136 ../cat/virt-filesystems.pod:263 ../cat/virt-ls.pod:427 ../clone/virt-sysprep.pod:140 ../df/virt-df.pod:175 ../edit/virt-edit.pod:163 ../fish/guestfish.pod:392 ../fuse/guestmount.pod:268 ../inspector/virt-inspector.pod:121 ../rescue/virt-rescue.pod:184 ../sparsify/virt-sparsify.pod:161
380 #: ../align/virt-alignment-scan.pod:158 ../cat/virt-cat.pod:138 ../cat/virt-filesystems.pod:265 ../cat/virt-ls.pod:429 ../clone/virt-sysprep.pod:142 ../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
381 msgid "Enable verbose messages for debugging."
385 #: ../align/virt-alignment-scan.pod:160 ../cat/virt-cat.pod:140 ../cat/virt-filesystems.pod:267 ../cat/virt-ls.pod:431 ../clone/virt-sysprep.pod:144 ../df/virt-df.pod:179 ../edit/virt-edit.pod:167 ../fish/guestfish.pod:397 ../fuse/guestmount.pod:272 ../inspector/virt-inspector.pod:125 ../rescue/virt-rescue.pod:188 ../resize/virt-resize.pod:561 ../sparsify/virt-sparsify.pod:165
390 #: ../align/virt-alignment-scan.pod:162 ../cat/virt-cat.pod:142 ../cat/virt-filesystems.pod:269 ../cat/virt-ls.pod:433 ../clone/virt-sysprep.pod:146 ../df/virt-df.pod:181 ../edit/virt-edit.pod:169 ../fish/guestfish.pod:399 ../fuse/guestmount.pod:274 ../inspector/virt-inspector.pod:127 ../rescue/virt-rescue.pod:190 ../resize/virt-resize.pod:563 ../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
395 #: ../align/virt-alignment-scan.pod:164 ../cat/virt-cat.pod:144 ../cat/virt-filesystems.pod:271 ../cat/virt-ls.pod:435 ../clone/virt-sysprep.pod:148 ../df/virt-df.pod:183 ../edit/virt-edit.pod:171 ../inspector/virt-inspector.pod:129 ../rescue/virt-rescue.pod:192 ../resize/virt-resize.pod:565 ../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
396 msgid "Display version number and exit."
400 #: ../align/virt-alignment-scan.pod:166 ../cat/virt-cat.pod:146 ../cat/virt-filesystems.pod:281 ../cat/virt-ls.pod:437 ../clone/virt-sysprep.pod:150 ../df/virt-df.pod:185 ../edit/virt-edit.pod:173 ../fish/guestfish.pod:412 ../fuse/guestmount.pod:287 ../inspector/virt-inspector.pod:131 ../rescue/virt-rescue.pod:203 ../sparsify/virt-sparsify.pod:171 ../tools/virt-tar.pl:158
405 #: ../align/virt-alignment-scan.pod:168 ../cat/virt-cat.pod:148 ../cat/virt-filesystems.pod:283 ../cat/virt-ls.pod:439 ../clone/virt-sysprep.pod:152 ../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
406 msgid "Enable tracing of libguestfs API calls."
410 #: ../align/virt-alignment-scan.pod:172
411 msgid "RECOMMENDED ALIGNMENT"
415 #: ../align/virt-alignment-scan.pod:174
417 "Operating systems older than Windows 2008 and Linux before ca.2010 place the "
418 "first sector of the first partition at sector 63, with a 512 byte sector "
419 "size. This happens because of a historical accident. Drives have to report "
420 "a cylinder / head / sector (CHS) geometry to the BIOS. The geometry is "
421 "completely meaningless on modern drives, but it happens that the geometry "
422 "reported always has 63 sectors per track. The operating system therefore "
423 "places the first partition at the start of the second \"track\", at sector "
428 #: ../align/virt-alignment-scan.pod:183
430 "When the guest OS is virtualized, the host operating system and hypervisor "
431 "may prefer accesses aligned to one of:"
435 #: ../align/virt-alignment-scan.pod:188
440 #: ../align/virt-alignment-scan.pod:190
442 "if the host OS uses local storage directly on hard drive partitions, and the "
443 "hard drive has 512 byte physical sectors."
447 #: ../align/virt-alignment-scan.pod:193
452 #: ../align/virt-alignment-scan.pod:195
454 "for local storage on new hard drives with 4Kbyte physical sectors; for "
455 "file-backed storage on filesystems with 4Kbyte block size; or for some types "
456 "of network-attached storage."
460 #: ../align/virt-alignment-scan.pod:199
465 #: ../align/virt-alignment-scan.pod:201
467 "for high-end network-attached storage. This is the optimal block size for "
468 "some NetApp hardware."
472 #: ../align/virt-alignment-scan.pod:204
477 #: ../align/virt-alignment-scan.pod:206
478 msgid "see L</1 MB PARTITION ALIGNMENT> below."
482 #: ../align/virt-alignment-scan.pod:210
484 "Partitions which are not aligned correctly to the underlying storage cause "
485 "extra I/O. For example:"
489 #: ../align/virt-alignment-scan.pod:213
493 " +--------------------------+------\n"
495 " | filesystem block |\n"
496 " ---+------------------+------+-------------------+-----+---\n"
497 " | host block | host block |\n"
499 " ---+-------------------------+-------------------------+---\n"
504 #: ../align/virt-alignment-scan.pod:222
506 "In this example, each time a 4K guest block is read, two blocks on the host "
507 "must be accessed (so twice as much I/O is done). When a 4K guest block is "
508 "written, two host blocks must first be read, the old and new data combined, "
509 "and the two blocks written back (4x I/O)."
513 #: ../align/virt-alignment-scan.pod:227
514 msgid "LINUX HOST BLOCK AND I/O SIZE"
518 #: ../align/virt-alignment-scan.pod:229
520 "New versions of the Linux kernel expose the physical and logical block size, "
521 "and minimum and recommended I/O size."
525 #: ../align/virt-alignment-scan.pod:232
526 msgid "For a typical hard drive with 512 byte sectors:"
530 #: ../align/virt-alignment-scan.pod:234
533 " $ cat /sys/block/sda/queue/physical_block_size\n"
535 " $ cat /sys/block/sda/queue/logical_block_size\n"
537 " $ cat /sys/block/sda/queue/minimum_io_size\n"
539 " $ cat /sys/block/sda/queue/optimal_io_size\n"
545 #: ../align/virt-alignment-scan.pod:243
546 msgid "For a NetApp LUN:"
550 #: ../align/virt-alignment-scan.pod:245
553 " $ cat /sys/block/sdc/queue/logical_block_size\n"
555 " $ cat /sys/block/sdc/queue/physical_block_size\n"
557 " $ cat /sys/block/sdc/queue/minimum_io_size\n"
559 " $ cat /sys/block/sdc/queue/optimal_io_size\n"
565 #: ../align/virt-alignment-scan.pod:254
567 "The NetApp allows 512 byte accesses (but they will be very inefficient), "
568 "prefers a minimum 4K I/O size, but the optimal I/O size is 64K."
572 #: ../align/virt-alignment-scan.pod:258
574 "For detailed information about what these numbers mean, see "
575 "L<http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/newstorage-iolimits.html>"
579 #: ../align/virt-alignment-scan.pod:261
581 "[Thanks to Mike Snitzer for providing NetApp data and additional "
586 #: ../align/virt-alignment-scan.pod:264
587 msgid "1 MB PARTITION ALIGNMENT"
591 #: ../align/virt-alignment-scan.pod:266
593 "Microsoft picked 1 MB as the default alignment for all partitions starting "
594 "with Windows 2008 Server, and Linux has followed this."
598 #: ../align/virt-alignment-scan.pod:269
600 "Assuming 512 byte sectors in the guest, you will now see the first partition "
601 "starting at sector 2048, and subsequent partitions (if any) will start at a "
602 "multiple of 2048 sectors."
606 #: ../align/virt-alignment-scan.pod:273
608 "1 MB alignment is compatible with all current alignment requirements (4K, "
609 "64K) and provides room for future growth in physical block sizes."
613 #: ../align/virt-alignment-scan.pod:276
614 msgid "SETTING ALIGNMENT"
618 #: ../align/virt-alignment-scan.pod:278
620 "L<virt-resize(1)> can change the alignment of the partitions of some "
621 "guests. Currently it can fully align all the partitions of all Windows "
622 "guests, and it will fix the bootloader where necessary. For Linux guests, "
623 "it can align the second and subsequent partitions, so the majority of OS "
624 "accesses except at boot will be aligned."
628 #: ../align/virt-alignment-scan.pod:284
630 "Another way to correct partition alignment problems is to reinstall your "
631 "guest operating systems. If you install operating systems from templates, "
632 "ensure these have correct partition alignment too."
636 #: ../align/virt-alignment-scan.pod:288
638 "For older versions of Windows, the following NetApp document contains useful "
639 "information: L<http://media.netapp.com/documents/tr-3747.pdf>"
643 #: ../align/virt-alignment-scan.pod:291
645 "For Red Hat Enterprise Linux E<le> 5, use a Kickstart script that contains "
646 "an explicit C<%pre> section that creates aligned partitions using "
647 "L<parted(8)>. Do not use the Kickstart C<part> command. The NetApp "
648 "document above contains an example."
652 #: ../align/virt-alignment-scan.pod:296 ../cat/virt-cat.pod:231 ../cat/virt-filesystems.pod:373 ../cat/virt-ls.pod:483 ../clone/virt-sysprep.pod:475 ../df/virt-df.pod:215 ../edit/virt-edit.pod:342 ../inspector/virt-inspector.pod:352 ../rescue/virt-rescue.pod:266 ../resize/virt-resize.pod:676 ../tools/virt-list-filesystems.pl:188 ../tools/virt-list-partitions.pl:258 ../tools/virt-make-fs.pl:550 ../tools/virt-tar.pl:289 ../tools/virt-win-reg.pl:744
653 msgid "SHELL QUOTING"
657 #: ../align/virt-alignment-scan.pod:298 ../cat/virt-cat.pod:233 ../cat/virt-filesystems.pod:375 ../cat/virt-ls.pod:485 ../clone/virt-sysprep.pod:477 ../df/virt-df.pod:217 ../edit/virt-edit.pod:344 ../inspector/virt-inspector.pod:354 ../rescue/virt-rescue.pod:268 ../resize/virt-resize.pod:678 ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260 ../tools/virt-make-fs.pl:552 ../tools/virt-tar.pl:291 ../tools/virt-win-reg.pl:752
659 "Libvirt guest names can contain arbitrary characters, some of which have "
660 "meaning to the shell such as C<#> and space. You may need to quote or "
661 "escape these characters on the command line. See the shell manual page "
662 "L<sh(1)> for details."
666 #: ../align/virt-alignment-scan.pod:303 ../cat/virt-cat.pod:238 ../cat/virt-filesystems.pod:380 ../cat/virt-ls.pod:490 ../clone/virt-sysprep.pod:482 ../df/virt-df.pod:222 ../edit/virt-edit.pod:349 ../fish/guestfish.pod:1114 ../fuse/guestmount.pod:312 ../inspector/virt-inspector.pod:375 ../resize/virt-resize.pod:683 ../sparsify/virt-sparsify.pod:227 ../test-tool/libguestfs-test-tool.pod:90
671 #: ../align/virt-alignment-scan.pod:305
672 msgid "This program returns:"
676 #: ../align/virt-alignment-scan.pod:309 ../align/virt-alignment-scan.pod:315 ../align/virt-alignment-scan.pod:321 ../align/virt-alignment-scan.pod:328 ../cat/virt-cat.pod:177 ../cat/virt-cat.pod:182 ../cat/virt-cat.pod:187 ../cat/virt-cat.pod:198 ../cat/virt-cat.pod:202 ../clone/virt-sysprep.pod:283 ../clone/virt-sysprep.pod:287 ../clone/virt-sysprep.pod:291 ../clone/virt-sysprep.pod:295 ../clone/virt-sysprep.pod:310 ../clone/virt-sysprep.pod:314 ../clone/virt-sysprep.pod:318 ../clone/virt-sysprep.pod:322 ../clone/virt-sysprep.pod:326 ../clone/virt-sysprep.pod:362 ../clone/virt-sysprep.pod:384 ../clone/virt-sysprep.pod:388 ../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:395 ../fish/guestfish-actions.pod:403 ../fish/guestfish-actions.pod:410 ../fish/guestfish-actions.pod:417 ../fish/guestfish-actions.pod:1216 ../fish/guestfish-actions.pod:1220 ../fish/guestfish-actions.pod:1224 ../fish/guestfish-actions.pod:1228 ../fish/guestfish-actions.pod:1236 ../fish/guestfish-actions.pod:1240 ../fish/guestfish-actions.pod:1244 ../fish/guestfish-actions.pod:1254 ../fish/guestfish-actions.pod:1258 ../fish/guestfish-actions.pod:1262 ../fish/guestfish-actions.pod:1352 ../fish/guestfish-actions.pod:1356 ../fish/guestfish-actions.pod:1361 ../fish/guestfish-actions.pod:1366 ../fish/guestfish-actions.pod:1408 ../fish/guestfish-actions.pod:1412 ../fish/guestfish-actions.pod:1417 ../fish/guestfish-actions.pod:1673 ../fish/guestfish-actions.pod:1680 ../fish/guestfish-actions.pod:1687 ../fish/guestfish-actions.pod:2090 ../fish/guestfish-actions.pod:2096 ../fish/guestfish-actions.pod:2104 ../fish/guestfish-actions.pod:2111 ../fish/guestfish-actions.pod:2118 ../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:359 ../resize/virt-resize.pod:363 ../resize/virt-resize.pod:372 ../resize/virt-resize.pod:378 ../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:594 ../src/guestfs-actions.pod:602 ../src/guestfs-actions.pod:609 ../src/guestfs-actions.pod:616 ../src/guestfs-actions.pod:2024 ../src/guestfs-actions.pod:2028 ../src/guestfs-actions.pod:2032 ../src/guestfs-actions.pod:2036 ../src/guestfs-actions.pod:2044 ../src/guestfs-actions.pod:2048 ../src/guestfs-actions.pod:2052 ../src/guestfs-actions.pod:2062 ../src/guestfs-actions.pod:2066 ../src/guestfs-actions.pod:2070 ../src/guestfs-actions.pod:2208 ../src/guestfs-actions.pod:2212 ../src/guestfs-actions.pod:2217 ../src/guestfs-actions.pod:2222 ../src/guestfs-actions.pod:2283 ../src/guestfs-actions.pod:2287 ../src/guestfs-actions.pod:2292 ../src/guestfs-actions.pod:2707 ../src/guestfs-actions.pod:2714 ../src/guestfs-actions.pod:2721 ../src/guestfs-actions.pod:3266 ../src/guestfs-actions.pod:3272 ../src/guestfs-actions.pod:3280 ../src/guestfs-actions.pod:3287 ../src/guestfs-actions.pod:3294 ../src/guestfs.pod:403 ../src/guestfs.pod:408 ../src/guestfs.pod:413 ../src/guestfs.pod:417 ../src/guestfs.pod:422 ../src/guestfs.pod:426 ../src/guestfs.pod:431 ../src/guestfs.pod:436 ../src/guestfs.pod:1109 ../src/guestfs.pod:1113 ../src/guestfs.pod:1117 ../src/guestfs.pod:1122 ../src/guestfs.pod:1130 ../src/guestfs.pod:1149 ../src/guestfs.pod:1157 ../src/guestfs.pod:1179 ../src/guestfs.pod:1183 ../src/guestfs.pod:1187 ../src/guestfs.pod:1191 ../src/guestfs.pod:1195 ../src/guestfs.pod:1199 ../src/guestfs.pod:1689 ../src/guestfs.pod:1694 ../src/guestfs.pod:1698 ../src/guestfs.pod:1800 ../src/guestfs.pod:1805 ../src/guestfs.pod:1809 ../src/guestfs.pod:1819 ../src/guestfs.pod:2108 ../src/guestfs.pod:2113 ../src/guestfs.pod:2119 ../src/guestfs.pod:2127 ../src/guestfs.pod:2645 ../src/guestfs.pod:2651 ../src/guestfs.pod:2656 ../src/guestfs.pod:2662 ../src/guestfs.pod:3062 ../src/guestfs.pod:3067 ../src/guestfs.pod:3071 ../src/guestfs.pod:3075 ../src/guestfs.pod:3079 ../src/guestfs.pod:3093 ../src/guestfs.pod:3098 ../src/guestfs.pod:3329 ../src/guestfs.pod:3333 ../src/guestfs.pod:3337 ../src/guestfs.pod:3341 ../tools/virt-win-reg.pl:197 ../tools/virt-win-reg.pl:202 ../tools/virt-win-reg.pl:208 ../tools/virt-win-reg.pl:721 ../tools/virt-win-reg.pl:727 ../tools/virt-win-reg.pl:733
681 #: ../align/virt-alignment-scan.pod:311
686 #: ../align/virt-alignment-scan.pod:313
687 msgid "successful exit, all partitions are aligned E<ge> 64K for best performance"
691 #: ../align/virt-alignment-scan.pod:317
696 #: ../align/virt-alignment-scan.pod:319
697 msgid "an error scanning the disk image or guest"
701 #: ../align/virt-alignment-scan.pod:323
706 #: ../align/virt-alignment-scan.pod:325
708 "successful exit, some partitions have alignment E<lt> 64K which can result "
709 "in poor performance on high end network storage"
713 #: ../align/virt-alignment-scan.pod:330
718 #: ../align/virt-alignment-scan.pod:332
720 "successful exit, some partitions have alignment E<lt> 4K which can result in "
721 "poor performance on most hypervisors"
725 #: ../align/virt-alignment-scan.pod:337 ../cat/virt-cat.pod:243 ../cat/virt-filesystems.pod:385 ../cat/virt-ls.pod:495 ../clone/virt-sysprep.pod:486 ../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:1268 ../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:317 ../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:688 ../ruby/examples/guestfs-ruby.pod:36 ../sparsify/virt-sparsify.pod:251 ../src/guestfs.pod:3270 ../test-tool/libguestfs-test-tool.pod:100 ../tools/virt-list-filesystems.pl:195 ../tools/virt-list-partitions.pl:265 ../tools/virt-make-fs.pl:557 ../tools/virt-tar.pl:296 ../tools/virt-win-reg.pl:757
730 #: ../align/virt-alignment-scan.pod:339
732 "L<guestfs(3)>, L<guestfish(1)>, L<virt-filesystems(1)>, L<virt-rescue(1)>, "
733 "L<virt-resize(1)>, L<http://libguestfs.org/>."
737 #: ../align/virt-alignment-scan.pod:346 ../cat/virt-cat.pod:252 ../cat/virt-filesystems.pod:396 ../cat/virt-ls.pod:507 ../clone/virt-sysprep.pod:501 ../df/virt-df.pod:235 ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:296 ../resize/virt-resize.pod:711 ../sparsify/virt-sparsify.pod:264 ../tools/virt-list-filesystems.pl:208 ../tools/virt-list-partitions.pl:277 ../tools/virt-make-fs.pl:582 ../tools/virt-tar.pl:311 ../tools/virt-win-reg.pl:783
742 #: ../align/virt-alignment-scan.pod:348 ../cat/virt-cat.pod:254 ../cat/virt-filesystems.pod:398 ../cat/virt-ls.pod:509 ../clone/virt-sysprep.pod:503 ../df/virt-df.pod:237 ../edit/virt-edit.pod:370 ../inspector/virt-inspector.pod:395 ../rescue/virt-rescue.pod:298 ../resize/virt-resize.pod:713 ../sparsify/virt-sparsify.pod:266 ../tools/virt-list-filesystems.pl:210 ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:584 ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:785
743 msgid "Richard W.M. Jones L<http://people.redhat.com/~rjones/>"
747 #: ../align/virt-alignment-scan.pod:350 ../cat/virt-cat.pod:256 ../cat/virt-filesystems.pod:400 ../cat/virt-ls.pod:511 ../clone/virt-sysprep.pod:505 ../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:1300 ../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:332 ../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:715 ../ruby/examples/guestfs-ruby.pod:52 ../sparsify/virt-sparsify.pod:268 ../src/guestfs.pod:3352 ../test-tool/libguestfs-test-tool.pod:110 ../tools/virt-list-filesystems.pl:212 ../tools/virt-list-partitions.pl:281 ../tools/virt-make-fs.pl:586 ../tools/virt-tar.pl:315 ../tools/virt-win-reg.pl:787
752 #: ../align/virt-alignment-scan.pod:352 ../clone/virt-sysprep.pod:507 ../sparsify/virt-sparsify.pod:270
753 msgid "Copyright (C) 2011 Red Hat Inc."
757 #: ../align/virt-alignment-scan.pod:354 ../cat/virt-cat.pod:260 ../cat/virt-filesystems.pod:404 ../cat/virt-ls.pod:515 ../clone/virt-sysprep.pod:509 ../df/virt-df.pod:243 ../edit/virt-edit.pod:376 ../fish/guestfish.pod:1305 ../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:337 ../inspector/virt-inspector.pod:407 ../rescue/virt-rescue.pod:304 ../resize/virt-resize.pod:719 ../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:590 ../tools/virt-tar.pl:319 ../tools/virt-win-reg.pl:791
759 "This program is free software; you can redistribute it and/or modify it "
760 "under the terms of the GNU General Public License as published by the Free "
761 "Software Foundation; either version 2 of the License, or (at your option) "
766 #: ../align/virt-alignment-scan.pod:359 ../cat/virt-cat.pod:265 ../cat/virt-filesystems.pod:409 ../cat/virt-ls.pod:520 ../clone/virt-sysprep.pod:514 ../df/virt-df.pod:248 ../edit/virt-edit.pod:381 ../fish/guestfish.pod:1310 ../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:342 ../inspector/virt-inspector.pod:412 ../rescue/virt-rescue.pod:309 ../resize/virt-resize.pod:724 ../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:595 ../tools/virt-tar.pl:324 ../tools/virt-win-reg.pl:796
768 "This program is distributed in the hope that it will be useful, but WITHOUT "
769 "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or "
770 "FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for "
775 #: ../align/virt-alignment-scan.pod:364 ../cat/virt-cat.pod:270 ../cat/virt-filesystems.pod:414 ../cat/virt-ls.pod:525 ../clone/virt-sysprep.pod:519 ../df/virt-df.pod:253 ../edit/virt-edit.pod:386 ../fish/guestfish.pod:1315 ../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:347 ../inspector/virt-inspector.pod:417 ../rescue/virt-rescue.pod:314 ../resize/virt-resize.pod:729 ../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:600 ../tools/virt-tar.pl:329 ../tools/virt-win-reg.pl:801
777 "You should have received a copy of the GNU General Public License along with "
778 "this program; if not, write to the Free Software Foundation, Inc., 675 Mass "
779 "Ave, Cambridge, MA 02139, USA."
783 #: ../cat/virt-cat.pod:5
784 msgid "virt-cat - Display files in a virtual machine"
788 #: ../cat/virt-cat.pod:9
791 " virt-cat [--options] -d domname file [file ...]\n"
796 #: ../cat/virt-cat.pod:11
799 " virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]\n"
804 #: ../cat/virt-cat.pod:13 ../edit/virt-edit.pod:15 ../inspector/virt-inspector.pod:13
809 #: ../cat/virt-cat.pod:15
812 " virt-cat domname file\n"
817 #: ../cat/virt-cat.pod:17
820 " virt-cat disk.img file\n"
825 #: ../cat/virt-cat.pod:21
827 "C<virt-cat> is a command line tool to display the contents of C<file> where "
828 "C<file> exists in the named virtual machine (or disk image)."
832 #: ../cat/virt-cat.pod:24
834 "Multiple filenames can be given, in which case they are concatenated "
835 "together. Each filename must be a full path, starting at the root directory "
836 "(starting with '/')."
840 #: ../cat/virt-cat.pod:28
842 "C<virt-cat> can be used to quickly view a file. To edit a file, use "
843 "C<virt-edit>. For more complex cases you should look at the L<guestfish(1)> "
844 "tool (see L</USING GUESTFISH> below)."
848 #: ../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:1051 ../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
853 #: ../cat/virt-cat.pod:34
854 msgid "Display C</etc/fstab> file from inside the libvirt VM called C<mydomain>:"
858 #: ../cat/virt-cat.pod:37
861 " virt-cat -d mydomain /etc/fstab\n"
866 #: ../cat/virt-cat.pod:39
867 msgid "List syslog messages from a VM disk image file:"
871 #: ../cat/virt-cat.pod:41
874 " virt-cat -a disk.img /var/log/messages | tail\n"
879 #: ../cat/virt-cat.pod:43
880 msgid "Find out what DHCP IP address a VM acquired:"
884 #: ../cat/virt-cat.pod:45
887 " virt-cat -d mydomain /var/log/messages | \\\n"
888 " grep 'dhclient: bound to' | tail\n"
893 #: ../cat/virt-cat.pod:48
894 msgid "Find out what packages were recently installed:"
898 #: ../cat/virt-cat.pod:50
901 " virt-cat -d mydomain /var/log/yum.log | tail\n"
906 #: ../cat/virt-cat.pod:52
907 msgid "Find out who is logged on inside a virtual machine:"
911 #: ../cat/virt-cat.pod:54
914 " virt-cat -d mydomain /var/run/utmp > /tmp/utmp\n"
920 #: ../cat/virt-cat.pod:57
921 msgid "or who was logged on:"
925 #: ../cat/virt-cat.pod:59
928 " virt-cat -d mydomain /var/log/wtmp > /tmp/wtmp\n"
929 " last -f /tmp/wtmp\n"
934 #: ../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
936 "Add I<file> which should be a disk image from a virtual machine. If the "
937 "virtual machine has multiple block devices, you must supply all of them with "
938 "separate I<-a> options."
942 #: ../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:135 ../inspector/virt-inspector.pod:92
943 msgid "B<--echo-keys>"
947 #: ../cat/virt-cat.pod:100
949 "When prompting for keys and passphrases, virt-cat normally turns echoing off "
950 "so you cannot see what you are typing. If you are not worried about Tempest "
951 "attacks and there is no one else in the room you can specify this flag to "
952 "see what you are typing."
956 #: ../cat/virt-cat.pod:116
959 " virt-cat --format=raw -a disk.img file\n"
964 #: ../cat/virt-cat.pod:120
967 " virt-cat --format=raw -a disk.img --format -a another.img file\n"
972 #: ../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:172 ../inspector/virt-inspector.pod:114
973 msgid "B<--keys-from-stdin>"
977 #: ../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:174 ../inspector/virt-inspector.pod:116
979 "Read key or passphrase parameters from stdin. The default is to try to read "
980 "passphrases from the user by opening C</dev/tty>."
984 #: ../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
985 msgid "OLD-STYLE COMMAND LINE ARGUMENTS"
989 #: ../cat/virt-cat.pod:154
990 msgid "Previous versions of virt-cat allowed you to write either:"
994 #: ../cat/virt-cat.pod:156
997 " virt-cat disk.img [disk.img ...] file\n"
1002 #: ../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
1007 #: ../cat/virt-cat.pod:160
1010 " virt-cat guestname file\n"
1015 #: ../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
1017 "whereas in this version you should use I<-a> or I<-d> respectively to avoid "
1018 "the confusing case where a disk image might have the same name as a guest."
1022 #: ../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
1023 msgid "For compatibility the old style is still supported."
1027 #: ../cat/virt-cat.pod:168 ../edit/virt-edit.pod:257 ../fish/guestfish.pod:858
1028 msgid "WINDOWS PATHS"
1032 #: ../cat/virt-cat.pod:170
1034 "C<virt-cat> has a limited ability to understand Windows drive letters and "
1035 "paths (eg. C<E:\\foo\\bar.txt>)."
1039 #: ../cat/virt-cat.pod:173 ../edit/virt-edit.pod:262
1040 msgid "If and only if the guest is running Windows then:"
1044 #: ../cat/virt-cat.pod:179 ../edit/virt-edit.pod:268
1046 "Drive letter prefixes like C<C:> are resolved against the Windows Registry "
1047 "to the correct filesystem."
1051 #: ../cat/virt-cat.pod:184 ../edit/virt-edit.pod:273
1053 "Any backslash (C<\\>) characters in the path are replaced with forward "
1054 "slashes so that libguestfs can process it."
1058 #: ../cat/virt-cat.pod:189
1060 "The path is resolved case insensitively to locate the file that should be "
1065 #: ../cat/virt-cat.pod:194 ../edit/virt-edit.pod:283
1066 msgid "There are some known shortcomings:"
1070 #: ../cat/virt-cat.pod:200 ../edit/virt-edit.pod:289
1071 msgid "Some NTFS symbolic links may not be followed correctly."
1075 #: ../cat/virt-cat.pod:204 ../edit/virt-edit.pod:293
1076 msgid "NTFS junction points that cross filesystems are not followed."
1080 #: ../cat/virt-cat.pod:208 ../edit/virt-edit.pod:297
1081 msgid "USING GUESTFISH"
1085 #: ../cat/virt-cat.pod:210
1087 "L<guestfish(1)> is a more powerful, lower level tool which you can use when "
1088 "C<virt-cat> doesn't work."
1092 #: ../cat/virt-cat.pod:213
1093 msgid "Using C<virt-cat> is approximately equivalent to doing:"
1097 #: ../cat/virt-cat.pod:215
1100 " guestfish --ro -i -d domname download file -\n"
1105 #: ../cat/virt-cat.pod:217
1107 "where C<domname> is the name of the libvirt guest, and C<file> is the full "
1108 "path to the file. Note the final C<-> (meaning \"output to stdout\")."
1112 #: ../cat/virt-cat.pod:221
1114 "The command above uses libguestfs's guest inspection feature and so does not "
1115 "work on guests that libguestfs cannot inspect, or on things like arbitrary "
1116 "disk images that don't contain guests. To display a file from a disk image "
1121 #: ../cat/virt-cat.pod:226
1124 " guestfish --ro -a disk.img -m /dev/sda1 download file -\n"
1129 #: ../cat/virt-cat.pod:228
1131 "where C<disk.img> is the disk image, C</dev/sda1> is the filesystem within "
1132 "the disk image, and C<file> is the full path to the file."
1136 #: ../cat/virt-cat.pod:240 ../cat/virt-filesystems.pod:382 ../cat/virt-ls.pod:492 ../df/virt-df.pod:224 ../edit/virt-edit.pod:351 ../fuse/guestmount.pod:314 ../inspector/virt-inspector.pod:377 ../resize/virt-resize.pod:685 ../sparsify/virt-sparsify.pod:229
1137 msgid "This program returns 0 if successful, or non-zero if there was an error."
1141 #: ../cat/virt-cat.pod:245
1143 "L<guestfs(3)>, L<guestfish(1)>, L<virt-copy-out(1)>, L<virt-edit(1)>, "
1144 "L<virt-tar-out(1)>, L<http://libguestfs.org/>."
1148 #: ../cat/virt-cat.pod:258 ../inspector/virt-inspector.pod:405 ../resize/virt-resize.pod:717 ../tools/virt-make-fs.pl:588
1149 msgid "Copyright (C) 2010-2011 Red Hat Inc."
1153 #: ../cat/virt-filesystems.pod:5
1155 "virt-filesystems - List filesystems, partitions, block devices, LVM in a "
1156 "virtual machine or disk image"
1160 #: ../cat/virt-filesystems.pod:9
1163 " virt-filesystems [--options] -d domname\n"
1168 #: ../cat/virt-filesystems.pod:11
1171 " virt-filesystems [--options] -a disk.img [-a disk.img ...]\n"
1176 #: ../cat/virt-filesystems.pod:15
1178 "This tool allows you to discover filesystems, partitions, logical volumes, "
1179 "and their sizes in a disk image or virtual machine. It is a replacement for "
1180 "L<virt-list-filesystems(1)> and L<virt-list-partitions(1)>."
1184 #: ../cat/virt-filesystems.pod:20
1186 "One use for this tool is from shell scripts to iterate over all filesystems "
1187 "from a disk image:"
1191 #: ../cat/virt-filesystems.pod:23
1194 " for fs in $(virt-filesystems -a disk.img); do\n"
1201 #: ../cat/virt-filesystems.pod:27
1203 "Another use is to list partitions before using another tool to modify those "
1204 "partitions (such as L<virt-resize(1)>). If you are curious about what an "
1205 "unknown disk image contains, use this tool along with L<virt-inspector(1)>."
1209 #: ../cat/virt-filesystems.pod:32
1211 "Various command line options control what this program displays. You need "
1212 "to give either I<-a> or I<-d> options to specify the disk image or libvirt "
1213 "guest respectively. If you just specify that then the program shows "
1214 "filesystems found, one per line, like this:"
1218 #: ../cat/virt-filesystems.pod:37
1221 " $ virt-filesystems -a disk.img\n"
1223 " /dev/vg_guest/lv_root\n"
1228 #: ../cat/virt-filesystems.pod:41
1229 msgid "If you add I<-l> or I<--long> then the output includes extra information:"
1233 #: ../cat/virt-filesystems.pod:44
1236 " $ virt-filesystems -a disk.img -l\n"
1237 " Name Type VFS Label Size\n"
1238 " /dev/sda1 filesystem ext4 boot 524288000\n"
1239 " /dev/vg_guest/lv_root filesystem ext4 root 10212081664\n"
1244 #: ../cat/virt-filesystems.pod:49
1246 "If you add I<--extra> then non-mountable (swap, unknown) filesystems are "
1251 #: ../cat/virt-filesystems.pod:52
1254 " $ virt-filesystems -a disk.img --extra\n"
1256 " /dev/vg_guest/lv_root\n"
1257 " /dev/vg_guest/lv_swap\n"
1258 " /dev/vg_guest/lv_data\n"
1263 #: ../cat/virt-filesystems.pod:58
1264 msgid "If you add I<--partitions> then partitions are shown instead of filesystems:"
1268 #: ../cat/virt-filesystems.pod:60
1271 " $ virt-filesystems -a disk.img --partitions\n"
1278 #: ../cat/virt-filesystems.pod:64
1280 "Similarly you can use I<--logical-volumes>, I<--volume-groups>, "
1281 "I<--physical-volumes>, I<--block-devices> to list those items."
1285 #: ../cat/virt-filesystems.pod:67
1287 "You can use these options in combination as well (if you want a combination "
1288 "including filesystems, you have to add I<--filesystems>). Notice that some "
1289 "items fall into several categories (eg. C</dev/sda1> might be both a "
1290 "partition and a filesystem). These items are listed several times. To get "
1291 "a list which includes absolutely everything that virt-filesystems knows "
1292 "about, use the I<--all> option."
1296 #: ../cat/virt-filesystems.pod:74
1298 "UUIDs (because they are quite long) are not shown by default. Add the "
1299 "I<--uuid> option to display device and filesystem UUIDs in the long output."
1303 #: ../cat/virt-filesystems.pod:78
1305 "I<--all --long --uuid> is a useful combination to display all possible "
1306 "information about everything."
1310 #: ../cat/virt-filesystems.pod:81
1313 " $ virt-filesystems -a win.img --all --long --uuid -h\n"
1314 " Name Type VFS Label Size Parent UUID\n"
1315 " /dev/sda1 filesystem ntfs System Reserved 100M - F81C92571C92112C\n"
1316 " /dev/sda2 filesystem ntfs - 20G - F2E8996AE8992E3B\n"
1317 " /dev/sda1 partition - - 100M /dev/sda -\n"
1318 " /dev/sda2 partition - - 20G /dev/sda -\n"
1319 " /dev/sda device - - 20G - -\n"
1324 #: ../cat/virt-filesystems.pod:89
1325 msgid "For machine-readable output, use I<--csv> to get Comma-Separated Values."
1329 #: ../cat/virt-filesystems.pod:110 ../tools/virt-list-filesystems.pl:121
1334 #: ../cat/virt-filesystems.pod:112
1336 "Display everything. This is currently the same as specifying these options: "
1337 "I<--filesystems>, I<--extra>, I<--partitions>, I<--block-devices>, "
1338 "I<--logical-volumes>, I<--volume-groups>, I<--physical-volumes>. (More may "
1339 "be added to this list in future)."
1343 #: ../cat/virt-filesystems.pod:117
1344 msgid "See also I<--long>."
1348 #: ../cat/virt-filesystems.pod:119
1349 msgid "B<--blkdevs>"
1353 #: ../cat/virt-filesystems.pod:121
1354 msgid "B<--block-devices>"
1358 #: ../cat/virt-filesystems.pod:123
1359 msgid "Display block devices."
1363 #: ../cat/virt-filesystems.pod:135 ../cat/virt-ls.pod:301 ../df/virt-df.pod:88
1368 #: ../cat/virt-filesystems.pod:137 ../cat/virt-ls.pod:303 ../df/virt-df.pod:90
1370 "Write out the results in CSV format (comma-separated values). This format "
1371 "can be imported easily into databases and spreadsheets, but read L</NOTE "
1372 "ABOUT CSV FORMAT> below."
1376 #: ../cat/virt-filesystems.pod:150
1378 "When prompting for keys and passphrases, virt-filesystems normally turns "
1379 "echoing off so you cannot see what you are typing. If you are not worried "
1380 "about Tempest attacks and there is no one else in the room you can specify "
1381 "this flag to see what you are typing."
1385 #: ../cat/virt-filesystems.pod:155
1390 #: ../cat/virt-filesystems.pod:157
1392 "This causes filesystems that are not ordinary, mountable filesystems to be "
1393 "displayed. This category includes swapspace, and filesystems that are empty "
1394 "or contain unknown data."
1398 #: ../cat/virt-filesystems.pod:161
1399 msgid "This option implies I<--filesystems>."
1403 #: ../cat/virt-filesystems.pod:163
1404 msgid "B<--filesystems>"
1408 #: ../cat/virt-filesystems.pod:165
1410 "Display mountable filesystems. If no display option was selected then this "
1411 "option is implied."
1415 #: ../cat/virt-filesystems.pod:168
1416 msgid "With I<--extra>, non-mountable filesystems are shown too."
1420 #: ../cat/virt-filesystems.pod:181
1423 " virt-filesystems --format=raw -a disk.img\n"
1428 #: ../cat/virt-filesystems.pod:185
1431 " virt-filesystems --format=raw -a disk.img --format -a another.img\n"
1436 #: ../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
1441 #: ../cat/virt-filesystems.pod:196 ../cat/virt-ls.pod:354 ../df/virt-df.pod:127 ../tools/virt-list-partitions.pl:111
1442 msgid "B<--human-readable>"
1446 #: ../cat/virt-filesystems.pod:198
1447 msgid "In I<--long> mode, display sizes in human-readable format."
1451 #: ../cat/virt-filesystems.pod:205 ../cat/virt-ls.pod:366 ../tools/virt-list-filesystems.pl:108 ../tools/virt-list-partitions.pl:119
1456 #: ../cat/virt-filesystems.pod:207 ../cat/virt-ls.pod:368 ../tools/virt-list-filesystems.pl:110 ../tools/virt-list-partitions.pl:121
1461 #: ../cat/virt-filesystems.pod:209
1462 msgid "Display extra columns of data (\"long format\")."
1466 #: ../cat/virt-filesystems.pod:211
1467 msgid "A title row is added unless you also specify I<--no-title>."
1471 #: ../cat/virt-filesystems.pod:213
1473 "The extra columns displayed depend on what output you select, and the "
1474 "ordering of columns may change in future versions. Use the title row, "
1475 "I<--csv> output and/or L<csvtool(1)> to match columns to data in external "
1480 #: ../cat/virt-filesystems.pod:218
1482 "Use I<-h> if you want sizes to be displayed in human-readable format. The "
1483 "default is to show raw numbers of I<bytes>."
1487 #: ../cat/virt-filesystems.pod:221
1488 msgid "Use I<--uuid> to display UUIDs too."
1492 #: ../cat/virt-filesystems.pod:223
1497 #: ../cat/virt-filesystems.pod:225
1498 msgid "B<--logvols>"
1502 #: ../cat/virt-filesystems.pod:227
1503 msgid "B<--logical-volumes>"
1507 #: ../cat/virt-filesystems.pod:229
1509 "Display LVM logical volumes. In this mode, these are displayed irrespective "
1510 "of whether the LVs contain filesystems."
1514 #: ../cat/virt-filesystems.pod:232
1515 msgid "B<--no-title>"
1519 #: ../cat/virt-filesystems.pod:234
1520 msgid "In I<--long> mode, don't add a title row."
1524 #: ../cat/virt-filesystems.pod:236
1526 "Note that the order of the columns is not fixed, and may change in future "
1527 "versions of virt-filesystems, so using this option may give you unexpected "
1532 #: ../cat/virt-filesystems.pod:240
1537 #: ../cat/virt-filesystems.pod:242
1538 msgid "B<--partitions>"
1542 #: ../cat/virt-filesystems.pod:244
1544 "Display partitions. In this mode, these are displayed irrespective of "
1545 "whether the partitions contain filesystems."
1549 #: ../cat/virt-filesystems.pod:247
1554 #: ../cat/virt-filesystems.pod:249
1555 msgid "B<--physvols>"
1559 #: ../cat/virt-filesystems.pod:251
1560 msgid "B<--physical-volumes>"
1564 #: ../cat/virt-filesystems.pod:253
1565 msgid "Display LVM physical volumes."
1569 #: ../cat/virt-filesystems.pod:255 ../df/virt-df.pod:163
1574 #: ../cat/virt-filesystems.pod:257
1579 #: ../cat/virt-filesystems.pod:259
1580 msgid "In I<--long> mode, display UUIDs as well."
1584 #: ../cat/virt-filesystems.pod:273
1589 #: ../cat/virt-filesystems.pod:275
1590 msgid "B<--volgroups>"
1594 #: ../cat/virt-filesystems.pod:277
1595 msgid "B<--volume-groups>"
1599 #: ../cat/virt-filesystems.pod:279
1600 msgid "Display LVM volume groups."
1604 #: ../cat/virt-filesystems.pod:287
1609 #: ../cat/virt-filesystems.pod:289
1611 "Note that columns in the output are subject to reordering and change in "
1612 "future versions of this tool."
1616 #: ../cat/virt-filesystems.pod:294
1621 #: ../cat/virt-filesystems.pod:296
1622 msgid "The filesystem, partition, block device or LVM name."
1626 #: ../cat/virt-filesystems.pod:298
1628 "For device and partition names these are displayed as canonical libguestfs "
1629 "names, so that for example C</dev/sda2> is the second partition on the first "
1634 #: ../cat/virt-filesystems.pod:302
1636 "If the I<--long> option is B<not> specified, then only the name column is "
1637 "shown in the output."
1641 #: ../cat/virt-filesystems.pod:305
1646 #: ../cat/virt-filesystems.pod:307
1647 msgid "The object type, for example C<filesystem>, C<lv>, C<device> etc."
1651 #: ../cat/virt-filesystems.pod:309
1656 #: ../cat/virt-filesystems.pod:311
1658 "If there is a filesystem, then this column displays the filesystem type if "
1659 "one could be detected, eg. C<ext4>."
1663 #: ../cat/virt-filesystems.pod:314
1668 #: ../cat/virt-filesystems.pod:316
1670 "If the object has a label (used for identifying and mounting filesystems) "
1671 "then this column contains the label."
1675 #: ../cat/virt-filesystems.pod:319
1680 #: ../cat/virt-filesystems.pod:321
1682 "The partition type byte, displayed as a two digit hexadecimal number. A "
1683 "comprehensive list of partition types can be found here: "
1684 "L<http://www.win.tue.nl/~aeb/partitions/partition_types-1.html>"
1688 #: ../cat/virt-filesystems.pod:325
1689 msgid "This is only applicable for DOS (MBR) partitions."
1693 #: ../cat/virt-filesystems.pod:327
1698 #: ../cat/virt-filesystems.pod:329
1700 "The size of the object in bytes. If the I<--human> option is used then the "
1701 "size is displayed in a human-readable form."
1705 #: ../cat/virt-filesystems.pod:332
1710 #: ../cat/virt-filesystems.pod:334
1712 "The parent column records the parent relationship between objects. For "
1713 "example, if the object is a partition, then this column contains the name of "
1714 "the containing device. If the object is a logical volume, then this column "
1715 "is the name of the volume group."
1719 #: ../cat/virt-filesystems.pod:339
1724 #: ../cat/virt-filesystems.pod:341
1726 "If the object has a UUID (used for identifying and mounting filesystems and "
1727 "block devices) then this column contains the UUID as a string."
1731 #: ../cat/virt-filesystems.pod:345
1732 msgid "The UUID is only displayed if the I<--uuid> option is given."
1736 #: ../cat/virt-filesystems.pod:349 ../cat/virt-ls.pod:459 ../df/virt-df.pod:191
1737 msgid "NOTE ABOUT CSV FORMAT"
1741 #: ../cat/virt-filesystems.pod:351 ../cat/virt-ls.pod:461 ../df/virt-df.pod:193
1743 "Comma-separated values (CSV) is a deceptive format. It I<seems> like it "
1744 "should be easy to parse, but it is definitely not easy to parse."
1748 #: ../cat/virt-filesystems.pod:354 ../cat/virt-ls.pod:464 ../df/virt-df.pod:196
1750 "Myth: Just split fields at commas. Reality: This does I<not> work "
1751 "reliably. This example has two columns:"
1755 #: ../cat/virt-filesystems.pod:357 ../cat/virt-ls.pod:467 ../df/virt-df.pod:199
1758 " \"foo,bar\",baz\n"
1763 #: ../cat/virt-filesystems.pod:359 ../cat/virt-ls.pod:469 ../df/virt-df.pod:201
1765 "Myth: Read the file one line at a time. Reality: This does I<not> work "
1766 "reliably. This example has one row:"
1770 #: ../cat/virt-filesystems.pod:362 ../cat/virt-ls.pod:472 ../df/virt-df.pod:204
1779 #: ../cat/virt-filesystems.pod:365 ../cat/virt-ls.pod:475 ../df/virt-df.pod:207
1781 "For shell scripts, use C<csvtool> (L<http://merjis.com/developers/csv> also "
1782 "packaged in major Linux distributions)."
1786 #: ../cat/virt-filesystems.pod:368 ../cat/virt-ls.pod:478 ../df/virt-df.pod:210
1788 "For other languages, use a CSV processing library (eg. C<Text::CSV> for Perl "
1789 "or Python's built-in csv library)."
1793 #: ../cat/virt-filesystems.pod:371 ../cat/virt-ls.pod:481 ../df/virt-df.pod:213
1794 msgid "Most spreadsheets and databases can import CSV directly."
1798 #: ../cat/virt-filesystems.pod:387
1800 "L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-df(1)>, "
1801 "L<virt-list-filesystems(1)>, L<virt-list-partitions(1)>, L<csvtool(1)>, "
1802 "L<http://libguestfs.org/>."
1806 #: ../cat/virt-filesystems.pod:402 ../tools/virt-win-reg.pl:789
1807 msgid "Copyright (C) 2010 Red Hat Inc."
1811 #: ../cat/virt-ls.pod:5
1812 msgid "virt-ls - List files in a virtual machine"
1816 #: ../cat/virt-ls.pod:9
1819 " virt-ls [--options] -d domname directory [directory ...]\n"
1824 #: ../cat/virt-ls.pod:11
1827 " virt-ls [--options] -a disk.img [-a disk.img ...] directory [directory "
1833 #: ../cat/virt-ls.pod:13 ../df/virt-df.pod:15 ../rescue/virt-rescue.pod:13
1838 #: ../cat/virt-ls.pod:15
1841 " virt-ls [--options] domname directory\n"
1846 #: ../cat/virt-ls.pod:17
1849 " virt-ls [--options] disk.img [disk.img ...] directory\n"
1854 #: ../cat/virt-ls.pod:21
1856 "C<virt-ls> lists filenames, file sizes, checksums, extended attributes and "
1857 "more from a virtual machine or disk image."
1861 #: ../cat/virt-ls.pod:24
1863 "Multiple directory names can be given, in which case the output from each is "
1868 #: ../cat/virt-ls.pod:27
1870 "To list directories from a libvirt guest use the I<-d> option to specify the "
1871 "name of the guest. For a disk image, use the I<-a> option."
1875 #: ../cat/virt-ls.pod:31
1877 "C<virt-ls> can do many simple file listings. For more complicated cases you "
1878 "may need to use L<guestfish(1)>, or write a program directly to the "
1879 "L<guestfs(3)> API."
1883 #: ../cat/virt-ls.pod:37
1884 msgid "Get a list of all files and directories in a virtual machine:"
1888 #: ../cat/virt-ls.pod:39
1891 " virt-ls -R -d guest /\n"
1896 #: ../cat/virt-ls.pod:41
1897 msgid "List all setuid or setgid programs in a Linux virtual machine:"
1901 #: ../cat/virt-ls.pod:43
1904 " virt-ls -lR -d guest / | grep '^- [42]'\n"
1909 #: ../cat/virt-ls.pod:45
1910 msgid "List all public-writable directories in a Linux virtual machine:"
1914 #: ../cat/virt-ls.pod:47
1917 " virt-ls -lR -d guest / | grep '^d ...7'\n"
1922 #: ../cat/virt-ls.pod:49
1923 msgid "List all Unix domain sockets in a Linux virtual machine:"
1927 #: ../cat/virt-ls.pod:51
1930 " virt-ls -lR -d guest / | grep '^s'\n"
1935 #: ../cat/virt-ls.pod:53
1936 msgid "List all regular files with filenames ending in '.png':"
1940 #: ../cat/virt-ls.pod:55
1943 " virt-ls -lR -d guest / | grep -i '^-.*\\.png$'\n"
1948 #: ../cat/virt-ls.pod:57
1949 msgid "To display files larger than 10MB in home directories:"
1953 #: ../cat/virt-ls.pod:59
1956 " virt-ls -lR -d guest /home | awk '$3 > 10*1024*1024'\n"
1961 #: ../cat/virt-ls.pod:61
1962 msgid "Find everything modified in the last 7 days:"
1966 #: ../cat/virt-ls.pod:63
1969 " virt-ls -lR -d guest --time-days / | awk '$6 <= 7'\n"
1974 #: ../cat/virt-ls.pod:65
1975 msgid "Find regular files modified in the last 24 hours:"
1979 #: ../cat/virt-ls.pod:67
1982 " virt-ls -lR -d guest --time-days / | grep '^-' | awk '$6 < 1'\n"
1987 #: ../cat/virt-ls.pod:69
1988 msgid "DIFFERENCES IN SNAPSHOTS AND BACKING FILES"
1992 #: ../cat/virt-ls.pod:71
1994 "Find the differences between files in a guest and an earlier snapshot of the "
1999 #: ../cat/virt-ls.pod:74
2002 " virt-ls -lR -a snapshot.img / --uids --time-t > old\n"
2003 " virt-ls -lR -a current.img / --uids --time-t > new\n"
2004 " diff -u old new | less\n"
2009 #: ../cat/virt-ls.pod:78
2011 "The commands above won't find files where the content has changed but the "
2012 "metadata (eg. file size and modification date) is the same. To do that, you "
2013 "need to add the I<--checksum> parameter to both C<virt-ls> commands. "
2014 "I<--checksum> can be quite slow since it has to read and compute a checksum "
2015 "of every regular file in the virtual machine."
2019 #: ../cat/virt-ls.pod:84
2020 msgid "OUTPUT MODES"
2024 #: ../cat/virt-ls.pod:86
2026 "C<virt-ls> has four output modes, controlled by different combinations of "
2027 "the I<-l> and I<-R> options."
2031 #: ../cat/virt-ls.pod:89
2032 msgid "SIMPLE LISTING"
2036 #: ../cat/virt-ls.pod:91
2037 msgid "A simple listing is like the ordinary L<ls(1)> command:"
2041 #: ../cat/virt-ls.pod:93
2044 " $ virt-ls -d guest /\n"
2052 #: ../cat/virt-ls.pod:98
2053 msgid "LONG LISTING"
2057 #: ../cat/virt-ls.pod:100
2059 "With the I<-l> (I<--long>) option, the output is like the C<ls -l> command "
2060 "(more specifically, like the C<guestfs_ll> function)."
2064 #: ../cat/virt-ls.pod:103
2067 " $ virt-ls -l -d guest /\n"
2069 " dr-xr-xr-x. 2 root root 4096 2009-08-25 19:06 bin\n"
2070 " dr-xr-xr-x. 5 root root 3072 2009-08-25 19:06 boot\n"
2076 #: ../cat/virt-ls.pod:109
2078 "Note that while this is useful for displaying a directory, do not try "
2079 "parsing this output in another program. Use L</RECURSIVE LONG LISTING> "
2084 #: ../cat/virt-ls.pod:113
2085 msgid "RECURSIVE LISTING"
2089 #: ../cat/virt-ls.pod:115
2091 "With the I<-R> (I<--recursive>) option, C<virt-ls> lists the names of files "
2092 "and directories recursively:"
2096 #: ../cat/virt-ls.pod:118
2099 " $ virt-ls -R -d guest /tmp\n"
2107 #: ../cat/virt-ls.pod:123
2109 "To generate this output, C<virt-ls> runs the C<guestfs_find0> function and "
2110 "converts C<\\0> characters to C<\\n>."
2114 #: ../cat/virt-ls.pod:126
2115 msgid "RECURSIVE LONG LISTING"
2119 #: ../cat/virt-ls.pod:128
2121 "Using I<-lR> options together changes the output to display directories "
2122 "recursively, with file stats, and optionally other features such as "
2123 "checksums and extended attributes."
2127 #: ../cat/virt-ls.pod:132
2129 "Most of the interesting features of C<virt-ls> are only available when using "
2134 #: ../cat/virt-ls.pod:135
2136 "The fields are normally space-separated. Filenames are B<not> quoted, so "
2137 "you cannot use the output in another program (because filenames can contain "
2138 "spaces and other unsafe characters). If the guest was untrusted and someone "
2139 "knew you were using C<virt-ls> to analyze the guest, they could play tricks "
2140 "on you by creating filenames with embedded newline characters. To B<safely> "
2141 "parse the output in another program, use the I<--csv> (Comma-Separated "
2146 #: ../cat/virt-ls.pod:143
2148 "Note that this output format is completely unrelated to the C<ls -lR> "
2153 #: ../cat/virt-ls.pod:146
2156 " $ virt-ls -lR -d guest /bin\n"
2157 " d 0555 4096 /bin\n"
2158 " - 0755 123 /bin/alsaunmute\n"
2159 " - 0755 28328 /bin/arch\n"
2160 " l 0777 4 /bin/awk -> gawk\n"
2161 " - 0755 27216 /bin/basename\n"
2162 " - 0755 943360 /bin/bash\n"
2168 #: ../cat/virt-ls.pod:155
2169 msgid "These basic fields are always shown:"
2173 #: ../cat/virt-ls.pod:159
2178 #: ../cat/virt-ls.pod:161
2180 "The file type, one of: C<-> (regular file), C<d> (directory), C<c> "
2181 "(character device), C<b> (block device), C<p> (named pipe), C<l> (symbolic "
2182 "link), C<s> (socket) or C<u> (unknown)."
2186 #: ../cat/virt-ls.pod:171
2191 #: ../cat/virt-ls.pod:173
2192 msgid "The Unix permissions, displayed as a 4 digit octal number."
2196 #: ../cat/virt-ls.pod:175
2201 #: ../cat/virt-ls.pod:177
2203 "The size of the file. This is shown in bytes unless I<-h> or "
2204 "I<--human-readable> option is given, in which case this is shown as a "
2205 "human-readable number."
2209 #: ../cat/virt-ls.pod:181 ../fish/guestfish-actions.pod:4349
2214 #: ../cat/virt-ls.pod:183
2215 msgid "The full path of the file or directory."
2219 #: ../cat/virt-ls.pod:185
2224 #: ../cat/virt-ls.pod:187
2225 msgid "For symbolic links only, the link target."
2229 #: ../cat/virt-ls.pod:191
2231 "In I<-lR> mode, additional command line options enable the display of more "
2236 #: ../cat/virt-ls.pod:194
2238 "With the I<--uids> flag, these additional fields are displayed before the "
2243 #: ../cat/virt-ls.pod:199
2248 #: ../cat/virt-ls.pod:201
2253 #: ../cat/virt-ls.pod:203
2255 "The UID and GID of the owner of the file (displayed numerically). Note "
2256 "these only make sense in the context of a Unix-like guest."
2260 #: ../cat/virt-ls.pod:208
2261 msgid "With the I<--times> flag, these additional fields are displayed:"
2265 #: ../cat/virt-ls.pod:212
2270 #: ../cat/virt-ls.pod:214
2271 msgid "The time of last access."
2275 #: ../cat/virt-ls.pod:216
2280 #: ../cat/virt-ls.pod:218
2281 msgid "The time of last modification."
2285 #: ../cat/virt-ls.pod:220
2290 #: ../cat/virt-ls.pod:222
2291 msgid "The time of last status change."
2295 #: ../cat/virt-ls.pod:226
2297 "The time fields are displayed as string dates and times, unless one of the "
2298 "I<--time-t>, I<--time-relative> or I<--time-days> flags is given."
2302 #: ../cat/virt-ls.pod:229
2303 msgid "With the I<--extra-stats> flag, these additional fields are displayed:"
2307 #: ../cat/virt-ls.pod:233
2312 #: ../cat/virt-ls.pod:235
2314 "The device containing the file (displayed as major:minor). This may not "
2315 "match devices as known to the guest."
2319 #: ../cat/virt-ls.pod:238
2324 #: ../cat/virt-ls.pod:240
2325 msgid "The inode number."
2329 #: ../cat/virt-ls.pod:242
2334 #: ../cat/virt-ls.pod:244
2335 msgid "The number of hard links."
2339 #: ../cat/virt-ls.pod:246
2344 #: ../cat/virt-ls.pod:248
2345 msgid "For block and char special files, the device (displayed as major:minor)."
2349 #: ../cat/virt-ls.pod:251
2354 #: ../cat/virt-ls.pod:253
2355 msgid "The number of 512 byte blocks allocated to the file."
2359 #: ../cat/virt-ls.pod:257
2361 "With the I<--checksum> flag, the checksum of the file contents is shown "
2362 "(only for regular files). Computing file checksums can take a considerable "
2367 #: ../cat/virt-ls.pod:280
2368 msgid "B<--checksum>"
2372 #: ../cat/virt-ls.pod:282
2373 msgid "B<--checksum=crc|md5|sha1|sha224|sha256|sha384|sha512>"
2377 #: ../cat/virt-ls.pod:284
2379 "Display checksum over file contents for regular files. With no argument, "
2380 "this defaults to using I<md5>. Using an argument, you can select the "
2381 "checksum type to use."
2385 #: ../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
2387 "This option only has effect in I<-lR> output mode. See L</RECURSIVE LONG "
2392 #: ../cat/virt-ls.pod:316
2394 "When prompting for keys and passphrases, virt-ls normally turns echoing off "
2395 "so you cannot see what you are typing. If you are not worried about Tempest "
2396 "attacks and there is no one else in the room you can specify this flag to "
2397 "see what you are typing."
2401 #: ../cat/virt-ls.pod:321
2402 msgid "B<--extra-stats>"
2406 #: ../cat/virt-ls.pod:323
2407 msgid "Display extra stats."
2411 #: ../cat/virt-ls.pod:339
2414 " virt-ls --format=raw -a disk.img /dir\n"
2419 #: ../cat/virt-ls.pod:343
2422 " virt-ls --format=raw -a disk.img --format -a another.img /dir\n"
2427 #: ../cat/virt-ls.pod:356
2428 msgid "Display file sizes in human-readable format."
2432 #: ../cat/virt-ls.pod:370
2437 #: ../cat/virt-ls.pod:372
2438 msgid "B<--recursive>"
2442 #: ../cat/virt-ls.pod:374
2444 "Select the mode. With neither of these options, C<virt-ls> produces a "
2445 "simple, flat list of the files in the named directory. See L</SIMPLE "
2450 #: ../cat/virt-ls.pod:378
2452 "C<virt-ls -l> produces a \"long listing\", which shows more detail. See "
2457 #: ../cat/virt-ls.pod:381
2459 "C<virt-ls -R> produces a recursive list of files starting at the named "
2460 "directory. See L</RECURSIVE LISTING>."
2464 #: ../cat/virt-ls.pod:384
2466 "C<virt-ls -lR> produces a recursive long listing which can be more easily "
2467 "parsed. See L</RECURSIVE LONG LISTING>."
2471 #: ../cat/virt-ls.pod:387
2476 #: ../cat/virt-ls.pod:389
2477 msgid "Display time fields."
2481 #: ../cat/virt-ls.pod:394
2482 msgid "B<--time-days>"
2486 #: ../cat/virt-ls.pod:396
2487 msgid "Display time fields as days before now (negative if in the future)."
2491 #: ../cat/virt-ls.pod:398
2493 "Note that C<0> in output means \"up to 1 day before now\", or that the age "
2494 "of the file is between 0 and 86399 seconds."
2498 #: ../cat/virt-ls.pod:404
2499 msgid "B<--time-relative>"
2503 #: ../cat/virt-ls.pod:406
2504 msgid "Display time fields as seconds before now (negative if in the future)."
2508 #: ../cat/virt-ls.pod:411
2513 #: ../cat/virt-ls.pod:413
2514 msgid "Display time fields as seconds since the Unix epoch."
2518 #: ../cat/virt-ls.pod:418
2523 #: ../cat/virt-ls.pod:420
2524 msgid "Display UID and GID fields."
2528 #: ../cat/virt-ls.pod:445
2529 msgid "Previous versions of virt-ls allowed you to write either:"
2533 #: ../cat/virt-ls.pod:447
2536 " virt-ls disk.img [disk.img ...] /dir\n"
2541 #: ../cat/virt-ls.pod:451
2544 " virt-ls guestname /dir\n"
2549 #: ../cat/virt-ls.pod:497
2551 "L<guestfs(3)>, L<guestfish(1)>, L<virt-cat(1)>, L<virt-copy-out(1)>, "
2552 "L<virt-tar-out(1)>, L<Sys::Guestfs(3)>, L<Sys::Guestfs::Lib(3)>, "
2553 "L<Sys::Virt(3)>, L<http://libguestfs.org/>."
2557 #: ../cat/virt-ls.pod:513 ../df/virt-df.pod:241 ../edit/virt-edit.pod:374 ../rescue/virt-rescue.pod:302
2558 msgid "Copyright (C) 2009-2011 Red Hat Inc."
2562 #: ../clone/virt-sysprep.pod:5
2563 msgid "virt-sysprep - Reset or unconfigure a virtual machine so clones can be made"
2567 #: ../clone/virt-sysprep.pod:9
2570 " virt-sysprep [--options] -d domname\n"
2575 #: ../clone/virt-sysprep.pod:11
2578 " virt-sysprep [--options] -a disk.img [-a disk.img ...]\n"
2583 #: ../clone/virt-sysprep.pod:15
2585 "Virt-sysprep \"resets\" or \"unconfigures\" a virtual machine so that clones "
2586 "can be made from it. Steps in this process include removing SSH host keys, "
2587 "removing persistent network MAC configuration, and removing user accounts. "
2588 "Each step can be enabled or disabled as required."
2592 #: ../clone/virt-sysprep.pod:21
2594 "Virt-sysprep is a simple shell script, allowing easy inspection or "
2595 "customization by the system administrator."
2599 #: ../clone/virt-sysprep.pod:24
2601 "Virt-sysprep modifies the guest or disk image I<in place>. The guest must "
2602 "be shut down. If you want to preserve the existing contents of the guest, "
2603 "you I<must copy or clone the disk first>. See L</COPYING AND CLONING> "
2608 #: ../clone/virt-sysprep.pod:29
2610 "You do I<not> need to run virt-sysprep as root. In fact we'd generally "
2611 "recommend that you don't. The time you might want to run it as root is when "
2612 "you need root in order to access the disk image, but even in this case it "
2613 "would be better to change the permissions on the disk image to be writable "
2614 "as the non-root user running virt-sysprep."
2618 #: ../clone/virt-sysprep.pod:35
2620 "\"Sysprep\" stands for \"system preparation\" tool. The name comes from the "
2621 "Microsoft program C<sysprep.exe> which is used to unconfigure Windows "
2622 "machines in preparation for cloning them. Having said that, virt-sysprep "
2623 "does I<not> currently work on Microsoft Windows guests. We plan to support "
2624 "Windows sysprepping in a future version, and we already have code to do it."
2628 #: ../clone/virt-sysprep.pod:76
2629 msgid "B<--enable=...>"
2633 #: ../clone/virt-sysprep.pod:78
2635 "Choose which sysprep operations to perform. Give a comma-separated list of "
2636 "operations, for example:"
2640 #: ../clone/virt-sysprep.pod:81
2643 " --enable=ssh-hostkeys,udev-persistent-net\n"
2648 #: ../clone/virt-sysprep.pod:83
2649 msgid "would enable ONLY C<ssh-hostkeys> and C<udev-persistent-net> operations."
2653 #: ../clone/virt-sysprep.pod:85
2655 "If the I<--enable> option is not given, then we default to trying all "
2656 "possible sysprep operations. But some sysprep operations are skipped for "
2661 #: ../clone/virt-sysprep.pod:89
2663 "Use I<--list-operations> to list operations supported by a particular "
2664 "version of virt-sysprep."
2668 #: ../clone/virt-sysprep.pod:92
2669 msgid "See L</OPERATIONS> below for a list and an explanation of each operation."
2673 #: ../clone/virt-sysprep.pod:106
2676 " virt-sysprep --format=raw -a disk.img\n"
2681 #: ../clone/virt-sysprep.pod:110
2684 " virt-sysprep --format=raw -a disk.img --format -a another.img\n"
2689 #: ../clone/virt-sysprep.pod:119
2690 msgid "B<--hostname> newhostname"
2694 #: ../clone/virt-sysprep.pod:121
2696 "Change the hostname. See the L</hostname> operation below. If not given, "
2697 "defaults to C<localhost.localdomain>."
2701 #: ../clone/virt-sysprep.pod:124
2702 msgid "B<--list-operations>"
2706 #: ../clone/virt-sysprep.pod:126
2707 msgid "List the operations supported by the virt-sysprep program."
2711 #: ../clone/virt-sysprep.pod:128
2712 msgid "B<--selinux-relabel>"
2716 #: ../clone/virt-sysprep.pod:130
2717 msgid "B<--no-selinux-relabel>"
2721 #: ../clone/virt-sysprep.pod:132
2723 "I<--selinux-relabel> forces SELinux relabelling next time the guest boots. "
2724 "I<--no-selinux-relabel> disables relabelling."
2728 #: ../clone/virt-sysprep.pod:135
2730 "The default is to try to detect if SELinux relabelling is required. See "
2731 "L</SELINUX RELABELLING> below for more details."
2735 #: ../clone/virt-sysprep.pod:156
2740 #: ../clone/virt-sysprep.pod:158
2742 "If the I<--enable> option is I<not> given, then I<all sysprep operations are "
2743 "enabled>, although some are skipped depending on the type of guest."
2747 #: ../clone/virt-sysprep.pod:162
2749 "Operations can be individually enabled using the I<--enable> option. Use a "
2750 "comma-separated list, for example:"
2754 #: ../clone/virt-sysprep.pod:165
2757 " virt-sysprep --enable=ssh-hostkeys,udev-persistent-net [etc..]\n"
2762 #: ../clone/virt-sysprep.pod:167
2764 "To list the operations supported by the current version of virt-sysprep, use "
2765 "I<--list-operations>."
2769 #: ../clone/virt-sysprep.pod:170
2771 "Future versions of virt-sysprep may add more operations. If you are using "
2772 "virt-sysprep and want predictable behaviour, specify only the operations "
2773 "that you want to have enabled."
2777 #: ../clone/virt-sysprep.pod:174
2782 #: ../clone/virt-sysprep.pod:176
2783 msgid "Remove user at-jobs and cron-jobs."
2787 #: ../clone/virt-sysprep.pod:178
2788 msgid "dhcp-client-state"
2792 #: ../clone/virt-sysprep.pod:180
2793 msgid "Remove DHCP client leases."
2797 #: ../clone/virt-sysprep.pod:182
2798 msgid "dhcp-server-state"
2802 #: ../clone/virt-sysprep.pod:184
2803 msgid "Remove DHCP server leases."
2807 #: ../clone/virt-sysprep.pod:186
2812 #: ../clone/virt-sysprep.pod:188
2814 "Changes the hostname of the guest to the value given in the I<--hostname> "
2819 #: ../clone/virt-sysprep.pod:191
2821 "If the I<--hostname> parameter is not given, then the hostname is changed to "
2822 "C<localhost.localdomain>."
2826 #: ../clone/virt-sysprep.pod:194
2831 #: ../clone/virt-sysprep.pod:196
2832 msgid "Remove many log files."
2836 #: ../clone/virt-sysprep.pod:198
2841 #: ../clone/virt-sysprep.pod:200
2842 msgid "Remove email from the local mail spool directory."
2846 #: ../clone/virt-sysprep.pod:202
2851 #: ../clone/virt-sysprep.pod:204
2853 "Remove HWADDR (hard-coded MAC address) configuration. For Fedora and Red "
2854 "Hat Enterprise Linux, this is removed from C<ifcfg-*> files."
2858 #: ../clone/virt-sysprep.pod:207
2863 #: ../clone/virt-sysprep.pod:209
2865 "Write some random bytes from the host into the random seed file of the "
2870 #: ../clone/virt-sysprep.pod:212
2871 msgid "See L</RANDOM SEED> below."
2875 #: ../clone/virt-sysprep.pod:214
2876 msgid "rhn-systemid"
2880 #: ../clone/virt-sysprep.pod:216
2881 msgid "Remove the RHN system ID."
2885 #: ../clone/virt-sysprep.pod:218
2890 #: ../clone/virt-sysprep.pod:220
2891 msgid "Remove the Smolt hardware UUID."
2895 #: ../clone/virt-sysprep.pod:222
2896 msgid "ssh-hostkeys"
2900 #: ../clone/virt-sysprep.pod:224
2901 msgid "Remove the SSH host keys in the guest."
2905 #: ../clone/virt-sysprep.pod:226
2907 "The SSH host keys are regenerated (differently) next time the guest is "
2912 #: ../clone/virt-sysprep.pod:229
2914 "If, after cloning, the guest gets the same IP address, ssh will give you a "
2915 "stark warning about the host key changing:"
2919 #: ../clone/virt-sysprep.pod:232
2922 " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
2923 " @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @\n"
2924 " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
2925 " IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!\n"
2930 #: ../clone/virt-sysprep.pod:237
2931 msgid "udev-persistent-net"
2935 #: ../clone/virt-sysprep.pod:239
2937 "Remove udev persistent net rules which map the guest's existing MAC address "
2938 "to a fixed ethernet device (eg. eth0)."
2942 #: ../clone/virt-sysprep.pod:242
2944 "After a guest is cloned, the MAC address usually changes. Since the old MAC "
2945 "address occupies the old name (eg. eth0), this means the fresh MAC address "
2946 "is assigned to a new name (eg. eth1) and this is usually undesirable. "
2947 "Erasing the udev persistent net rules avoids this."
2951 #: ../clone/virt-sysprep.pod:247
2956 #: ../clone/virt-sysprep.pod:249
2957 msgid "Remove the utmp file."
2961 #: ../clone/virt-sysprep.pod:251
2963 "This records who is currently logged in on a machine. In modern Linux "
2964 "distros it is stored in a ramdisk and hence not part of the virtual "
2965 "machine's disk, but it was stored on disk in older distros."
2969 #: ../clone/virt-sysprep.pod:255
2974 #: ../clone/virt-sysprep.pod:257
2975 msgid "Remove the yum UUID."
2979 #: ../clone/virt-sysprep.pod:259
2981 "Yum creates a fresh UUID the next time it runs when it notices that the "
2982 "original UUID has been erased."
2986 #: ../clone/virt-sysprep.pod:262
2987 msgid "COPYING AND CLONING"
2991 #: ../clone/virt-sysprep.pod:264
2993 "Virt-sysprep can be used as part of a process of cloning guests, or to "
2994 "prepare a template from which guests can be cloned. There are many "
2995 "different ways to achieve this using the virt tools, and this section is "
2996 "just an introduction."
3000 #: ../clone/virt-sysprep.pod:269
3001 msgid "A virtual machine (when switched off) consists of two parts:"
3005 #: ../clone/virt-sysprep.pod:273
3006 msgid "I<configuration>"
3010 #: ../clone/virt-sysprep.pod:275
3012 "The configuration or description of the guest. eg. The libvirt XML (see "
3013 "C<virsh dumpxml>), the running configuration of the guest, or another "
3014 "external format like OVF."
3018 #: ../clone/virt-sysprep.pod:279
3019 msgid "Some configuration items that might need to be changed:"
3023 #: ../clone/virt-sysprep.pod:285
3028 #: ../clone/virt-sysprep.pod:289 ../clone/virt-sysprep.pod:316
3033 #: ../clone/virt-sysprep.pod:293
3034 msgid "path to block device(s)"
3038 #: ../clone/virt-sysprep.pod:297
3039 msgid "network card MAC address"
3043 #: ../clone/virt-sysprep.pod:301
3044 msgid "I<block device(s)>"
3048 #: ../clone/virt-sysprep.pod:303
3050 "One or more hard disk images, themselves containing files, directories, "
3051 "applications, kernels, configuration, etc."
3055 #: ../clone/virt-sysprep.pod:306
3056 msgid "Some things inside the block devices that might need to be changed:"
3060 #: ../clone/virt-sysprep.pod:312
3061 msgid "hostname and other net configuration"
3065 #: ../clone/virt-sysprep.pod:320
3066 msgid "SSH host keys"
3070 #: ../clone/virt-sysprep.pod:324
3071 msgid "Windows unique security ID (SID)"
3075 #: ../clone/virt-sysprep.pod:328
3076 msgid "Puppet registration"
3080 #: ../clone/virt-sysprep.pod:334
3081 msgid "COPYING THE BLOCK DEVICE"
3085 #: ../clone/virt-sysprep.pod:336
3087 "Starting with an original guest, you probably wish to copy the guest block "
3088 "device and its configuration to make a template. Then once you are happy "
3089 "with the template, you will want to make many clones from it."
3093 #: ../clone/virt-sysprep.pod:341
3099 " original guest --------> template ---------->\n"
3100 " \\------> cloned\n"
3101 " \\-----> guests\n"
3107 #: ../clone/virt-sysprep.pod:349
3109 "You can, of course, just copy the block device on the host using L<cp(1)> or "
3114 #: ../clone/virt-sysprep.pod:352
3118 " original guest --------> template ---------->\n"
3119 " \\------> cloned\n"
3120 " \\-----> guests\n"
3126 #: ../clone/virt-sysprep.pod:358
3127 msgid "There are some smarter (and faster) ways too:"
3131 #: ../clone/virt-sysprep.pod:364
3135 " template ---------->\n"
3136 " \\------> cloned\n"
3137 " \\-----> guests\n"
3143 #: ../clone/virt-sysprep.pod:370
3145 "Use the block device as a backing file and create a snapshot on top for each "
3146 "guest. The advantage is that you don't need to copy the block device (very "
3147 "fast) and only changes are stored (less storage required)."
3151 #: ../clone/virt-sysprep.pod:375
3153 "Note that writing to the backing file once you have created guests on top of "
3154 "it is not possible: you will corrupt the guests."
3158 #: ../clone/virt-sysprep.pod:378
3160 "Tools that can do this include: L<qemu-img(1)> (with the I<create -f qcow2 "
3161 "-o backing_file> option), L<lvcreate(8)> (I<--snapshot> option). Some "
3162 "filesystems (such as btrfs) and most Network Attached Storage devices can "
3163 "also create cheap snapshots from files or LUNs."
3167 #: ../clone/virt-sysprep.pod:386
3168 msgid "Get your NAS to snapshot and/or duplicate the LUN."
3172 #: ../clone/virt-sysprep.pod:390
3173 msgid "Prepare your template using L<virt-sparsify(1)>. See below."
3177 #: ../clone/virt-sysprep.pod:394
3182 #: ../clone/virt-sysprep.pod:396
3184 "A separate tool, L<virt-clone(1)>, can be used to duplicate the block device "
3185 "and/or modify the external libvirt configuration of a guest. It will reset "
3186 "the name, UUID and MAC address of the guest in the libvirt XML."
3190 #: ../clone/virt-sysprep.pod:401
3192 "L<virt-clone(1)> does not use libguestfs and cannot look inside the disk "
3193 "image. This was the original motivation to write virt-sysprep."
3197 #: ../clone/virt-sysprep.pod:404
3202 #: ../clone/virt-sysprep.pod:406
3206 " original guest --------> template\n"
3211 #: ../clone/virt-sysprep.pod:409
3213 "L<virt-sparsify(1)> can be used to make the cloning template smaller, making "
3214 "it easier to compress and/or faster to copy."
3218 #: ../clone/virt-sysprep.pod:412
3220 "Notice that since virt-sparsify also copies the image, you can use it to "
3221 "make the initial copy (instead of C<dd>)."
3225 #: ../clone/virt-sysprep.pod:415
3230 #: ../clone/virt-sysprep.pod:417
3234 " template ---------->\n"
3235 " \\------> cloned\n"
3236 " \\-----> guests\n"
3242 #: ../clone/virt-sysprep.pod:423
3244 "If you want to give people cloned guests, but let them pick the size of the "
3245 "guest themselves (eg. depending on how much they are prepared to pay for "
3246 "disk space), then instead of copying the template, you can run "
3247 "L<virt-resize(1)>. Virt-resize performs a copy and resize, and thus is "
3248 "ideal for cloning guests from a template."
3252 #: ../clone/virt-sysprep.pod:429 ../src/guestfs.pod:1164
3257 #: ../clone/virt-sysprep.pod:431
3259 "Although virt-sysprep removes some sensitive information from the guest, it "
3260 "does not pretend to remove all of it. You should examine the L</OPERATIONS> "
3261 "above, and the implementation of the operations in the shell script. You "
3262 "should also examine the guest afterwards."
3266 #: ../clone/virt-sysprep.pod:436
3268 "Sensitive files are simply removed. The data they contained may still exist "
3269 "on the disk, easily recovered with a hex editor or undelete tool. Use "
3270 "L<virt-sparsify(1)> as one way to remove this content. See also the "
3271 "L<scrub(1)> command to get rid of deleted content in directory entries and "
3276 #: ../clone/virt-sysprep.pod:442
3281 #: ../clone/virt-sysprep.pod:444
3282 msgid "I<(This section applies to Linux guests only)>"
3286 #: ../clone/virt-sysprep.pod:446
3288 "The virt-sysprep C<random-seed> operation writes a few bytes of randomness "
3289 "from the host into the guest's random seed file."
3293 #: ../clone/virt-sysprep.pod:449
3295 "If this is just done once and the guest is cloned from the same template, "
3296 "then each guest will start with the same entropy, and things like SSH host "
3297 "keys and TCP sequence numbers may be predictable."
3301 #: ../clone/virt-sysprep.pod:453
3303 "Therefore you should arrange to add more randomness I<after> cloning from a "
3304 "template too, which can be done by just enabling the C<random-seed> "
3309 #: ../clone/virt-sysprep.pod:457
3312 " cp template.img newguest.img\n"
3313 " virt-sysprep --enable=random-seed -a newguest.img\n"
3318 #: ../clone/virt-sysprep.pod:460
3319 msgid "SELINUX RELABELLING"
3323 #: ../clone/virt-sysprep.pod:462
3324 msgid "I<(This section applies to Linux guests using SELinux only)>"
3328 #: ../clone/virt-sysprep.pod:464
3330 "If any new files are created by virt-sysprep, then virt-sysprep touches "
3331 "C</.autorelabel> so that these will be correctly labelled by SELinux the "
3332 "next time the guest is booted. This process interrupts boot and can take "
3337 #: ../clone/virt-sysprep.pod:469
3339 "You can force relabelling for all guests by supplying the "
3340 "I<--selinux-relabel> option."
3344 #: ../clone/virt-sysprep.pod:472
3346 "You can disable relabelling entirely by supplying the "
3347 "I<--no-selinux-relabel> option."
3351 #: ../clone/virt-sysprep.pod:484
3352 msgid "This program returns 0 on success, or 1 if there was an error."
3356 #: ../clone/virt-sysprep.pod:488
3358 "L<guestfs(3)>, L<guestfish(1)>, L<virt-clone(1)>, L<virt-rescue(1)>, "
3359 "L<virt-resize(1)>, L<virt-sparsify(1)>, L<virsh(1)>, L<lvcreate(8)>, "
3360 "L<qemu-img(1)>, L<scrub(1)>, L<http://libguestfs.org/>, "
3361 "L<http://libvirt.org/>."
3365 #: ../df/virt-df.pod:5
3366 msgid "virt-df - Display free space on virtual filesystems"
3370 #: ../df/virt-df.pod:9
3373 " virt-df [--options]\n"
3378 #: ../df/virt-df.pod:11
3381 " virt-df [--options] -d domname\n"
3386 #: ../df/virt-df.pod:13
3389 " virt-df [--options] -a disk.img [-a disk.img ...]\n"
3394 #: ../df/virt-df.pod:17
3397 " virt-df [--options] domname\n"
3402 #: ../df/virt-df.pod:19
3405 " virt-df [--options] disk.img [disk.img ...]\n"
3410 #: ../df/virt-df.pod:23
3412 "C<virt-df> is a command line tool to display free space on virtual machine "
3413 "filesystems. Unlike other tools, it doesn't just display the size of disk "
3414 "allocated to a virtual machine, but can look inside disk images to see how "
3415 "much space is really being used."
3419 #: ../df/virt-df.pod:28
3421 "If used without any I<-a> or I<-d> arguments, C<virt-df> checks with libvirt "
3422 "to get a list of all active and inactive guests, and performs a C<df>-type "
3423 "operation on each one in turn, printing out the results."
3427 #: ../df/virt-df.pod:32
3429 "If any I<-a> or I<-d> arguments are specified, C<virt-df> performs a "
3430 "C<df>-type operation on either the single named libvirt domain, or on the "
3431 "disk image(s) listed on the command line (which must all belong to a single "
3432 "VM). In this mode (with arguments), C<virt-df> will I<only work for a "
3433 "single guest>. If you want to run on multiple guests, then you have to "
3434 "invoke C<virt-df> multiple times."
3438 #: ../df/virt-df.pod:39
3440 "Use the I<--csv> option to get a format which can be easily parsed by other "
3441 "programs. Other options are similar to the standard L<df(1)> command."
3445 #: ../df/virt-df.pod:45
3447 "Show disk usage for a single libvirt guest called C<F14x64>. Make the "
3448 "output human-readable:"
3452 #: ../df/virt-df.pod:48
3455 " # virt-df -d F14x64 -h\n"
3456 " Filesystem Size Used Available Use%\n"
3457 " F14x64:/dev/sda1 484M 66M 393M 14%\n"
3458 " F14x64:/dev/vg_f13x64/lv_root 7.4G 3.4G 4.0G 46%\n"
3463 #: ../df/virt-df.pod:53
3464 msgid "Show disk usage for a disk image file called C<test.img>:"
3468 #: ../df/virt-df.pod:55
3471 " $ virt-df -a test1.img\n"
3472 " Filesystem 1K-blocks Used Available Use%\n"
3473 " test1.img:/dev/sda1 99099 1551 92432 2%\n"
3478 #: ../df/virt-df.pod:112
3481 " virt-df --format=raw -a disk.img\n"
3486 #: ../df/virt-df.pod:116
3489 " virt-df --format=raw -a disk.img --format -a another.img\n"
3494 #: ../df/virt-df.pod:129
3495 msgid "Print sizes in human-readable format."
3499 #: ../df/virt-df.pod:131
3500 msgid "You are not allowed to use I<-h> and I<--csv> at the same time."
3504 #: ../df/virt-df.pod:133 ../fish/guestfish.pod:258 ../fuse/guestmount.pod:164
3509 #: ../df/virt-df.pod:135
3514 #: ../df/virt-df.pod:137
3515 msgid "Print inodes instead of blocks."
3519 #: ../df/virt-df.pod:139
3520 msgid "B<--one-per-guest>"
3524 #: ../df/virt-df.pod:141
3526 "Run one libguestfs appliance per guest. Normally C<virt-df> will add the "
3527 "disks from several guests to a single libguestfs appliance."
3531 #: ../df/virt-df.pod:144
3532 msgid "You might use this option in the following circumstances:"
3536 #: ../df/virt-df.pod:150
3538 "If you think an untrusted guest might actively try to exploit the libguestfs "
3539 "appliance kernel, then this prevents one guest from interfering with the "
3540 "stats printed for another guest."
3544 #: ../df/virt-df.pod:156
3546 "If the kernel has a bug which stops it from accessing a filesystem in one "
3547 "guest (see for example RHBZ#635373) then this allows libguestfs to continue "
3548 "and report stats for further guests."
3552 #: ../df/virt-df.pod:165
3554 "Print UUIDs instead of names. This is useful for following a guest even "
3555 "when the guest is migrated or renamed, or when two guests happen to have the "
3560 #: ../df/virt-df.pod:169
3562 "Note that only domains that we fetch from libvirt come with UUIDs. For disk "
3563 "images, we still print the disk image name even when this option is "
3568 #: ../df/virt-df.pod:229
3570 "L<df(1)>, L<guestfs(3)>, L<guestfish(1)>, L<virt-filesystems(1)>, "
3571 "L<http://libguestfs.org/>."
3575 #: ../edit/virt-edit.pod:5
3576 msgid "virt-edit - Edit a file in a virtual machine"
3580 #: ../edit/virt-edit.pod:9
3583 " virt-edit [--options] -d domname file [file ...]\n"
3588 #: ../edit/virt-edit.pod:11
3591 " virt-edit [--options] -a disk.img [-a disk.img ...] file [file ...]\n"
3596 #: ../edit/virt-edit.pod:13
3599 " virt-edit [-d domname|-a disk.img] file -e 'expr'\n"
3604 #: ../edit/virt-edit.pod:17
3607 " virt-edit domname file\n"
3612 #: ../edit/virt-edit.pod:19 ../edit/virt-edit.pod:183
3615 " virt-edit disk.img [disk.img ...] file\n"
3620 #: ../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
3625 #: ../edit/virt-edit.pod:23
3627 "You must I<not> use C<virt-edit> on live virtual machines. If you do this, "
3628 "you risk disk corruption in the VM. C<virt-edit> tries to stop you from "
3629 "doing this, but doesn't catch all cases."
3633 #: ../edit/virt-edit.pod:29
3635 "C<virt-edit> is a command line tool to edit C<file> where each C<file> "
3636 "exists in the named virtual machine (or disk image)."
3640 #: ../edit/virt-edit.pod:32
3642 "Multiple filenames can be given, in which case they are each edited in "
3643 "turn. Each filename must be a full path, starting at the root directory "
3644 "(starting with '/')."
3648 #: ../edit/virt-edit.pod:36
3649 msgid "If you want to just view a file, use L<virt-cat(1)>."
3653 #: ../edit/virt-edit.pod:38
3655 "For more complex cases you should look at the L<guestfish(1)> tool (see "
3656 "L</USING GUESTFISH> below)."
3660 #: ../edit/virt-edit.pod:41
3662 "C<virt-edit> cannot be used to create a new file. L<guestfish(1)> can do "
3663 "that and much more."
3667 #: ../edit/virt-edit.pod:46
3668 msgid "Edit the named files interactively:"
3672 #: ../edit/virt-edit.pod:48
3675 " virt-edit -d mydomain /boot/grub/grub.conf\n"
3680 #: ../edit/virt-edit.pod:50
3683 " virt-edit -d mydomain /etc/passwd\n"
3688 #: ../edit/virt-edit.pod:52
3689 msgid "For Windows guests, some Windows paths are understood:"
3693 #: ../edit/virt-edit.pod:54
3696 " virt-edit -d mywindomain 'c:\\autoexec.bat'\n"
3701 #: ../edit/virt-edit.pod:56
3703 "If Perl is installed, you can also edit files non-interactively (see "
3704 "L</NON-INTERACTIVE EDITING> below). To change the init default level to 5:"
3708 #: ../edit/virt-edit.pod:60
3711 " virt-edit -d mydomain /etc/inittab -e 's/^id:.*/id:5:initdefault:/'\n"
3716 #: ../edit/virt-edit.pod:81
3717 msgid "B<-b> extension"
3721 #: ../edit/virt-edit.pod:83
3722 msgid "B<--backup> extension"
3726 #: ../edit/virt-edit.pod:85
3728 "Create a backup of the original file I<in the guest disk image>. The backup "
3729 "has the original filename with C<extension> added."
3733 #: ../edit/virt-edit.pod:88
3735 "Usually the first character of C<extension> would be a dot C<.> so you would "
3740 #: ../edit/virt-edit.pod:91
3743 " virt-edit -b .orig [etc]\n"
3748 #: ../edit/virt-edit.pod:93
3749 msgid "By default, no backup file is made."
3753 #: ../edit/virt-edit.pod:95 ../fish/guestfish.pod:181 ../fuse/guestmount.pod:105 ../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
3758 #: ../edit/virt-edit.pod:97 ../fish/guestfish.pod:183 ../fuse/guestmount.pod:107 ../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
3759 msgid "B<--connect URI>"
3763 #: ../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
3765 "If you specify guest block devices directly, then libvirt is not used at "
3770 #: ../edit/virt-edit.pod:114
3772 "When prompting for keys and passphrases, virt-edit normally turns echoing "
3773 "off so you cannot see what you are typing. If you are not worried about "
3774 "Tempest attacks and there is no one else in the room you can specify this "
3775 "flag to see what you are typing."
3779 #: ../edit/virt-edit.pod:119
3784 #: ../edit/virt-edit.pod:121
3785 msgid "B<--expr> EXPR"
3789 #: ../edit/virt-edit.pod:123
3791 "Instead of launching the external editor, non-interactively apply the Perl "
3792 "expression C<EXPR> to each line in the file. See L</NON-INTERACTIVE "
3797 #: ../edit/virt-edit.pod:127
3799 "Be careful to properly quote the expression to prevent it from being altered "
3804 #: ../edit/virt-edit.pod:130
3805 msgid "Note that this option is only available when Perl 5 is installed."
3809 #: ../edit/virt-edit.pod:132
3810 msgid "B<--format> raw|qcow2|..."
3814 #: ../edit/virt-edit.pod:143
3817 " virt-edit --format=raw -a disk.img file\n"
3822 #: ../edit/virt-edit.pod:147
3825 " virt-edit --format=raw -a disk.img --format -a another.img file\n"
3830 #: ../edit/virt-edit.pod:181
3831 msgid "Previous versions of virt-edit allowed you to write either:"
3835 #: ../edit/virt-edit.pod:187
3838 " virt-edit guestname file\n"
3843 #: ../edit/virt-edit.pod:195
3844 msgid "NON-INTERACTIVE EDITING"
3848 #: ../edit/virt-edit.pod:197
3850 "C<virt-edit> normally calls out to C<$EDITOR> (or vi) so the system "
3851 "administrator can interactively edit the file."
3855 #: ../edit/virt-edit.pod:200
3857 "There are two ways also to use C<virt-edit> from scripts in order to make "
3858 "automated edits to files. (Note that although you I<can> use C<virt-edit> "
3859 "like this, it's less error-prone to write scripts directly using the "
3860 "libguestfs API and Augeas for configuration file editing.)"
3864 #: ../edit/virt-edit.pod:206
3866 "The first method is to temporarily set C<$EDITOR> to any script or program "
3867 "you want to run. The script is invoked as C<$EDITOR tmpfile> and it should "
3868 "update C<tmpfile> in place however it likes."
3872 #: ../edit/virt-edit.pod:210
3874 "The second method is to use the I<-e> parameter of C<virt-edit> to run a "
3875 "short Perl snippet in the style of L<sed(1)>. For example to replace all "
3876 "instances of C<foo> with C<bar> in a file:"
3880 #: ../edit/virt-edit.pod:214
3883 " virt-edit -d domname filename -e 's/foo/bar/'\n"
3888 #: ../edit/virt-edit.pod:216
3890 "The full power of Perl regular expressions can be used (see L<perlre(1)>). "
3891 "For example to delete root's password you could do:"
3895 #: ../edit/virt-edit.pod:219