summaryrefslogtreecommitdiffstats
path: root/po-docs/libguestfs-docs.pot
diff options
context:
space:
mode:
Diffstat (limited to 'po-docs/libguestfs-docs.pot')
-rw-r--r--po-docs/libguestfs-docs.pot3072
1 files changed, 1655 insertions, 1417 deletions
diff --git a/po-docs/libguestfs-docs.pot b/po-docs/libguestfs-docs.pot
index de232972..91f79ebc 100644
--- a/po-docs/libguestfs-docs.pot
+++ b/po-docs/libguestfs-docs.pot
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libguestfs 1.18.8\n"
+"Project-Id-Version: libguestfs 1.18.9\n"
"Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
-"POT-Creation-Date: 2012-09-19 13:50+0200\n"
+"POT-Creation-Date: 2012-10-01 16:29+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -343,7 +343,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:146 ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../df/virt-df.pod:110 ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 ../fish/guestfish.pod:685 ../format/virt-format.pod:96 ../inspector/virt-inspector.pod:350 ../rescue/virt-rescue.pod:164 ../src/guestfs.pod:3056 ../sysprep/virt-sysprep.pod:111
+#: ../align/virt-alignment-scan.pod:146 ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../df/virt-df.pod:110 ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 ../fish/guestfish.pod:685 ../format/virt-format.pod:96 ../inspector/virt-inspector.pod:350 ../rescue/virt-rescue.pod:164 ../src/guestfs.pod:3062 ../sysprep/virt-sysprep.pod:111
msgid "For example:"
msgstr ""
@@ -727,12 +727,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:334 ../cat/virt-cat.pod:231 ../cat/virt-filesystems.pod:377 ../cat/virt-ls.pod:483 ../df/virt-df.pod:241 ../edit/virt-edit.pod:356 ../inspector/virt-inspector.pod:366 ../rescue/virt-rescue.pod:318 ../resize/virt-resize.pod:690 ../sysprep/virt-sysprep.pod:431 ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260 ../tools/virt-make-fs.pl:583 ../tools/virt-tar.pl:287 ../tools/virt-win-reg.pl:744
+#: ../align/virt-alignment-scan.pod:334 ../cat/virt-cat.pod:231 ../cat/virt-filesystems.pod:377 ../cat/virt-ls.pod:483 ../df/virt-df.pod:241 ../edit/virt-edit.pod:356 ../inspector/virt-inspector.pod:366 ../rescue/virt-rescue.pod:318 ../resize/virt-resize.pod:690 ../sysprep/virt-sysprep.pod:431 ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260 ../tools/virt-make-fs.pl:583 ../tools/virt-tar.pl:287 ../tools/virt-win-reg.pl:734
msgid "SHELL QUOTING"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:336 ../cat/virt-cat.pod:233 ../cat/virt-filesystems.pod:379 ../cat/virt-ls.pod:485 ../df/virt-df.pod:243 ../edit/virt-edit.pod:358 ../inspector/virt-inspector.pod:368 ../rescue/virt-rescue.pod:320 ../resize/virt-resize.pod:692 ../sysprep/virt-sysprep.pod:433 ../tools/virt-list-filesystems.pl:192 ../tools/virt-list-partitions.pl:262 ../tools/virt-make-fs.pl:585 ../tools/virt-tar.pl:289 ../tools/virt-win-reg.pl:752
+#: ../align/virt-alignment-scan.pod:336 ../cat/virt-cat.pod:233 ../cat/virt-filesystems.pod:379 ../cat/virt-ls.pod:485 ../df/virt-df.pod:243 ../edit/virt-edit.pod:358 ../inspector/virt-inspector.pod:368 ../rescue/virt-rescue.pod:320 ../resize/virt-resize.pod:692 ../sysprep/virt-sysprep.pod:433 ../tools/virt-list-filesystems.pl:192 ../tools/virt-list-partitions.pl:262 ../tools/virt-make-fs.pl:585 ../tools/virt-tar.pl:289 ../tools/virt-win-reg.pl:742
msgid ""
"Libvirt guest names can contain arbitrary characters, some of which have "
"meaning to the shell such as C<#> and space. You may need to quote or "
@@ -751,7 +751,7 @@ msgid "This program returns:"
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:347 ../align/virt-alignment-scan.pod:353 ../align/virt-alignment-scan.pod:359 ../align/virt-alignment-scan.pod:366 ../appliance/libguestfs-make-fixed-appliance.pod:32 ../appliance/libguestfs-make-fixed-appliance.pod:53 ../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 ../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-faq.pod:150 ../examples/guestfs-faq.pod:156 ../examples/guestfs-faq.pod:195 ../examples/guestfs-faq.pod:201 ../examples/guestfs-performance.pod:107 ../examples/guestfs-performance.pod:113 ../examples/guestfs-performance.pod:118 ../examples/guestfs-performance.pod:253 ../examples/guestfs-performance.pod:258 ../examples/guestfs-performance.pod:263 ../examples/guestfs-recipes.pod:126 ../examples/guestfs-recipes.pod:130 ../examples/guestfs-recipes.pod:134 ../examples/guestfs-recipes.pod:160 ../examples/guestfs-recipes.pod:165 ../examples/guestfs-recipes.pod:255 ../examples/guestfs-recipes.pod:259 ../examples/guestfs-recipes.pod:263 ../examples/guestfs-recipes.pod:267 ../examples/guestfs-recipes.pod:271 ../examples/guestfs-testing.pod:110 ../examples/guestfs-testing.pod:114 ../examples/guestfs-testing.pod:118 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:444 ../fish/guestfish-actions.pod:452 ../fish/guestfish-actions.pod:459 ../fish/guestfish-actions.pod:466 ../fish/guestfish-actions.pod:1419 ../fish/guestfish-actions.pod:1423 ../fish/guestfish-actions.pod:1427 ../fish/guestfish-actions.pod:1431 ../fish/guestfish-actions.pod:1439 ../fish/guestfish-actions.pod:1443 ../fish/guestfish-actions.pod:1447 ../fish/guestfish-actions.pod:1457 ../fish/guestfish-actions.pod:1461 ../fish/guestfish-actions.pod:1465 ../fish/guestfish-actions.pod:1555 ../fish/guestfish-actions.pod:1559 ../fish/guestfish-actions.pod:1564 ../fish/guestfish-actions.pod:1569 ../fish/guestfish-actions.pod:1611 ../fish/guestfish-actions.pod:1615 ../fish/guestfish-actions.pod:1620 ../fish/guestfish-actions.pod:2006 ../fish/guestfish-actions.pod:2013 ../fish/guestfish-actions.pod:2020 ../fish/guestfish-actions.pod:2433 ../fish/guestfish-actions.pod:2439 ../fish/guestfish-actions.pod:2447 ../fish/guestfish-actions.pod:2454 ../fish/guestfish-actions.pod:2461 ../fish/guestfish.pod:457 ../fish/guestfish.pod:461 ../fish/guestfish.pod:465 ../fish/guestfish.pod:469 ../inspector/virt-inspector.pod:514 ../inspector/virt-inspector.pod:518 ../resize/virt-resize.pod:365 ../resize/virt-resize.pod:369 ../resize/virt-resize.pod:378 ../resize/virt-resize.pod:384 ../sparsify/virt-sparsify.pod:45 ../sparsify/virt-sparsify.pod:52 ../sparsify/virt-sparsify.pod:56 ../sparsify/virt-sparsify.pod:62 ../sparsify/virt-sparsify.pod:67 ../sparsify/virt-sparsify.pod:72 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:29 ../src/guestfs-actions.pod:644 ../src/guestfs-actions.pod:652 ../src/guestfs-actions.pod:659 ../src/guestfs-actions.pod:666 ../src/guestfs-actions.pod:2387 ../src/guestfs-actions.pod:2391 ../src/guestfs-actions.pod:2395 ../src/guestfs-actions.pod:2399 ../src/guestfs-actions.pod:2407 ../src/guestfs-actions.pod:2411 ../src/guestfs-actions.pod:2415 ../src/guestfs-actions.pod:2425 ../src/guestfs-actions.pod:2429 ../src/guestfs-actions.pod:2433 ../src/guestfs-actions.pod:2571 ../src/guestfs-actions.pod:2575 ../src/guestfs-actions.pod:2580 ../src/guestfs-actions.pod:2585 ../src/guestfs-actions.pod:2646 ../src/guestfs-actions.pod:2650 ../src/guestfs-actions.pod:2655 ../src/guestfs-actions.pod:3213 ../src/guestfs-actions.pod:3220 ../src/guestfs-actions.pod:3227 ../src/guestfs-actions.pod:3782 ../src/guestfs-actions.pod:3788 ../src/guestfs-actions.pod:3796 ../src/guestfs-actions.pod:3803 ../src/guestfs-actions.pod:3810 ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:398 ../src/guestfs.pod:402 ../src/guestfs.pod:407 ../src/guestfs.pod:411 ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1197 ../src/guestfs.pod:1201 ../src/guestfs.pod:1205 ../src/guestfs.pod:1210 ../src/guestfs.pod:1218 ../src/guestfs.pod:1237 ../src/guestfs.pod:1245 ../src/guestfs.pod:1262 ../src/guestfs.pod:1267 ../src/guestfs.pod:1271 ../src/guestfs.pod:1328 ../src/guestfs.pod:1332 ../src/guestfs.pod:1336 ../src/guestfs.pod:1340 ../src/guestfs.pod:1344 ../src/guestfs.pod:1348 ../src/guestfs.pod:1863 ../src/guestfs.pod:1868 ../src/guestfs.pod:1872 ../src/guestfs.pod:1974 ../src/guestfs.pod:1979 ../src/guestfs.pod:1983 ../src/guestfs.pod:1993 ../src/guestfs.pod:2282 ../src/guestfs.pod:2287 ../src/guestfs.pod:2293 ../src/guestfs.pod:2301 ../src/guestfs.pod:2818 ../src/guestfs.pod:2824 ../src/guestfs.pod:2829 ../src/guestfs.pod:2835 ../src/guestfs.pod:3231 ../src/guestfs.pod:3236 ../src/guestfs.pod:3240 ../src/guestfs.pod:3244 ../src/guestfs.pod:3248 ../src/guestfs.pod:3262 ../src/guestfs.pod:3267 ../sysprep/virt-sysprep.pod:230 ../sysprep/virt-sysprep.pod:234 ../sysprep/virt-sysprep.pod:238 ../sysprep/virt-sysprep.pod:242 ../sysprep/virt-sysprep.pod:257 ../sysprep/virt-sysprep.pod:261 ../sysprep/virt-sysprep.pod:265 ../sysprep/virt-sysprep.pod:269 ../sysprep/virt-sysprep.pod:273 ../sysprep/virt-sysprep.pod:315 ../sysprep/virt-sysprep.pod:327 ../sysprep/virt-sysprep.pod:331 ../sysprep/virt-sysprep.pod:339 ../sysprep/virt-sysprep.pod:345 ../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
+#: ../align/virt-alignment-scan.pod:347 ../align/virt-alignment-scan.pod:353 ../align/virt-alignment-scan.pod:359 ../align/virt-alignment-scan.pod:366 ../appliance/libguestfs-make-fixed-appliance.pod:32 ../appliance/libguestfs-make-fixed-appliance.pod:53 ../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 ../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-faq.pod:149 ../examples/guestfs-faq.pod:155 ../examples/guestfs-faq.pod:194 ../examples/guestfs-faq.pod:200 ../examples/guestfs-performance.pod:107 ../examples/guestfs-performance.pod:113 ../examples/guestfs-performance.pod:118 ../examples/guestfs-performance.pod:253 ../examples/guestfs-performance.pod:258 ../examples/guestfs-performance.pod:263 ../examples/guestfs-recipes.pod:128 ../examples/guestfs-recipes.pod:132 ../examples/guestfs-recipes.pod:136 ../examples/guestfs-recipes.pod:162 ../examples/guestfs-recipes.pod:167 ../examples/guestfs-recipes.pod:257 ../examples/guestfs-recipes.pod:261 ../examples/guestfs-recipes.pod:265 ../examples/guestfs-recipes.pod:269 ../examples/guestfs-recipes.pod:273 ../examples/guestfs-testing.pod:124 ../examples/guestfs-testing.pod:128 ../examples/guestfs-testing.pod:132 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:444 ../fish/guestfish-actions.pod:452 ../fish/guestfish-actions.pod:459 ../fish/guestfish-actions.pod:466 ../fish/guestfish-actions.pod:1419 ../fish/guestfish-actions.pod:1423 ../fish/guestfish-actions.pod:1427 ../fish/guestfish-actions.pod:1431 ../fish/guestfish-actions.pod:1439 ../fish/guestfish-actions.pod:1443 ../fish/guestfish-actions.pod:1447 ../fish/guestfish-actions.pod:1457 ../fish/guestfish-actions.pod:1461 ../fish/guestfish-actions.pod:1465 ../fish/guestfish-actions.pod:1555 ../fish/guestfish-actions.pod:1559 ../fish/guestfish-actions.pod:1564 ../fish/guestfish-actions.pod:1569 ../fish/guestfish-actions.pod:1611 ../fish/guestfish-actions.pod:1615 ../fish/guestfish-actions.pod:1620 ../fish/guestfish-actions.pod:2006 ../fish/guestfish-actions.pod:2013 ../fish/guestfish-actions.pod:2020 ../fish/guestfish-actions.pod:2433 ../fish/guestfish-actions.pod:2439 ../fish/guestfish-actions.pod:2447 ../fish/guestfish-actions.pod:2454 ../fish/guestfish-actions.pod:2461 ../fish/guestfish.pod:457 ../fish/guestfish.pod:461 ../fish/guestfish.pod:465 ../fish/guestfish.pod:469 ../inspector/virt-inspector.pod:514 ../inspector/virt-inspector.pod:518 ../resize/virt-resize.pod:365 ../resize/virt-resize.pod:369 ../resize/virt-resize.pod:378 ../resize/virt-resize.pod:384 ../sparsify/virt-sparsify.pod:45 ../sparsify/virt-sparsify.pod:52 ../sparsify/virt-sparsify.pod:56 ../sparsify/virt-sparsify.pod:62 ../sparsify/virt-sparsify.pod:67 ../sparsify/virt-sparsify.pod:72 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:29 ../src/guestfs-actions.pod:644 ../src/guestfs-actions.pod:652 ../src/guestfs-actions.pod:659 ../src/guestfs-actions.pod:666 ../src/guestfs-actions.pod:2387 ../src/guestfs-actions.pod:2391 ../src/guestfs-actions.pod:2395 ../src/guestfs-actions.pod:2399 ../src/guestfs-actions.pod:2407 ../src/guestfs-actions.pod:2411 ../src/guestfs-actions.pod:2415 ../src/guestfs-actions.pod:2425 ../src/guestfs-actions.pod:2429 ../src/guestfs-actions.pod:2433 ../src/guestfs-actions.pod:2571 ../src/guestfs-actions.pod:2575 ../src/guestfs-actions.pod:2580 ../src/guestfs-actions.pod:2585 ../src/guestfs-actions.pod:2646 ../src/guestfs-actions.pod:2650 ../src/guestfs-actions.pod:2655 ../src/guestfs-actions.pod:3213 ../src/guestfs-actions.pod:3220 ../src/guestfs-actions.pod:3227 ../src/guestfs-actions.pod:3782 ../src/guestfs-actions.pod:3788 ../src/guestfs-actions.pod:3796 ../src/guestfs-actions.pod:3803 ../src/guestfs-actions.pod:3810 ../src/guestfs.pod:394 ../src/guestfs.pod:399 ../src/guestfs.pod:404 ../src/guestfs.pod:408 ../src/guestfs.pod:413 ../src/guestfs.pod:417 ../src/guestfs.pod:422 ../src/guestfs.pod:427 ../src/guestfs.pod:1203 ../src/guestfs.pod:1207 ../src/guestfs.pod:1211 ../src/guestfs.pod:1216 ../src/guestfs.pod:1224 ../src/guestfs.pod:1243 ../src/guestfs.pod:1251 ../src/guestfs.pod:1268 ../src/guestfs.pod:1273 ../src/guestfs.pod:1277 ../src/guestfs.pod:1334 ../src/guestfs.pod:1338 ../src/guestfs.pod:1342 ../src/guestfs.pod:1346 ../src/guestfs.pod:1350 ../src/guestfs.pod:1354 ../src/guestfs.pod:1869 ../src/guestfs.pod:1874 ../src/guestfs.pod:1878 ../src/guestfs.pod:1980 ../src/guestfs.pod:1985 ../src/guestfs.pod:1989 ../src/guestfs.pod:1999 ../src/guestfs.pod:2288 ../src/guestfs.pod:2293 ../src/guestfs.pod:2299 ../src/guestfs.pod:2307 ../src/guestfs.pod:2824 ../src/guestfs.pod:2830 ../src/guestfs.pod:2835 ../src/guestfs.pod:2841 ../src/guestfs.pod:3237 ../src/guestfs.pod:3242 ../src/guestfs.pod:3246 ../src/guestfs.pod:3250 ../src/guestfs.pod:3254 ../src/guestfs.pod:3268 ../src/guestfs.pod:3273 ../sysprep/virt-sysprep.pod:230 ../sysprep/virt-sysprep.pod:234 ../sysprep/virt-sysprep.pod:238 ../sysprep/virt-sysprep.pod:242 ../sysprep/virt-sysprep.pod:257 ../sysprep/virt-sysprep.pod:261 ../sysprep/virt-sysprep.pod:265 ../sysprep/virt-sysprep.pod:269 ../sysprep/virt-sysprep.pod:273 ../sysprep/virt-sysprep.pod:315 ../sysprep/virt-sysprep.pod:327 ../sysprep/virt-sysprep.pod:331 ../sysprep/virt-sysprep.pod:339 ../sysprep/virt-sysprep.pod:345 ../tools/virt-win-reg.pl:197 ../tools/virt-win-reg.pl:202 ../tools/virt-win-reg.pl:208 ../tools/virt-win-reg.pl:711 ../tools/virt-win-reg.pl:717 ../tools/virt-win-reg.pl:723
msgid "*"
msgstr ""
@@ -766,7 +766,7 @@ msgid "successful exit, all partitions are aligned E<ge> 64K for best performanc
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:355 ../src/guestfs.pod:1520
+#: ../align/virt-alignment-scan.pod:355 ../src/guestfs.pod:1526
msgid "1"
msgstr ""
@@ -776,7 +776,7 @@ msgid "an error scanning the disk image or guest"
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:361 ../src/guestfs.pod:1524
+#: ../align/virt-alignment-scan.pod:361 ../src/guestfs.pod:1530
msgid "2"
msgstr ""
@@ -788,7 +788,7 @@ msgid ""
msgstr ""
#. type: =item
-#: ../align/virt-alignment-scan.pod:368 ../src/guestfs.pod:1528
+#: ../align/virt-alignment-scan.pod:368 ../src/guestfs.pod:1534
msgid "3"
msgstr ""
@@ -800,7 +800,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:375 ../appliance/libguestfs-make-fixed-appliance.pod:144 ../cat/virt-cat.pod:243 ../cat/virt-filesystems.pod:389 ../cat/virt-ls.pod:495 ../df/virt-df.pod:253 ../edit/virt-edit.pod:368 ../erlang/examples/guestfs-erlang.pod:97 ../examples/guestfs-examples.pod:33 ../examples/guestfs-faq.pod:723 ../examples/guestfs-performance.pod:429 ../examples/guestfs-recipes.pod:417 ../examples/guestfs-testing.pod:291 ../fish/guestfish.pod:1280 ../fish/virt-copy-in.pod:50 ../fish/virt-copy-out.pod:39 ../fish/virt-tar-in.pod:47 ../fish/virt-tar-out.pod:41 ../format/virt-format.pod:177 ../fuse/guestmount.pod:398 ../inspector/virt-inspector.pod:501 ../java/examples/guestfs-java.pod:45 ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:40 ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:340 ../resize/virt-resize.pod:702 ../ruby/examples/guestfs-ruby.pod:36 ../sparsify/virt-sparsify.pod:299 ../src/guestfs.pod:3439 ../sysprep/virt-sysprep.pod:442 ../test-tool/libguestfs-test-tool.pod:106 ../tools/virt-list-filesystems.pl:197 ../tools/virt-list-partitions.pl:267 ../tools/virt-make-fs.pl:590 ../tools/virt-tar.pl:294 ../tools/virt-win-reg.pl:757
+#: ../align/virt-alignment-scan.pod:375 ../appliance/libguestfs-make-fixed-appliance.pod:144 ../cat/virt-cat.pod:243 ../cat/virt-filesystems.pod:389 ../cat/virt-ls.pod:495 ../df/virt-df.pod:253 ../edit/virt-edit.pod:368 ../erlang/examples/guestfs-erlang.pod:97 ../examples/guestfs-examples.pod:33 ../examples/guestfs-faq.pod:779 ../examples/guestfs-performance.pod:429 ../examples/guestfs-recipes.pod:470 ../examples/guestfs-testing.pod:305 ../fish/guestfish.pod:1280 ../fish/virt-copy-in.pod:50 ../fish/virt-copy-out.pod:39 ../fish/virt-tar-in.pod:47 ../fish/virt-tar-out.pod:41 ../format/virt-format.pod:177 ../fuse/guestmount.pod:398 ../inspector/virt-inspector.pod:501 ../java/examples/guestfs-java.pod:45 ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:40 ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:340 ../resize/virt-resize.pod:702 ../ruby/examples/guestfs-ruby.pod:36 ../sparsify/virt-sparsify.pod:299 ../src/guestfs.pod:3445 ../sysprep/virt-sysprep.pod:442 ../test-tool/libguestfs-test-tool.pod:106 ../tools/virt-list-filesystems.pl:197 ../tools/virt-list-partitions.pl:267 ../tools/virt-make-fs.pl:590 ../tools/virt-tar.pl:294 ../tools/virt-win-reg.pl:747
msgid "SEE ALSO"
msgstr ""
@@ -812,17 +812,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:384 ../cat/virt-cat.pod:252 ../cat/virt-filesystems.pod:400 ../cat/virt-ls.pod:507 ../df/virt-df.pod:261 ../edit/virt-edit.pod:382 ../format/virt-format.pod:187 ../rescue/virt-rescue.pod:349 ../resize/virt-resize.pod:725 ../sparsify/virt-sparsify.pod:312 ../tools/virt-list-filesystems.pl:210 ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:605 ../tools/virt-tar.pl:309 ../tools/virt-win-reg.pl:772
+#: ../align/virt-alignment-scan.pod:384 ../cat/virt-cat.pod:252 ../cat/virt-filesystems.pod:400 ../cat/virt-ls.pod:507 ../df/virt-df.pod:261 ../edit/virt-edit.pod:382 ../format/virt-format.pod:187 ../rescue/virt-rescue.pod:349 ../resize/virt-resize.pod:725 ../sparsify/virt-sparsify.pod:312 ../tools/virt-list-filesystems.pl:210 ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:605 ../tools/virt-tar.pl:309 ../tools/virt-win-reg.pl:762
msgid "AUTHOR"
msgstr ""
#. type: textblock
-#: ../align/virt-alignment-scan.pod:386 ../cat/virt-cat.pod:254 ../cat/virt-filesystems.pod:402 ../cat/virt-ls.pod:509 ../df/virt-df.pod:263 ../edit/virt-edit.pod:384 ../format/virt-format.pod:189 ../inspector/virt-inspector.pod:516 ../rescue/virt-rescue.pod:351 ../resize/virt-resize.pod:727 ../sparsify/virt-sparsify.pod:314 ../sysprep/virt-sysprep.pod:459 ../tools/virt-list-filesystems.pl:212 ../tools/virt-list-partitions.pl:281 ../tools/virt-make-fs.pl:607 ../tools/virt-tar.pl:311 ../tools/virt-win-reg.pl:774
+#: ../align/virt-alignment-scan.pod:386 ../cat/virt-cat.pod:254 ../cat/virt-filesystems.pod:402 ../cat/virt-ls.pod:509 ../df/virt-df.pod:263 ../edit/virt-edit.pod:384 ../format/virt-format.pod:189 ../inspector/virt-inspector.pod:516 ../rescue/virt-rescue.pod:351 ../resize/virt-resize.pod:727 ../sparsify/virt-sparsify.pod:314 ../sysprep/virt-sysprep.pod:459 ../tools/virt-list-filesystems.pl:212 ../tools/virt-list-partitions.pl:281 ../tools/virt-make-fs.pl:607 ../tools/virt-tar.pl:311 ../tools/virt-win-reg.pl:764
msgid "Richard W.M. Jones L<http://people.redhat.com/~rjones/>"
msgstr ""
#. type: =head1
-#: ../align/virt-alignment-scan.pod:388 ../appliance/libguestfs-make-fixed-appliance.pod:157 ../cat/virt-cat.pod:256 ../cat/virt-filesystems.pod:404 ../cat/virt-ls.pod:511 ../df/virt-df.pod:265 ../edit/virt-edit.pod:386 ../erlang/examples/guestfs-erlang.pod:114 ../examples/guestfs-examples.pod:49 ../examples/guestfs-faq.pod:733 ../examples/guestfs-performance.pod:446 ../examples/guestfs-recipes.pod:434 ../examples/guestfs-testing.pod:302 ../fish/guestfish.pod:1312 ../fish/virt-copy-in.pod:64 ../fish/virt-copy-out.pod:53 ../fish/virt-tar-in.pod:62 ../fish/virt-tar-out.pod:55 ../format/virt-format.pod:191 ../fuse/guestmount.pod:413 ../inspector/virt-inspector.pod:524 ../java/examples/guestfs-java.pod:62 ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:57 ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:353 ../resize/virt-resize.pod:729 ../ruby/examples/guestfs-ruby.pod:52 ../sparsify/virt-sparsify.pod:316 ../src/guestfs.pod:3494 ../sysprep/virt-sysprep.pod:463 ../test-tool/libguestfs-test-tool.pod:116 ../tools/virt-list-filesystems.pl:214 ../tools/virt-list-partitions.pl:283 ../tools/virt-make-fs.pl:609 ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:776
+#: ../align/virt-alignment-scan.pod:388 ../appliance/libguestfs-make-fixed-appliance.pod:157 ../cat/virt-cat.pod:256 ../cat/virt-filesystems.pod:404 ../cat/virt-ls.pod:511 ../df/virt-df.pod:265 ../edit/virt-edit.pod:386 ../erlang/examples/guestfs-erlang.pod:114 ../examples/guestfs-examples.pod:49 ../examples/guestfs-faq.pod:789 ../examples/guestfs-performance.pod:446 ../examples/guestfs-recipes.pod:487 ../examples/guestfs-testing.pod:316 ../fish/guestfish.pod:1312 ../fish/virt-copy-in.pod:64 ../fish/virt-copy-out.pod:53 ../fish/virt-tar-in.pod:62 ../fish/virt-tar-out.pod:55 ../format/virt-format.pod:191 ../fuse/guestmount.pod:413 ../inspector/virt-inspector.pod:524 ../java/examples/guestfs-java.pod:62 ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:57 ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:353 ../resize/virt-resize.pod:729 ../ruby/examples/guestfs-ruby.pod:52 ../sparsify/virt-sparsify.pod:316 ../src/guestfs.pod:3500 ../sysprep/virt-sysprep.pod:463 ../test-tool/libguestfs-test-tool.pod:116 ../tools/virt-list-filesystems.pl:214 ../tools/virt-list-partitions.pl:283 ../tools/virt-make-fs.pl:609 ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:766
msgid "COPYRIGHT"
msgstr ""
@@ -1078,7 +1078,7 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../appliance/libguestfs-make-fixed-appliance.pod:139 ../edit/virt-edit.pod:343 ../fish/guestfish.pod:1131 ../rescue/virt-rescue.pod:313 ../sparsify/virt-sparsify.pod:272 ../src/guestfs.pod:3378 ../test-tool/libguestfs-test-tool.pod:101
+#: ../appliance/libguestfs-make-fixed-appliance.pod:139 ../edit/virt-edit.pod:343 ../fish/guestfish.pod:1131 ../rescue/virt-rescue.pod:313 ../sparsify/virt-sparsify.pod:272 ../src/guestfs.pod:3384 ../test-tool/libguestfs-test-tool.pod:101
msgid "ENVIRONMENT VARIABLES"
msgstr ""
@@ -1097,17 +1097,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../appliance/libguestfs-make-fixed-appliance.pod:153 ../erlang/examples/guestfs-erlang.pod:110 ../examples/guestfs-examples.pod:45 ../examples/guestfs-faq.pod:729 ../examples/guestfs-performance.pod:442 ../examples/guestfs-recipes.pod:430 ../examples/guestfs-testing.pod:298 ../fish/guestfish.pod:1308 ../fish/virt-copy-in.pod:60 ../fish/virt-copy-out.pod:49 ../fish/virt-tar-in.pod:58 ../fish/virt-tar-out.pod:51 ../fuse/guestmount.pod:409 ../inspector/virt-inspector.pod:510 ../java/examples/guestfs-java.pod:58 ../ocaml/examples/guestfs-ocaml.pod:91 ../perl/examples/guestfs-perl.pod:53 ../python/examples/guestfs-python.pod:54 ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3490 ../sysprep/virt-sysprep.pod:457 ../test-tool/libguestfs-test-tool.pod:112
+#: ../appliance/libguestfs-make-fixed-appliance.pod:153 ../erlang/examples/guestfs-erlang.pod:110 ../examples/guestfs-examples.pod:45 ../examples/guestfs-faq.pod:785 ../examples/guestfs-performance.pod:442 ../examples/guestfs-recipes.pod:483 ../examples/guestfs-testing.pod:312 ../fish/guestfish.pod:1308 ../fish/virt-copy-in.pod:60 ../fish/virt-copy-out.pod:49 ../fish/virt-tar-in.pod:58 ../fish/virt-tar-out.pod:51 ../fuse/guestmount.pod:409 ../inspector/virt-inspector.pod:510 ../java/examples/guestfs-java.pod:58 ../ocaml/examples/guestfs-ocaml.pod:91 ../perl/examples/guestfs-perl.pod:53 ../python/examples/guestfs-python.pod:54 ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3496 ../sysprep/virt-sysprep.pod:457 ../test-tool/libguestfs-test-tool.pod:112
msgid "AUTHORS"
msgstr ""
#. type: textblock
-#: ../appliance/libguestfs-make-fixed-appliance.pod:155 ../erlang/examples/guestfs-erlang.pod:112 ../examples/guestfs-examples.pod:47 ../examples/guestfs-faq.pod:731 ../examples/guestfs-performance.pod:444 ../examples/guestfs-recipes.pod:432 ../examples/guestfs-testing.pod:300 ../fish/guestfish.pod:1310 ../fish/virt-copy-in.pod:62 ../fish/virt-copy-out.pod:51 ../fish/virt-tar-in.pod:60 ../fish/virt-tar-out.pod:53 ../fuse/guestmount.pod:411 ../java/examples/guestfs-java.pod:60 ../ocaml/examples/guestfs-ocaml.pod:93 ../perl/examples/guestfs-perl.pod:55 ../python/examples/guestfs-python.pod:56 ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3492 ../test-tool/libguestfs-test-tool.pod:114
+#: ../appliance/libguestfs-make-fixed-appliance.pod:155 ../erlang/examples/guestfs-erlang.pod:112 ../examples/guestfs-examples.pod:47 ../examples/guestfs-faq.pod:787 ../examples/guestfs-performance.pod:444 ../examples/guestfs-recipes.pod:485 ../examples/guestfs-testing.pod:314 ../fish/guestfish.pod:1310 ../fish/virt-copy-in.pod:62 ../fish/virt-copy-out.pod:51 ../fish/virt-tar-in.pod:60 ../fish/virt-tar-out.pod:53 ../fuse/guestmount.pod:411 ../java/examples/guestfs-java.pod:60 ../ocaml/examples/guestfs-ocaml.pod:93 ../perl/examples/guestfs-perl.pod:55 ../python/examples/guestfs-python.pod:56 ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3498 ../test-tool/libguestfs-test-tool.pod:114
msgid "Richard W.M. Jones (C<rjones at redhat dot com>)"
msgstr ""
#. type: textblock
-#: ../appliance/libguestfs-make-fixed-appliance.pod:159 ../cat/virt-ls.pod:513 ../df/virt-df.pod:267 ../edit/virt-edit.pod:388 ../examples/guestfs-recipes.pod:436 ../fish/guestfish.pod:1314 ../fuse/guestmount.pod:415 ../rescue/virt-rescue.pod:355 ../src/guestfs.pod:3496 ../test-tool/libguestfs-test-tool.pod:118 ../tools/virt-list-partitions.pl:285
+#: ../appliance/libguestfs-make-fixed-appliance.pod:159 ../cat/virt-ls.pod:513 ../df/virt-df.pod:267 ../edit/virt-edit.pod:388 ../examples/guestfs-recipes.pod:489 ../fish/guestfish.pod:1314 ../fuse/guestmount.pod:415 ../rescue/virt-rescue.pod:355 ../src/guestfs.pod:3502 ../test-tool/libguestfs-test-tool.pod:118 ../tools/virt-list-partitions.pl:285
msgid "Copyright (C) 2009-2012 Red Hat Inc."
msgstr ""
@@ -2226,7 +2226,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:41 ../examples/guestfs-testing.pod:182
+#: ../cat/virt-ls.pod:41 ../examples/guestfs-testing.pod:196
msgid "List all setuid or setgid programs in a Linux virtual machine:"
msgstr ""
@@ -2239,7 +2239,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:45 ../examples/guestfs-testing.pod:186
+#: ../cat/virt-ls.pod:45 ../examples/guestfs-testing.pod:200
msgid "List all public-writable directories in a Linux virtual machine:"
msgstr ""
@@ -2252,7 +2252,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:49 ../examples/guestfs-testing.pod:190
+#: ../cat/virt-ls.pod:49 ../examples/guestfs-testing.pod:204
msgid "List all Unix domain sockets in a Linux virtual machine:"
msgstr ""
@@ -2265,7 +2265,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:53 ../examples/guestfs-testing.pod:194
+#: ../cat/virt-ls.pod:53 ../examples/guestfs-testing.pod:208
msgid "List all regular files with filenames ending in '.png':"
msgstr ""
@@ -2291,7 +2291,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:61 ../examples/guestfs-testing.pod:202
+#: ../cat/virt-ls.pod:61 ../examples/guestfs-testing.pod:216
msgid "Find everything modified in the last 7 days:"
msgstr ""
@@ -2304,7 +2304,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../cat/virt-ls.pod:65 ../examples/guestfs-testing.pod:206
+#: ../cat/virt-ls.pod:65 ../examples/guestfs-testing.pod:220
msgid "Find regular files modified in the last 24 hours:"
msgstr ""
@@ -3909,7 +3909,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../erlang/examples/guestfs-erlang.pod:116 ../examples/guestfs-testing.pod:304 ../fish/virt-copy-in.pod:66 ../fish/virt-copy-out.pod:55 ../fish/virt-tar-in.pod:64 ../fish/virt-tar-out.pod:57 ../java/examples/guestfs-java.pod:64 ../perl/examples/guestfs-perl.pod:59 ../sparsify/virt-sparsify.pod:318 ../sysprep/virt-sysprep.pod:465
+#: ../erlang/examples/guestfs-erlang.pod:116 ../examples/guestfs-testing.pod:318 ../fish/virt-copy-in.pod:66 ../fish/virt-copy-out.pod:55 ../fish/virt-tar-in.pod:64 ../fish/virt-tar-out.pod:57 ../java/examples/guestfs-java.pod:64 ../perl/examples/guestfs-perl.pod:59 ../sparsify/virt-sparsify.pod:318 ../sysprep/virt-sysprep.pod:465
msgid "Copyright (C) 2011-2012 Red Hat Inc."
msgstr ""
@@ -3990,23 +3990,23 @@ msgstr ""
#: ../examples/guestfs-faq.pod:16
msgid ""
"libguestfs is a C library (hence \"lib-\"), and a set of tools built on this "
-"library, and a set of bindings in many different programming languages."
+"library, and bindings for many common programming languages."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:20
+#: ../examples/guestfs-faq.pod:19
msgid ""
"For more information about what libguestfs can do read the introduction on "
"the home page (L<http://libguestfs.org>)."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:23
+#: ../examples/guestfs-faq.pod:22
msgid "What are the virt tools?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:25
+#: ../examples/guestfs-faq.pod:24
msgid ""
"Virt tools (website: L<http://virt-tools.org>) are a whole set of "
"virtualization management tools aimed at system administrators. Some of "
@@ -4017,22 +4017,22 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:32
+#: ../examples/guestfs-faq.pod:31
msgid "Does libguestfs need { libvirt / KVM / Red Hat / Fedora }?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:34
+#: ../examples/guestfs-faq.pod:33
msgid "No!"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:36
+#: ../examples/guestfs-faq.pod:35
msgid "libvirt is not a requirement for libguestfs."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:38
+#: ../examples/guestfs-faq.pod:37
msgid ""
"libguestfs works with any disk image, including ones created in VMware, KVM, "
"qemu, VirtualBox, Xen, and many other hypervisors, and ones which you have "
@@ -4040,26 +4040,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:42
+#: ../examples/guestfs-faq.pod:41
msgid ""
-"Red Hat sponsors (ie. pays for) development of libguestfs and a huge number "
-"of other open source projects. But you can run libguestfs and the virt "
-"tools on many different Linux distros and Mac OS X. Some virt tools have "
-"been ported to Windows."
+"S<Red Hat> sponsors (ie. pays for) development of libguestfs and a huge "
+"number of other open source projects. But you can run libguestfs and the "
+"virt tools on many different Linux distros and Mac OS X. Some virt tools "
+"have been ported to Windows."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:47
+#: ../examples/guestfs-faq.pod:46
msgid "How does libguestfs compare to other tools?"
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:51
+#: ../examples/guestfs-faq.pod:50
msgid "I<vs. kpartx>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:53
+#: ../examples/guestfs-faq.pod:52
msgid ""
"Libguestfs takes a different approach from kpartx. kpartx needs root, and "
"mounts filesystems on the host kernel (which can be insecure - see "
@@ -4071,12 +4071,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:61
+#: ../examples/guestfs-faq.pod:60
msgid "I<vs. vdfuse>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:63
+#: ../examples/guestfs-faq.pod:62
msgid ""
"vdfuse is like kpartx but for VirtualBox images. See the kpartx comparison "
"above. You can use libguestfs on the partition files exposed by vdfuse, "
@@ -4085,12 +4085,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:68
+#: ../examples/guestfs-faq.pod:67
msgid "I<vs. qemu-nbd>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:70
+#: ../examples/guestfs-faq.pod:69
msgid ""
"nbd is like kpartx but for qcow2 images. See the kpartx comparison above. "
"You can use libguestfs and qemu-nbd together for access to block devices "
@@ -4098,12 +4098,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:74
+#: ../examples/guestfs-faq.pod:73
msgid "I<vs. mounting filesystems in the host>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:76
+#: ../examples/guestfs-faq.pod:75
msgid ""
"Mounting guest filesystems in the host is insecure and should be avoided "
"completely for untrusted guests. Use libguestfs to provide a layer of "
@@ -4111,34 +4111,34 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:81
+#: ../examples/guestfs-faq.pod:80
msgid "I<vs. parted>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:83
+#: ../examples/guestfs-faq.pod:82
msgid ""
"Libguestfs supports LVM. Libguestfs uses parted and provides most parted "
"features through the libguestfs API."
msgstr ""
#. type: =head1
-#: ../examples/guestfs-faq.pod:88
+#: ../examples/guestfs-faq.pod:87
msgid "GETTING HELP AND REPORTING BUGS"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:90
+#: ../examples/guestfs-faq.pod:89
msgid "How do I know what version I'm using?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:92
+#: ../examples/guestfs-faq.pod:91
msgid "The simplest method is:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:94
+#: ../examples/guestfs-faq.pod:93
#, no-wrap
msgid ""
" guestfish --version\n"
@@ -4146,7 +4146,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:96
+#: ../examples/guestfs-faq.pod:95
msgid ""
"Libguestfs development happens along an unstable branch and we periodically "
"create a stable branch which we backport stable patches to. To find out "
@@ -4154,24 +4154,24 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:100
+#: ../examples/guestfs-faq.pod:99
msgid "How can I get help?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:102
+#: ../examples/guestfs-faq.pod:101
msgid "What mailing lists or chat rooms are available?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:104
+#: ../examples/guestfs-faq.pod:103
msgid ""
-"If you are a Red Hat customer using Red Hat Enterprise Linux, please contact "
-"Red Hat Support: L<http://redhat.com/support>"
+"If you are a S<Red Hat> customer using Red Hat Enterprise Linux, please "
+"contact S<Red Hat Support>: L<http://redhat.com/support>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:107
+#: ../examples/guestfs-faq.pod:106
msgid ""
"There is a mailing list, mainly for development, but users are also welcome "
"to ask questions about libguestfs and the virt tools: "
@@ -4179,7 +4179,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:111
+#: ../examples/guestfs-faq.pod:110
msgid ""
"You can also talk to us on IRC channel C<#libguestfs> on FreeNode. We're "
"not always around, so please stay in the channel after asking your question "
@@ -4187,7 +4187,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:115
+#: ../examples/guestfs-faq.pod:114
msgid ""
"For other virt tools (not ones supplied with libguestfs) there is a general "
"virt tools mailing list: "
@@ -4195,56 +4195,56 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:119
+#: ../examples/guestfs-faq.pod:118
msgid "How do I report bugs?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:121
+#: ../examples/guestfs-faq.pod:120
msgid "Please use the following link to enter a bug in Bugzilla:"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:123
+#: ../examples/guestfs-faq.pod:122
msgid "L<https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:125
+#: ../examples/guestfs-faq.pod:124
msgid "Include as much detail as you can and a way to reproduce the problem."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:127
+#: ../examples/guestfs-faq.pod:126
msgid "Include the full output of L<libguestfs-test-tool(1)>."
msgstr ""
#. type: =head1
-#: ../examples/guestfs-faq.pod:129
+#: ../examples/guestfs-faq.pod:128
msgid "COMMON PROBLEMS"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:131
+#: ../examples/guestfs-faq.pod:130
msgid ""
"See also L<guestfs(3)/LIBGUESTFS GOTCHAS> for some \"gotchas\" with using "
"the libguestfs API."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:134
+#: ../examples/guestfs-faq.pod:133
msgid "\"child process died unexpectedly\""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:136
+#: ../examples/guestfs-faq.pod:135
msgid ""
"This error indicates that qemu failed or the host kernel could not boot. To "
"get further information about the failure, you have to run:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:139 ../test-tool/libguestfs-test-tool.pod:21
+#: ../examples/guestfs-faq.pod:138 ../examples/guestfs-testing.pod:34 ../test-tool/libguestfs-test-tool.pod:21
#, no-wrap
msgid ""
" libguestfs-test-tool\n"
@@ -4252,24 +4252,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:141
+#: ../examples/guestfs-faq.pod:140
msgid ""
"If, after using this, you still don't understand the failure, contact us "
"(see previous section)."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:144
+#: ../examples/guestfs-faq.pod:143
msgid "Non-ASCII characters don't appear on VFAT filesystems."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:146
+#: ../examples/guestfs-faq.pod:145
msgid "Typical symptoms of this problem:"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:152
+#: ../examples/guestfs-faq.pod:151
msgid ""
"You get an error when you create a file where the filename contains "
"non-ASCII characters, particularly non 8-bit characters from Asian languages "
@@ -4277,19 +4277,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:158
+#: ../examples/guestfs-faq.pod:157
msgid ""
"When you list a directory from a VFAT filesystem, filenames appear as "
"question marks."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:163
+#: ../examples/guestfs-faq.pod:162
msgid "This is a design flaw of the GNU/Linux system."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:165
+#: ../examples/guestfs-faq.pod:164
msgid ""
"VFAT stores long filenames as UTF-16 characters. When opening or returning "
"filenames, the Linux kernel has to translate these to some form of 8 bit "
@@ -4299,7 +4299,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:171
+#: ../examples/guestfs-faq.pod:170
msgid ""
"Therefore you have to tell the kernel what translation you want done when "
"you mount the filesystem. The two methods are the C<iocharset> parameter "
@@ -4307,14 +4307,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:175
+#: ../examples/guestfs-faq.pod:174
msgid ""
"So to use a VFAT filesystem you must add the C<utf8> flag when mounting. "
"From guestfish, use:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:178
+#: ../examples/guestfs-faq.pod:177
#, no-wrap
msgid ""
" ><fs> mount-options utf8 /dev/sda1 /\n"
@@ -4322,12 +4322,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:180
+#: ../examples/guestfs-faq.pod:179
msgid "or on the guestfish command line:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:182
+#: ../examples/guestfs-faq.pod:181
#, no-wrap
msgid ""
" guestfish [...] -m /dev/sda1:/:utf8\n"
@@ -4335,12 +4335,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:184
+#: ../examples/guestfs-faq.pod:183
msgid "or from the API:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:186
+#: ../examples/guestfs-faq.pod:185
#, no-wrap
msgid ""
" guestfs_mount_options (g, \"utf8\", \"/dev/sda1\", \"/\");\n"
@@ -4348,19 +4348,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:188
+#: ../examples/guestfs-faq.pod:187
msgid "The kernel will then translate filenames to and from UTF-8 strings."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:190
+#: ../examples/guestfs-faq.pod:189
msgid ""
"We considered adding this mount option transparently, but unfortunately "
"there are several problems with doing that:"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:197
+#: ../examples/guestfs-faq.pod:196
msgid ""
"On some Linux systems, the C<utf8> mount option doesn't work. We don't "
"precisely understand what systems or why, but this was reliably reported by "
@@ -4368,7 +4368,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:203
+#: ../examples/guestfs-faq.pod:202
msgid ""
"It would prevent you from using the C<iocharset> parameter because it is "
"incompatible with C<utf8>. It is probably not a good idea to use this "
@@ -4376,12 +4376,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:209
+#: ../examples/guestfs-faq.pod:208
msgid "Non-ASCII characters appear as underscore (_) on ISO9660 filesystems."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:211
+#: ../examples/guestfs-faq.pod:210
msgid ""
"The filesystem was not prepared correctly with mkisofs or genisoimage. Make "
"sure the filesystem was created using Joliet and/or Rock Ridge extensions. "
@@ -4390,37 +4390,37 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-faq.pod:216
+#: ../examples/guestfs-faq.pod:215
msgid "DOWNLOADING, INSTALLING, COMPILING LIBGUESTFS"
msgstr ""
#. type: =end
-#: ../examples/guestfs-faq.pod:218 ../examples/guestfs-faq.pod:223 ../examples/guestfs-faq.pod:448 ../examples/guestfs-faq.pod:453 ../examples/guestfs-faq.pod:574 ../examples/guestfs-faq.pod:579 ../src/guestfs.pod:2428 ../src/guestfs.pod:2433
+#: ../examples/guestfs-faq.pod:217 ../examples/guestfs-faq.pod:222 ../examples/guestfs-faq.pod:504 ../examples/guestfs-faq.pod:509 ../examples/guestfs-faq.pod:630 ../examples/guestfs-faq.pod:635 ../src/guestfs.pod:2434 ../src/guestfs.pod:2439
msgid "html"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:220
+#: ../examples/guestfs-faq.pod:219
msgid "<!-- old anchor for the next section --> <a name=\"binaries\"/>"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:225
+#: ../examples/guestfs-faq.pod:224
msgid "Where can I get the latest binaries for ...?"
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:229
-msgid "Fedora E<ge> 11, RHEL E<ge> 5.3, EPEL 5"
+#: ../examples/guestfs-faq.pod:228
+msgid "Fedora E<ge> 11"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:231
+#: ../examples/guestfs-faq.pod:230
msgid "Use:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:233
+#: ../examples/guestfs-faq.pod:232
#, no-wrap
msgid ""
" yum install '*guestf*'\n"
@@ -4428,53 +4428,88 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:235
+#: ../examples/guestfs-faq.pod:234
msgid ""
"For the latest builds, see: "
"L<http://koji.fedoraproject.org/koji/packageinfo?packageID=8391>"
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:238
-msgid "Red Hat Enterprise Linux 6"
+#: ../examples/guestfs-faq.pod:237
+msgid "Red Hat Enterprise Linux"
+msgstr ""
+
+#. type: =item
+#: ../examples/guestfs-faq.pod:241
+msgid "RHEL 5"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:240
+#: ../examples/guestfs-faq.pod:243
+msgid "Use the package from EPEL 5: L<https://fedoraproject.org/wiki/EPEL>"
+msgstr ""
+
+#. type: =item
+#: ../examples/guestfs-faq.pod:246
+msgid "RHEL 6.2-6.3"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-faq.pod:248
msgid ""
"It is part of the default install. On RHEL 6 (only) you have to install "
"C<libguestfs-winsupport> to get Windows guest support."
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:243
+#: ../examples/guestfs-faq.pod:251
msgid "RHEL 6.4"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:245
-msgid "A preview repository will be announced at a later date."
+#: ../examples/guestfs-faq.pod:253
+msgid ""
+"A preview repository is available. See the announcement here: "
+"L<https://www.redhat.com/archives/libguestfs/2012-September/msg00074.html>"
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:247
+#: ../examples/guestfs-faq.pod:256
+msgid "RHEL 7"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-faq.pod:258
+msgid ""
+"It will be part of the default install, and based on libguestfs 1.20. As "
+"with RHEL 6 you will need to install C<libguestfs-winsupport> separately to "
+"get Windows guest support."
+msgstr ""
+
+#. type: =item
+#: ../examples/guestfs-faq.pod:264
+msgid "Debian and Ubuntu"
+msgstr ""
+
+#. type: =item
+#: ../examples/guestfs-faq.pod:268
msgid "Debian Squeeze (6)"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:249
+#: ../examples/guestfs-faq.pod:270
msgid ""
"Use Hilko Bengen's backport repository: "
"L<http://people.debian.org/~bengen/libguestfs/>"
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:252
+#: ../examples/guestfs-faq.pod:273
msgid "Debian Wheezy and later (7+)"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:254
+#: ../examples/guestfs-faq.pod:275
msgid ""
"Official Debian packages are available: "
"L<http://packages.debian.org/search?keywords=libguestfs> (thanks Hilko "
@@ -4482,20 +4517,19 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:258
+#: ../examples/guestfs-faq.pod:279
msgid "Ubuntu"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:260
+#: ../examples/guestfs-faq.pod:281
msgid ""
-"We don't have an Ubuntu maintainer, and the packages supplied by Canonical "
-"(which are outside our control) are often broken. Try compiling from source "
-"(next section)."
+"We don't have a full time Ubuntu maintainer, and the packages supplied by "
+"Canonical (which are outside our control) are sometimes broken."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:264
+#: ../examples/guestfs-faq.pod:284
msgid ""
"Canonical decided to change the permissions on the kernel so that it's not "
"readable except by root. This is completely stupid, but they won't change "
@@ -4504,7 +4538,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:270 ../examples/guestfs-faq.pod:296
+#: ../examples/guestfs-faq.pod:290 ../examples/guestfs-faq.pod:316
#, no-wrap
msgid ""
" sudo chmod 0644 /boot/vmlinuz*\n"
@@ -4512,41 +4546,41 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:272
+#: ../examples/guestfs-faq.pod:292
msgid "Ubuntu 10.04"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:274
+#: ../examples/guestfs-faq.pod:294
msgid "See: L<http://libguestfs.org/download/binaries/ubuntu1004-packages/>"
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:277
+#: ../examples/guestfs-faq.pod:297
msgid "Ubuntu 12.04"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:279
+#: ../examples/guestfs-faq.pod:299
msgid ""
"libguestfs in this version of Ubuntu works, but you need to update "
"febootstrap and seabios to the latest versions."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:282
+#: ../examples/guestfs-faq.pod:302
msgid ""
"You need febootstrap E<ge> 3.14-2 from: "
"L<http://packages.ubuntu.com/precise/febootstrap>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:285
+#: ../examples/guestfs-faq.pod:305
msgid "After installing or updating febootstrap, rebuild the appliance:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:287
+#: ../examples/guestfs-faq.pod:307
#, no-wrap
msgid ""
" sudo update-guestfs-appliance\n"
@@ -4554,7 +4588,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:289
+#: ../examples/guestfs-faq.pod:309
msgid ""
"You need seabios E<ge> 0.6.2-0ubuntu2.1 or E<ge> 0.6.2-0ubuntu3 from: "
"L<http://packages.ubuntu.com/precise-updates/seabios> or "
@@ -4562,22 +4596,22 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:294
+#: ../examples/guestfs-faq.pod:314
msgid "Also you need to do (see above):"
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:298
+#: ../examples/guestfs-faq.pod:320
msgid "Gentoo"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:300
+#: ../examples/guestfs-faq.pod:322
msgid "Libguestfs was added to Gentoo in 2012-07. Do:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:302
+#: ../examples/guestfs-faq.pod:324
#, no-wrap
msgid ""
" emerge libguestfs\n"
@@ -4585,68 +4619,68 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:304
+#: ../examples/guestfs-faq.pod:326
msgid "Other Linux distro"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:306
+#: ../examples/guestfs-faq.pod:328
msgid "Compile from source (next section)."
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:308
+#: ../examples/guestfs-faq.pod:330
msgid "Other non-Linux distro"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:310
+#: ../examples/guestfs-faq.pod:332
msgid "You'll have to compile from source, and port it."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:314
+#: ../examples/guestfs-faq.pod:336
msgid "How can I compile and install libguestfs from source?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:316
+#: ../examples/guestfs-faq.pod:338
msgid ""
-"If your Linux distro has a working port of febootstrap (that is, Fedora, Red "
-"Hat Enterprise Linux >= 6.3, Debian, Ubuntu and ArchLinux) then you should "
-"just be able to compile from source in the usual way. Download the latest "
-"tarball from L<http://libguestfs.org/download>, unpack it, and start by "
-"reading the README file."
+"If your Linux distro has a working port of febootstrap (that is, Fedora, "
+"S<Red Hat Enterprise Linux E<ge> 6.3>, Debian, Ubuntu and ArchLinux) then "
+"you should just be able to compile from source in the usual way. Download "
+"the latest tarball from L<http://libguestfs.org/download>, unpack it, and "
+"start by reading the README file."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:322
+#: ../examples/guestfs-faq.pod:344
msgid ""
"If you I<don't> have febootstrap, you will need to use the \"fixed appliance "
"method\". See: L<http://libguestfs.org/download/binaries/appliance/>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:326
+#: ../examples/guestfs-faq.pod:348
msgid "Patches to port febootstrap to more Linux distros are welcome."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:328
+#: ../examples/guestfs-faq.pod:350
msgid ""
"Why do I get an error when I try to rebuild from the source RPMs supplied by "
"Red Hat / Fedora?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:331
+#: ../examples/guestfs-faq.pod:353
msgid ""
"Because of the complexity of building the libguestfs appliance, the source "
"RPMs provided cannot be rebuilt directly using C<rpmbuild> or C<mock>."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:335
+#: ../examples/guestfs-faq.pod:357
msgid ""
"If you use Koji (which is open source software and may be installed "
"locally), then the SRPMs can be rebuilt in Koji. "
@@ -4654,7 +4688,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:339
+#: ../examples/guestfs-faq.pod:361
msgid ""
"If you don't have or want to use Koji, then you have to give libguestfs "
"access to the network so it can download the RPMs for building the "
@@ -4663,7 +4697,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:345
+#: ../examples/guestfs-faq.pod:367
#, no-wrap
msgid ""
" %libguestfs_buildnet 1\n"
@@ -4671,12 +4705,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:347
+#: ../examples/guestfs-faq.pod:369
msgid "If you are using mock, do:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:349
+#: ../examples/guestfs-faq.pod:371
#, no-wrap
msgid ""
" mock -D '%libguestfs_buildnet 1' [etc]\n"
@@ -4684,22 +4718,89 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:351
+#: ../examples/guestfs-faq.pod:373
+msgid "How can I add support for sVirt?"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-faq.pod:375
+msgid ""
+"Note: We are planning to make this configuration the default in S<Fedora "
+"18>. If you find any problems, please let us know or file a bug."
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-faq.pod:378
+msgid ""
+"L<SVirt|http://selinuxproject.org/page/SVirt> provides a hardened appliance "
+"using SELinux, making it very hard for a rogue disk image to \"escape\" from "
+"the confinement of libguestfs and damage the host (it's fair to say that "
+"even in standard libguestfs this would be hard, but sVirt provides an extra "
+"layer of protection for the host and more importantly protects virtual "
+"machines on the same host from each other)."
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-faq.pod:386
+msgid ""
+"Currently to enable sVirt you will need the very latest libvirt (from git), "
+"libguestfs and SELinux policies. If you are not running S<Fedora 18+>, you "
+"will need to make changes to your SELinux policy - contact us on the mailing "
+"list."
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-faq.pod:391
+msgid "Once you have the requirements, do:"
+msgstr ""
+
+#. type: verbatim
+#: ../examples/guestfs-faq.pod:393
+#, no-wrap
+msgid ""
+" ./configure --with-default-attach-method=libvirt\n"
+" make\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-faq.pod:396
+msgid "Enable SELinux, and sVirt should be used automatically."
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-faq.pod:398
+msgid ""
+"All, or almost all, features of libguestfs should work under sVirt. There "
+"is one known shortcoming: L<virt-rescue(1)> will not use libvirt (hence "
+"sVirt), but falls back to direct launch of qemu. So you won't currently get "
+"the benefit of sVirt protection when using virt-rescue."
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-faq.pod:403
+msgid ""
+"In theory sVirt should support AppArmor, but we have not tried it. It will "
+"almost certainly require patching libvirt and writing an AppArmor policy."
+msgstr ""
+
+#. type: =head2
+#: ../examples/guestfs-faq.pod:407
msgid "Libguestfs has a really long list of dependencies!"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:353
+#: ../examples/guestfs-faq.pod:409
msgid "That's because it does a lot of things."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:355
+#: ../examples/guestfs-faq.pod:411
msgid "How can I speed up libguestfs builds?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:357
+#: ../examples/guestfs-faq.pod:413
msgid ""
"By far the most important thing you can do is to install and properly "
"configure Squid. Note that the default configuration that ships with Squid "
@@ -4707,45 +4808,45 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:361
+#: ../examples/guestfs-faq.pod:417
msgid ""
"A very good place to start with Squid configuration is here: "
"L<https://fedoraproject.org/wiki/Extras/MockTricks#Using_Squid_to_Speed_Up_Mock_package_downloads>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:364
+#: ../examples/guestfs-faq.pod:420
msgid ""
"Make sure Squid is running, and that the environment variables "
"C<$http_proxy> and C<$ftp_proxy> are pointing to it."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:367
+#: ../examples/guestfs-faq.pod:423
msgid ""
"With Squid running and correctly configured, appliance builds should be "
"reduced to a few minutes."
msgstr ""
#. type: =head1
-#: ../examples/guestfs-faq.pod:370
+#: ../examples/guestfs-faq.pod:426
msgid "SPEED, DISK SPACE USED BY LIBGUESTFS"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:372
+#: ../examples/guestfs-faq.pod:428
msgid ""
"Note: Most of the information in this section has moved: "
"L<guestfs-performance(1)>."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:375
+#: ../examples/guestfs-faq.pod:431
msgid "Upload or write seem very slow."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:377
+#: ../examples/guestfs-faq.pod:433
msgid ""
"In libguestfs E<lt> 1.13.16, the mount command (L<guestfs(3)/guestfs_mount>) "
"enabled option C<-o sync> implicitly. This causes very poor write "
@@ -4753,14 +4854,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:382
+#: ../examples/guestfs-faq.pod:438
msgid ""
"For libguestfs E<lt> 1.13.16, replace mount with C<mount-options>, leaving "
"the first parameter as an empty string."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:385
+#: ../examples/guestfs-faq.pod:441
msgid ""
"You can also do this with more recent versions of libguestfs, but if you "
"know that you are using libguestfs ≥ 1.13.16 then it's safe to use plain "
@@ -4768,7 +4869,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:389
+#: ../examples/guestfs-faq.pod:445
msgid ""
"If the underlying disk is not fully allocated (eg. sparse raw or qcow2) then "
"writes can be slow because the host operating system has to do costly disk "
@@ -4778,17 +4879,17 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:395
+#: ../examples/guestfs-faq.pod:451
msgid "Libguestfs uses too much disk space!"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:397
+#: ../examples/guestfs-faq.pod:453
msgid "libguestfs caches a large-ish appliance in:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:399
+#: ../examples/guestfs-faq.pod:455
#, no-wrap
msgid ""
" /var/tmp/.guestfs-<UID>\n"
@@ -4796,26 +4897,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:401
+#: ../examples/guestfs-faq.pod:457
msgid ""
"If the environment variable C<TMPDIR> is defined, then "
"C<$TMPDIR/.guestfs-E<lt>UIDE<gt>> is used instead."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:404
+#: ../examples/guestfs-faq.pod:460
msgid "It is safe to delete this directory when you are not using libguestfs."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:406
+#: ../examples/guestfs-faq.pod:462
msgid ""
"virt-sparsify seems to make the image grow to the full size of the virtual "
"disk"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:409
+#: ../examples/guestfs-faq.pod:465
msgid ""
"If the input to L<virt-sparsify(1)> is raw, then the output will be raw "
"sparse. Make sure you are measuring the output with a tool which "
@@ -4823,7 +4924,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:413 ../sparsify/virt-sparsify.pod:34
+#: ../examples/guestfs-faq.pod:469 ../sparsify/virt-sparsify.pod:34
#, no-wrap
msgid ""
" $ ls -lh test1.img\n"
@@ -4834,19 +4935,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:418 ../sparsify/virt-sparsify.pod:39
+#: ../examples/guestfs-faq.pod:474 ../sparsify/virt-sparsify.pod:39
msgid "(Compare the apparent size B<100M> vs the actual size B<3.6M>)"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:420
+#: ../examples/guestfs-faq.pod:476
msgid ""
"If all this confuses you, use a non-sparse output by specifying the "
"I<--convert> option, eg:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:423
+#: ../examples/guestfs-faq.pod:479
#, no-wrap
msgid ""
" virt-sparsify --convert qcow2 disk.raw disk.qcow2\n"
@@ -4854,24 +4955,24 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-faq.pod:425
+#: ../examples/guestfs-faq.pod:481
msgid "USING LIBGUESTFS IN YOUR OWN PROGRAMS"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:427
+#: ../examples/guestfs-faq.pod:483
msgid "The API has hundreds of methods, where do I start?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:429
+#: ../examples/guestfs-faq.pod:485
msgid ""
"We recommend you start by reading the API overview: L<guestfs(3)/API "
"OVERVIEW>."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:432
+#: ../examples/guestfs-faq.pod:488
msgid ""
"Although the API overview covers the C API, it is still worth reading even "
"if you are going to use another programming language, because the API is the "
@@ -4879,7 +4980,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:437
+#: ../examples/guestfs-faq.pod:493
#, no-wrap
msgid ""
" C guestfs_ln_sf (g, target, linkname);\n"
@@ -4892,7 +4993,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:444
+#: ../examples/guestfs-faq.pod:500
msgid ""
"Once you're familiar with the API overview, you should look at this list of "
"starting points for other language bindings: L<guestfs(3)/USING LIBGUESTFS "
@@ -4900,24 +5001,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:450
+#: ../examples/guestfs-faq.pod:506
msgid "<!-- old anchor for the next section --> <a name=\"debug\"/>"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:455
+#: ../examples/guestfs-faq.pod:511
msgid "Can I use libguestfs in my proprietary / closed source / commercial program?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:458
+#: ../examples/guestfs-faq.pod:514
msgid ""
"In general, yes. However this is not legal advice - read the license that "
"comes with libguestfs, and if you have specific questions contact a lawyer."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:462
+#: ../examples/guestfs-faq.pod:518
msgid ""
"In the source tree the license is in the file C<COPYING.LIB> (LGPLv2+ for "
"the library and bindings) and C<COPYING> (GPLv2+ for the standalone "
@@ -4925,43 +5026,43 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-faq.pod:466
+#: ../examples/guestfs-faq.pod:522
msgid "DEBUGGING LIBGUESTFS"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:468
+#: ../examples/guestfs-faq.pod:524
msgid ""
"How do I debug when using any libguestfs program or tool (eg. virt-v2v or "
"virt-df)?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:471
+#: ../examples/guestfs-faq.pod:527
msgid ""
"There are two C<LIBGUESTFS_*> environment variables you can set in order to "
"get more information from libguestfs."
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:476
+#: ../examples/guestfs-faq.pod:532
msgid "C<LIBGUESTFS_TRACE>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:478
+#: ../examples/guestfs-faq.pod:534
msgid ""
"Set this to 1 and libguestfs will print out each command / API call in a "
"format which is similar to guestfish commands."
msgstr ""
#. type: =item
-#: ../examples/guestfs-faq.pod:481
+#: ../examples/guestfs-faq.pod:537
msgid "C<LIBGUESTFS_DEBUG>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:483
+#: ../examples/guestfs-faq.pod:539
msgid ""
"Set this to 1 in order to enable massive amounts of debug messages. If you "
"think there is some problem inside the libguestfs appliance, then you should "
@@ -4969,12 +5070,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:489
+#: ../examples/guestfs-faq.pod:545
msgid "To set these from the shell, do this before running the program:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:491
+#: ../examples/guestfs-faq.pod:547
#, no-wrap
msgid ""
" export LIBGUESTFS_TRACE=1\n"
@@ -4983,12 +5084,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:494
+#: ../examples/guestfs-faq.pod:550
msgid "For csh/tcsh the equivalent commands would be:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:496
+#: ../examples/guestfs-faq.pod:552
#, no-wrap
msgid ""
" setenv LIBGUESTFS_TRACE 1\n"
@@ -4997,17 +5098,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:499
+#: ../examples/guestfs-faq.pod:555
msgid "For further information, see: L<guestfs(3)/ENVIRONMENT VARIABLES>."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:501
+#: ../examples/guestfs-faq.pod:557
msgid "How do I debug when using guestfish?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:503
+#: ../examples/guestfs-faq.pod:559
msgid ""
"You can use the same environment variables above. Alternatively use the "
"guestfish options -x (to trace commands) or -v (to get the full debug "
@@ -5015,24 +5116,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:507
+#: ../examples/guestfs-faq.pod:563
msgid "For further information, see: L<guestfish(1)>."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:509
+#: ../examples/guestfs-faq.pod:565
msgid "How do I debug when using the API?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:511
+#: ../examples/guestfs-faq.pod:567
msgid ""
"Call L<guestfs(3)/guestfs_set_trace> to enable command traces, and/or "
"L<guestfs(3)/guestfs_set_verbose> to enable debug messages."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:514
+#: ../examples/guestfs-faq.pod:570
msgid ""
"For best results, call these functions as early as possible, just after "
"creating the guestfs handle if you can, and definitely before calling "
@@ -5040,36 +5141,36 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:518
+#: ../examples/guestfs-faq.pod:574
msgid "How do I capture debug output and put it into my logging system?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:520
+#: ../examples/guestfs-faq.pod:576
msgid ""
"Use the event API. For examples, see: L<guestfs(3)/SETTING CALLBACKS TO "
"HANDLE EVENTS>."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:523
+#: ../examples/guestfs-faq.pod:579
msgid "Digging deeper into the appliance boot process."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:525
+#: ../examples/guestfs-faq.pod:581
msgid ""
"Enable debugging and then read this documentation on the appliance boot "
"process: L<guestfs(3)/INTERNALS>."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:528
+#: ../examples/guestfs-faq.pod:584
msgid "libguestfs hangs or fails during run/launch."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:530
+#: ../examples/guestfs-faq.pod:586
msgid ""
"Enable debugging and look at the full output. If you cannot work out what "
"is going on, file a bug report, including the I<complete> output of "
@@ -5077,17 +5178,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-faq.pod:534
+#: ../examples/guestfs-faq.pod:590
msgid "DESIGN/INTERNALS OF LIBGUESTFS"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:536
+#: ../examples/guestfs-faq.pod:592
msgid "Why don't you do everything through the FUSE / filesystem interface?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:539
+#: ../examples/guestfs-faq.pod:595
msgid ""
"We offer a command called L<guestmount(1)> which lets you mount guest "
"filesystems on the host. This is implemented as a FUSE module. Why don't "
@@ -5096,7 +5197,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:544
+#: ../examples/guestfs-faq.pod:600
msgid ""
"The reasons are twofold. Firstly, libguestfs offers API calls for doing "
"things like creating and deleting partitions and logical volumes, which "
@@ -5110,7 +5211,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:554
+#: ../examples/guestfs-faq.pod:610
msgid ""
"The second reason is for efficiency. FUSE itself is reasonably efficient, "
"but it does make lots of small, independent calls into the FUSE module. In "
@@ -5123,17 +5224,17 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:564
+#: ../examples/guestfs-faq.pod:620
msgid "Why don't you do everything through GVFS?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:566
+#: ../examples/guestfs-faq.pod:622
msgid "The problems are similar to the problems with FUSE."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:568
+#: ../examples/guestfs-faq.pod:624
msgid ""
"GVFS is a better abstraction than POSIX/FUSE. There is an FTP backend for "
"GVFS, which is encouraging because FTP is conceptually similar to the "
@@ -5143,17 +5244,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:576
+#: ../examples/guestfs-faq.pod:632
msgid "<!-- old anchor for the next section --> <a name=\"backup\"/>"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:581
+#: ../examples/guestfs-faq.pod:637
msgid "Can I use C<guestfish --ro> as a way to backup my virtual machines?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:583
+#: ../examples/guestfs-faq.pod:639
msgid ""
"Usually this is not a good idea. The question is answered in more detail in "
"this mailing list posting: "
@@ -5161,17 +5262,17 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:587
+#: ../examples/guestfs-faq.pod:643
msgid "Why can I write to the disk, even though I added it read-only?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:589
+#: ../examples/guestfs-faq.pod:645
msgid "Why does C<--ro> appear to have no effect?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:591
+#: ../examples/guestfs-faq.pod:647
msgid ""
"When you add a disk read-only, libguestfs places a writable overlay on top "
"of the underlying disk. Writes go into this overlay, and are discarded when "
@@ -5179,7 +5280,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:595
+#: ../examples/guestfs-faq.pod:651
msgid ""
"There are two reasons for doing it this way: Firstly read-only disks aren't "
"possible in many cases (eg. IDE simply doesn't support them, so you couldn't "
@@ -5188,7 +5289,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:600
+#: ../examples/guestfs-faq.pod:656
msgid ""
"Secondly and more importantly, even if read-only disks were possible, you "
"wouldn't want them. Mounting any filesystem that has a journal, even "
@@ -5198,7 +5299,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:606
+#: ../examples/guestfs-faq.pod:662
msgid ""
"To make it usable, we create the overlay as a place to temporarily store "
"these writes, and then we discard it afterwards. This ensures that the "
@@ -5206,7 +5307,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:610
+#: ../examples/guestfs-faq.pod:666
msgid ""
"Note also that there is a regression test for this when building libguestfs "
"(in C<tests/qemu>). This is one reason why it's important for packagers to "
@@ -5214,38 +5315,38 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:614
+#: ../examples/guestfs-faq.pod:670
msgid "Does C<--ro> make all disks read-only?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:616
+#: ../examples/guestfs-faq.pod:672
msgid ""
"I<No!> The C<--ro> option only affects disks added on the command line, "
"ie. using C<-a> and C<-d> options."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:619
+#: ../examples/guestfs-faq.pod:675
msgid ""
"In guestfish, if you use the C<add> command, then disk is added read-write "
"(unless you specify the C<readonly:true> flag explicitly with the command)."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:623
+#: ../examples/guestfs-faq.pod:679
msgid "What's the difference between guestfish and virt-rescue?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:625
+#: ../examples/guestfs-faq.pod:681
msgid ""
"A lot of people are confused by the two superficially similar tools we "
"provide:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:628
+#: ../examples/guestfs-faq.pod:684
#, no-wrap
msgid ""
" $ guestfish --ro -a guest.img\n"
@@ -5255,7 +5356,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:632
+#: ../examples/guestfs-faq.pod:688
#, no-wrap
msgid ""
" $ virt-rescue --ro guest.img\n"
@@ -5264,7 +5365,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:635
+#: ../examples/guestfs-faq.pod:691
msgid ""
"And the related question which then arises is why you can't type in full "
"shell commands with all the --options in guestfish (but you can in "
@@ -5272,7 +5373,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:639
+#: ../examples/guestfs-faq.pod:695
msgid ""
"L<guestfish(1)> is a program providing structured access to the "
"L<guestfs(3)> API. It happens to be a nice interactive shell too, but its "
@@ -5283,7 +5384,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:646
+#: ../examples/guestfs-faq.pod:702
msgid ""
"L<virt-rescue(1)> is a free-for-all freeform way to boot the libguestfs "
"appliance and make arbitrary changes to your VM. It's not structured, you "
@@ -5292,7 +5393,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:651
+#: ../examples/guestfs-faq.pod:707
msgid ""
"But, libguestfs also has a \"backdoor\" into the appliance allowing you to "
"send arbitrary shell commands. It's not as flexible as virt-rescue, because "
@@ -5300,7 +5401,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:656
+#: ../examples/guestfs-faq.pod:712
#, no-wrap
msgid ""
" ><fs> debug sh \"cmd arg1 arg2 ...\"\n"
@@ -5308,7 +5409,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:658
+#: ../examples/guestfs-faq.pod:714
msgid ""
"Note that you should B<not> rely on this. It could be removed or changed in "
"future. If your program needs some operation, please add it to the "
@@ -5316,45 +5417,45 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:662
+#: ../examples/guestfs-faq.pod:718
msgid "What's the deal with C<guestfish -i>?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:664
+#: ../examples/guestfs-faq.pod:720
msgid ""
"Why does virt-cat only work on a real VM image, but virt-df works on any "
"disk image?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-faq.pod:667
+#: ../examples/guestfs-faq.pod:723
msgid "What does \"no root device found in this operating system image\" mean?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:670
+#: ../examples/guestfs-faq.pod:726
msgid ""
"These questions are all related at a fundamental level which may not be "
"immediately obvious."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:673
+#: ../examples/guestfs-faq.pod:729
msgid ""
"At the L<guestfs(3)> API level, a \"disk image\" is just a pile of "
"partitions and filesystems."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:676
+#: ../examples/guestfs-faq.pod:732
msgid ""
"In contrast, when the virtual machine boots, it mounts those filesystems "
"into a consistent hierarchy such as:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:679
+#: ../examples/guestfs-faq.pod:735
#, no-wrap
msgid ""
" / (/dev/sda2)\n"
@@ -5370,12 +5471,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:689
+#: ../examples/guestfs-faq.pod:745
msgid "(or drive letters on Windows)."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:691
+#: ../examples/guestfs-faq.pod:747
msgid ""
"The API first of all sees the disk image at the \"pile of filesystems\" "
"level. But it also has a way to inspect the disk image to see if it "
@@ -5384,12 +5485,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:696
+#: ../examples/guestfs-faq.pod:752
msgid "Users expect some tools (like L<virt-cat(1)>) to work with VM paths:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-faq.pod:698
+#: ../examples/guestfs-faq.pod:754
#, no-wrap
msgid ""
" virt-cat fedora.img /var/log/messages\n"
@@ -5397,7 +5498,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:700
+#: ../examples/guestfs-faq.pod:756
msgid ""
"How does virt-cat know that C</var> is a separate partition? The trick is "
"that virt-cat performs inspection on the disk image, and uses that to "
@@ -5405,7 +5506,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:704
+#: ../examples/guestfs-faq.pod:760
msgid ""
"Some tools (including L<virt-cat(1)>, L<virt-edit(1)>, L<virt-ls(1)>) use "
"inspection to map VM paths. Other tools, such as L<virt-df(1)> and "
@@ -5414,7 +5515,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:709
+#: ../examples/guestfs-faq.pod:765
msgid ""
"L<guestfish(1)> is in an interesting middle ground. If you use the I<-a> "
"and I<-m> command line options, then you have to tell guestfish exactly how "
@@ -5422,14 +5523,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:714
+#: ../examples/guestfs-faq.pod:770
msgid ""
"If you use the I<-i> option, libguestfs performs inspection and mounts the "
"filesystems for you."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:717
+#: ../examples/guestfs-faq.pod:773
msgid ""
"The error C<no root device found in this operating system image> is related "
"to this. It means inspection was unable to locate an operating system "
@@ -5439,12 +5540,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:725
+#: ../examples/guestfs-faq.pod:781
msgid "L<guestfish(1)>, L<guestfs(3)>, L<http://libguestfs.org/>."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-faq.pod:735 ../examples/guestfs-performance.pod:448 ../format/virt-format.pod:193
+#: ../examples/guestfs-faq.pod:791 ../examples/guestfs-performance.pod:448 ../format/virt-format.pod:193
msgid "Copyright (C) 2012 Red Hat Inc."
msgstr ""
@@ -5492,7 +5593,7 @@ msgid "On an unloaded machine, time how long it takes to start up the appliance:
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-performance.pod:29 ../examples/guestfs-performance.pod:180 ../examples/guestfs-testing.pod:36
+#: ../examples/guestfs-performance.pod:29 ../examples/guestfs-performance.pod:180 ../examples/guestfs-testing.pod:50
#, no-wrap
msgid ""
" time guestfish -a /dev/null run\n"
@@ -5740,7 +5841,7 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-performance.pod:162 ../examples/guestfs-performance.pod:211 ../resize/virt-resize.pod:31 ../resize/virt-resize.pod:603 ../sparsify/virt-sparsify.pod:243 ../src/guestfs.pod:469 ../src/guestfs.pod:1282 ../src/guestfs.pod:1451 ../src/guestfs.pod:1615 ../src/guestfs.pod:2863
+#: ../examples/guestfs-performance.pod:162 ../examples/guestfs-performance.pod:211 ../examples/guestfs-recipes.pod:288 ../resize/virt-resize.pod:31 ../resize/virt-resize.pod:603 ../sparsify/virt-sparsify.pod:243 ../src/guestfs.pod:475 ../src/guestfs.pod:1288 ../src/guestfs.pod:1457 ../src/guestfs.pod:1621 ../src/guestfs.pod:2869
msgid "1."
msgstr ""
@@ -5752,7 +5853,7 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-performance.pod:168 ../examples/guestfs-performance.pod:218 ../resize/virt-resize.pod:44 ../resize/virt-resize.pod:610 ../sparsify/virt-sparsify.pod:250 ../src/guestfs.pod:475 ../src/guestfs.pod:1286 ../src/guestfs.pod:1455 ../src/guestfs.pod:1619 ../src/guestfs.pod:2888
+#: ../examples/guestfs-performance.pod:168 ../examples/guestfs-performance.pod:218 ../examples/guestfs-recipes.pod:294 ../resize/virt-resize.pod:44 ../resize/virt-resize.pod:610 ../sparsify/virt-sparsify.pod:250 ../src/guestfs.pod:481 ../src/guestfs.pod:1292 ../src/guestfs.pod:1461 ../src/guestfs.pod:1625 ../src/guestfs.pod:2894
msgid "2."
msgstr ""
@@ -5767,7 +5868,7 @@ msgid ""
msgstr ""
#. type: =item
-#: ../examples/guestfs-performance.pod:176 ../examples/guestfs-performance.pod:224 ../resize/virt-resize.pod:52 ../resize/virt-resize.pod:616 ../sparsify/virt-sparsify.pod:256 ../src/guestfs.pod:486 ../src/guestfs.pod:1290 ../src/guestfs.pod:1625
+#: ../examples/guestfs-performance.pod:176 ../examples/guestfs-performance.pod:224 ../examples/guestfs-recipes.pod:300 ../resize/virt-resize.pod:52 ../resize/virt-resize.pod:616 ../sparsify/virt-sparsify.pod:256 ../src/guestfs.pod:492 ../src/guestfs.pod:1296 ../src/guestfs.pod:1631
msgid "3."
msgstr ""
@@ -6029,7 +6130,7 @@ msgid "Save the following script as C<time.stap>:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-performance.pod:322 ../src/guestfs.pod:2376
+#: ../examples/guestfs-performance.pod:322 ../src/guestfs.pod:2382
#, no-wrap
msgid ""
" global last;\n"
@@ -6037,7 +6138,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-performance.pod:324 ../src/guestfs.pod:2378
+#: ../examples/guestfs-performance.pod:324 ../src/guestfs.pod:2384
#, no-wrap
msgid ""
" function display_time () {\n"
@@ -6050,7 +6151,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-performance.pod:331 ../src/guestfs.pod:2385
+#: ../examples/guestfs-performance.pod:331 ../src/guestfs.pod:2391
#, no-wrap
msgid ""
" printf (\"%d (+%d):\", now, delta);\n"
@@ -6059,7 +6160,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-performance.pod:334 ../src/guestfs.pod:2388
+#: ../examples/guestfs-performance.pod:334 ../src/guestfs.pod:2394
#, no-wrap
msgid ""
" probe begin {\n"
@@ -6070,7 +6171,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-performance.pod:339 ../src/guestfs.pod:2393
+#: ../examples/guestfs-performance.pod:339 ../src/guestfs.pod:2399
#, no-wrap
msgid ""
" /* Display all calls to static markers. */\n"
@@ -6179,7 +6280,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-performance.pod:394 ../fish/guestfish.pod:994 ../src/guestfs.pod:1068
+#: ../examples/guestfs-performance.pod:394 ../fish/guestfish.pod:994 ../src/guestfs.pod:1074
#, no-wrap
msgid ""
" #!/bin/bash -\n"
@@ -6554,38 +6655,43 @@ msgstr ""
msgid "To list the filesystems in a disk image, use L<virt-filesystems(1)>."
msgstr ""
-#. type: =head1
+#. type: textblock
#: ../examples/guestfs-recipes.pod:120
+msgid "See also L</Uploading raw filesystem content>."
+msgstr ""
+
+#. type: =head1
+#: ../examples/guestfs-recipes.pod:122
msgid "Edit grub configuration in a VM"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:122
+#: ../examples/guestfs-recipes.pod:124
msgid "You can use this to:"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:128
+#: ../examples/guestfs-recipes.pod:130
msgid "Fix a virtual machine that does not boot."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:132
+#: ../examples/guestfs-recipes.pod:134
msgid "Change which kernel is used to boot the VM."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:136
+#: ../examples/guestfs-recipes.pod:138
msgid "Change kernel command line options."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:140
+#: ../examples/guestfs-recipes.pod:142
msgid "Use L<virt-edit(1)> to edit the grub configuration:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:142
+#: ../examples/guestfs-recipes.pod:144
#, no-wrap
msgid ""
" virt-edit -d BrokenGuest /boot/grub2/grub.cfg\n"
@@ -6593,14 +6699,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:144
+#: ../examples/guestfs-recipes.pod:146
msgid ""
"or for general tinkering inside an unbootable VM use L<virt-rescue(1)> like "
"this:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:147
+#: ../examples/guestfs-recipes.pod:149
#, no-wrap
msgid ""
" virt-rescue -d BrokenGuest\n"
@@ -6608,17 +6714,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:149
+#: ../examples/guestfs-recipes.pod:151
msgid "Export any directory from a VM"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:151
+#: ../examples/guestfs-recipes.pod:153
msgid "To export C</home> from a VM into a local directory use L<virt-copy-out(1)>:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:154 ../examples/guestfs-testing.pod:93
+#: ../examples/guestfs-recipes.pod:156 ../examples/guestfs-testing.pod:107
#, no-wrap
msgid ""
" virt-copy-out -d Guest /home .\n"
@@ -6626,24 +6732,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:156 ../fish/guestfish-actions.pod:9 ../fish/guestfish-actions.pod:1607 ../fish/guestfish-actions.pod:2002 ../fish/guestfish-actions.pod:2429 ../src/guestfs-actions.pod:18 ../src/guestfs-actions.pod:2642 ../src/guestfs-actions.pod:3209 ../src/guestfs-actions.pod:3778 ../src/guestfs.pod:1859 ../tools/virt-win-reg.pl:717
+#: ../examples/guestfs-recipes.pod:158 ../fish/guestfish-actions.pod:9 ../fish/guestfish-actions.pod:1607 ../fish/guestfish-actions.pod:2002 ../fish/guestfish-actions.pod:2429 ../src/guestfs-actions.pod:18 ../src/guestfs-actions.pod:2642 ../src/guestfs-actions.pod:3209 ../src/guestfs-actions.pod:3778 ../src/guestfs.pod:1865 ../tools/virt-win-reg.pl:707
msgid "Notes:"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:162
+#: ../examples/guestfs-recipes.pod:164
msgid ""
"The final dot of the command is not a printing error. It means we want to "
"copy out to the current directory."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:167
+#: ../examples/guestfs-recipes.pod:169
msgid "This creates a directory called C<home> under the current directory."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:171
+#: ../examples/guestfs-recipes.pod:173
msgid ""
"If the guest is a Windows guest then you can use drive letters and "
"backslashes, but you must prefix the path with C<win:> and quote it to "
@@ -6651,7 +6757,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:175
+#: ../examples/guestfs-recipes.pod:177
#, no-wrap
msgid ""
" virt-copy-out -d WinGuest 'win:c:\\windows\\system32\\config' .\n"
@@ -6659,12 +6765,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:177
+#: ../examples/guestfs-recipes.pod:179
msgid "To get the output as a compressed tarball, do:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:179
+#: ../examples/guestfs-recipes.pod:181
#, no-wrap
msgid ""
" virt-tar-out -d Guest /home - | gzip --best > home.tar.gz\n"
@@ -6672,7 +6778,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:181
+#: ../examples/guestfs-recipes.pod:183
msgid ""
"Although it sounds tempting, this is usually not a reliable way to get a "
"backup from a running guest. See the entry in the FAQ: "
@@ -6680,19 +6786,19 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:185
+#: ../examples/guestfs-recipes.pod:187
msgid "Find out which user is using the most space"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:187
+#: ../examples/guestfs-recipes.pod:189
msgid ""
"This simple script examines a Linux guest to find out which user is using "
"the most space in their home directory:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:190
+#: ../examples/guestfs-recipes.pod:192
#, no-wrap
msgid ""
" #!/bin/sh -\n"
@@ -6700,7 +6806,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:192 ../fish/guestfish.pod:996
+#: ../examples/guestfs-recipes.pod:194 ../fish/guestfish.pod:996
#, no-wrap
msgid ""
" set -e\n"
@@ -6708,7 +6814,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:194
+#: ../examples/guestfs-recipes.pod:196
#, no-wrap
msgid ""
" vm=\"$1\"\n"
@@ -6717,7 +6823,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:197
+#: ../examples/guestfs-recipes.pod:199
#, no-wrap
msgid ""
" eval $(guestfish --ro -d \"$vm\" -i --listen)\n"
@@ -6725,7 +6831,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:199
+#: ../examples/guestfs-recipes.pod:201
#, no-wrap
msgid ""
" for d in $(guestfish --remote ls \"$dir\"); do\n"
@@ -6737,7 +6843,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:205 ../fish/guestfish.pod:953
+#: ../examples/guestfs-recipes.pod:207 ../fish/guestfish.pod:953
#, no-wrap
msgid ""
" guestfish --remote exit\n"
@@ -6745,41 +6851,41 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:207
+#: ../examples/guestfs-recipes.pod:209
msgid "Get DHCP address from a VM"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:209
+#: ../examples/guestfs-recipes.pod:211
msgid ""
"The link below explains the many different possible techniques for getting "
"the last assigned DHCP address of a virtual machine."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:212
+#: ../examples/guestfs-recipes.pod:214
msgid "L<https://rwmj.wordpress.com/2011/03/31/tip-code-for-getting-dhcp-address-from-a-virtual-machine-disk-image/#content>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:214
+#: ../examples/guestfs-recipes.pod:216
msgid ""
"In the libguestfs source examples directory you will find the latest version "
"of the C<virt-dhcp-address.c> program."
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:217
+#: ../examples/guestfs-recipes.pod:219
msgid "Get the operating system product name string"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:219
+#: ../examples/guestfs-recipes.pod:221
msgid "Save the following script into a file called C<product-name.sh>:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:221
+#: ../examples/guestfs-recipes.pod:223
#, no-wrap
msgid ""
" #!/bin/sh -\n"
@@ -6792,12 +6898,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:228
+#: ../examples/guestfs-recipes.pod:230
msgid "Make the script executable and run it on a named guest:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:230
+#: ../examples/guestfs-recipes.pod:232
#, no-wrap
msgid ""
" # product-name.sh RHEL60x64\n"
@@ -6806,14 +6912,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:233
+#: ../examples/guestfs-recipes.pod:235
msgid ""
"You can also use an XPath query on the L<virt-inspector(1)> XML using the "
"C<xpath> command line tool or from your favourite programming language:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:237
+#: ../examples/guestfs-recipes.pod:239
#, no-wrap
msgid ""
" # virt-inspector RHEL60x64 > xml\n"
@@ -6826,66 +6932,116 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:243
+#: ../examples/guestfs-recipes.pod:245
msgid "Get the default boot kernel for a Linux VM"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:245
+#: ../examples/guestfs-recipes.pod:247
msgid ""
"The link below contains a program to print the default boot kernel for a "
"Linux VM."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:248
+#: ../examples/guestfs-recipes.pod:250
msgid "L<https://rwmj.wordpress.com/2010/10/30/tip-use-augeas-to-get-the-default-boot-kernel-for-a-vm/#content>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:250
+#: ../examples/guestfs-recipes.pod:252
msgid ""
"It uses Augeas, and the technique is generally applicable for many different "
"tasks, such as:"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:257
+#: ../examples/guestfs-recipes.pod:259
msgid "listing the user accounts in the guest"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:261
+#: ../examples/guestfs-recipes.pod:263
msgid "what repositories is it configured to use"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:265
+#: ../examples/guestfs-recipes.pod:267
msgid "what NTP servers does it connect to"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:269
+#: ../examples/guestfs-recipes.pod:271
msgid "what were the boot messages last time it booted"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:273
+#: ../examples/guestfs-recipes.pod:275
msgid "listing who was logged in recently"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:277
+#: ../examples/guestfs-recipes.pod:279
msgid "L<http://augeas.net/>"
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:279
+#: ../examples/guestfs-recipes.pod:281
+msgid "Hanging guests"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:283
+msgid ""
+"There are various ways to use libguestfs to find out why a guest is hanging "
+"or unresponsive:"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:290
+msgid "Read the log files using virt-cat:"
+msgstr ""
+
+#. type: verbatim
+#: ../examples/guestfs-recipes.pod:292
+#, no-wrap
+msgid ""
+" virt-cat Guest /var/log/messages | less\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:296
+msgid "Read the Windows Event Log (Windows Vista or later only):"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:298 ../examples/guestfs-recipes.pod:397
+msgid "L<https://rwmj.wordpress.com/2011/04/17/decoding-the-windows-event-log-using-guestfish/#content>"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:302
+msgid "Find out which files were last updated in a guest:"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:304
+msgid "L<https://rwmj.wordpress.com/2012/02/27/using-libguestfs-to-find-out-why-a-windows-guest-was-hanging/#content>"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:306
+msgid "This might give you a clue as to what program is running."
+msgstr ""
+
+#. type: =head1
+#: ../examples/guestfs-recipes.pod:310
msgid "Install RPMs in a guest"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:281
+#: ../examples/guestfs-recipes.pod:312
msgid ""
"The link below contains a method to install RPMs in a guest. In fact the "
"RPMs are just uploaded to the guest along with a \"firstboot\" script that "
@@ -6894,22 +7050,22 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:287
+#: ../examples/guestfs-recipes.pod:318
msgid "L<https://rwmj.wordpress.com/2010/12/01/tip-install-rpms-in-a-guest/#content>"
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:289
+#: ../examples/guestfs-recipes.pod:320
msgid "List applications installed in a VM"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:291
+#: ../examples/guestfs-recipes.pod:322
msgid "Save the following to a file C<list-apps.sh>:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:293
+#: ../examples/guestfs-recipes.pod:324
#, no-wrap
msgid ""
" #!/bin/sh -\n"
@@ -6922,14 +7078,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:300
+#: ../examples/guestfs-recipes.pod:331
msgid ""
"Make the file executable and then you can run it on any named virtual "
"machine:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:303
+#: ../examples/guestfs-recipes.pod:334
#, no-wrap
msgid ""
" # list-apps.sh WinGuest\n"
@@ -6965,7 +7121,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:333
+#: ../examples/guestfs-recipes.pod:364
msgid ""
"If you want to run the script on disk images (instead of libvirt virtual "
"machines), change C<-d \"$1\"> to C<-a \"$1\">. See also "
@@ -6973,22 +7129,22 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:337
+#: ../examples/guestfs-recipes.pod:368
msgid "List files and directories in a VM"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:339
+#: ../examples/guestfs-recipes.pod:370
msgid "Use L<virt-ls(1)>."
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:341
+#: ../examples/guestfs-recipes.pod:372
msgid "List services in a Windows VM"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:343
+#: ../examples/guestfs-recipes.pod:374
msgid ""
"The link below contains a script that can be used to list out the services "
"from a Windows VM, and whether those services run at boot time or are loaded "
@@ -6996,69 +7152,64 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:347
+#: ../examples/guestfs-recipes.pod:378
msgid "L<https://rwmj.wordpress.com/2010/12/10/tip-list-services-in-a-windows-guest/#content>"
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:349
+#: ../examples/guestfs-recipes.pod:380
msgid "Make a disk image sparse"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:351
+#: ../examples/guestfs-recipes.pod:382
msgid "Use L<virt-sparsify(1)>."
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:353
+#: ../examples/guestfs-recipes.pod:384
msgid "Monitor disk usage over time"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:355
+#: ../examples/guestfs-recipes.pod:386
msgid ""
"You can use L<virt-df(1)> to monitor disk usage of your guests over time. "
"The link below contains a guide."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:358
+#: ../examples/guestfs-recipes.pod:389
msgid "L<http://virt-tools.org/learning/advanced-virt-df/>"
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:360
+#: ../examples/guestfs-recipes.pod:391
msgid "Reading the Windows Event Log from Windows Vista (or later)"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:362
+#: ../examples/guestfs-recipes.pod:393
msgid ""
"L<guestfish(1)> plus the tools described in the link below can be used to "
"read out the Windows Event Log from any virtual machine running Windows "
"Vista or a later version."
msgstr ""
-#. type: textblock
-#: ../examples/guestfs-recipes.pod:366
-msgid "L<https://rwmj.wordpress.com/2011/04/17/decoding-the-windows-event-log-using-guestfish/#content>"
-msgstr ""
-
#. type: =head1
-#: ../examples/guestfs-recipes.pod:368
+#: ../examples/guestfs-recipes.pod:399
msgid "Remove root password (Linux)"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:370
+#: ../examples/guestfs-recipes.pod:401
msgid ""
"Using the L<virt-edit(1)> I<-e> option you can do simple replacements on "
"files. One use is to remove the root password from a Linux guest:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-recipes.pod:373
+#: ../examples/guestfs-recipes.pod:404
#, no-wrap
msgid ""
" virt-edit domname /etc/passwd -e 's/^root:.*?:/root::/'\n"
@@ -7066,12 +7217,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:375
+#: ../examples/guestfs-recipes.pod:406
msgid "Remove Administrator password (Windows)"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:377
+#: ../examples/guestfs-recipes.pod:408
msgid ""
"The link below contains one technique for removing the Administrator "
"password from a Windows VM, or to be more precise, it gives you a command "
@@ -7079,17 +7230,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:382
+#: ../examples/guestfs-recipes.pod:413
msgid "L<https://mdbooth.wordpress.com/2010/10/18/resetting-a-windows-guests-administrator-password-with-guestfish/>"
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:384
+#: ../examples/guestfs-recipes.pod:415
msgid "Sysprepping a virtual machine (Windows)"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:386
+#: ../examples/guestfs-recipes.pod:417
msgid ""
"It is possible to do a \"sysprep\" using libguestfs alone, although not "
"straightforward. Currently there is code in the Aeolus Oz project which "
@@ -7098,19 +7249,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:391
+#: ../examples/guestfs-recipes.pod:422
msgid ""
"L<https://github.com/clalancette/oz> "
"L<https://www.redhat.com/archives/virt-tools-list/2011-May/msg00019.html>"
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:394
+#: ../examples/guestfs-recipes.pod:425
msgid "Unpack a live CD"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:396
+#: ../examples/guestfs-recipes.pod:427
msgid ""
"Linux live CDs often contain multiple layers of disk images wrapped like a "
"Russian doll. You can use L<guestfish(1)> to look inside these multiple "
@@ -7118,46 +7269,99 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:400
+#: ../examples/guestfs-recipes.pod:431
msgid "L<https://rwmj.wordpress.com/2009/07/15/unpack-the-russian-doll-of-a-f11-live-cd/#content>"
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:402
+#: ../examples/guestfs-recipes.pod:433
msgid "Uploading and downloading files"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:404
+#: ../examples/guestfs-recipes.pod:435
msgid ""
"The link below contains general tips on uploading (copying in) and "
"downloading (copying out) files from VMs."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:407
+#: ../examples/guestfs-recipes.pod:438
msgid "L<https://rwmj.wordpress.com/2010/12/02/tip-uploading-and-downloading/#content>"
msgstr ""
#. type: =head1
-#: ../examples/guestfs-recipes.pod:409
+#: ../examples/guestfs-recipes.pod:440
+msgid "Uploading raw filesystem content"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:442
+msgid ""
+"You can use L<guestfish(1)> to upload whole filesystems into a VM, even into "
+"a filesystem which is encrypted or buried inside an LV or RAID device:"
+msgstr ""
+
+#. type: verbatim
+#: ../examples/guestfs-recipes.pod:446
+#, no-wrap
+msgid ""
+" guestfish --rw -a disk.img run : upload sda1.img /dev/sda1\n"
+"\n"
+msgstr ""
+
+#. type: verbatim
+#: ../examples/guestfs-recipes.pod:448
+#, no-wrap
+msgid ""
+" guestfish --rw -d Guest run : upload lv.img /dev/vg_guest/lv_root\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:450
+msgid ""
+"One common problem is that the filesystem isn't the right size for the "
+"target. If it is too large, there's not much you can do with libguestfs - "
+"you have to prepare the filesystem differently. But if the filesystem needs "
+"to expand into the target, you can use guestfish to resize it to the right "
+"size:"
+msgstr ""
+
+#. type: verbatim
+#: ../examples/guestfs-recipes.pod:456
+#, no-wrap
+msgid ""
+" guestfish --rw -d Guest run : \\\n"
+" upload lv.img /dev/vg_guest/lv_root : \\\n"
+" resize2fs /dev/vg_guest/lv_root\n"
+"\n"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-recipes.pod:460
+msgid "(or use C<ntfsresize> if the filesystem is NTFS)."
+msgstr ""
+
+#. type: =head1
+#: ../examples/guestfs-recipes.pod:462
msgid "Use libguestfs tools on VMware ESX guests"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:411
+#: ../examples/guestfs-recipes.pod:464
msgid ""
"The link below explains how to use libguestfs, L<guestfish(1)> and the virt "
"tools on any VMware ESX guests, by first sharing the VMware VMFS over sshfs."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:415
+#: ../examples/guestfs-recipes.pod:468
msgid "L<https://rwmj.wordpress.com/2011/05/10/tip-use-libguestfs-on-vmware-esx-guests/#content>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-recipes.pod:419
+#: ../examples/guestfs-recipes.pod:472
msgid ""
"L<guestfs(3)>, L<guestfish(1)>, L<guestfs-examples(3)>, "
"L<guestfs-erlang(3)>, L<guestfs-java(3)>, L<guestfs-ocaml(3)>, "
@@ -7220,11 +7424,37 @@ msgstr ""
#. type: =head2
#: ../examples/guestfs-testing.pod:30
+msgid "Run libguestfs-test-tool"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-testing.pod:32 ../examples/guestfs-testing.pod:145 ../src/guestfs.pod:3258
+msgid "Run:"
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-testing.pod:36
+msgid ""
+"This command does a very simple, non-destructive test that basic libguestfs "
+"is functioning. You don't need to run it as root."
+msgstr ""
+
+#. type: textblock
+#: ../examples/guestfs-testing.pod:39
+msgid ""
+"If it I<doesn't> print C<===== TEST FINISHED OK =====>, report it as a bug. "
+"It is very important that you include the B<complete, unedited> output of "
+"C<libguestfs-test-tool> in your bug report. See the L</BUGS> section at the "
+"end of this page."
+msgstr ""
+
+#. type: =head2
+#: ../examples/guestfs-testing.pod:44
msgid "Check KVM acceleration is being used."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:32
+#: ../examples/guestfs-testing.pod:46
msgid ""
"If your host has hardware virt acceleration, then with a hot cache "
"libguestfs should be able to start up in a few seconds. Run the following "
@@ -7232,39 +7462,39 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:38
+#: ../examples/guestfs-testing.pod:52
msgid ""
"After a few runs, the time should settle down to a few seconds (under 5 "
"seconds on fast 64 bit hardware)."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:41
+#: ../examples/guestfs-testing.pod:55
msgid "How to check for hardware virt:"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:43
+#: ../examples/guestfs-testing.pod:57
msgid "L<http://virt-tools.org/learning/check-hardware-virt/>"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:45
+#: ../examples/guestfs-testing.pod:59
msgid "If the command above does not work at all, use L<libguestfs-test-tool(1)>."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:48
+#: ../examples/guestfs-testing.pod:62
msgid "Run virt-alignment-scan on all your guests."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:50
+#: ../examples/guestfs-testing.pod:64
msgid "Run L<virt-alignment-scan(1)> on guests or disk images:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:52
+#: ../examples/guestfs-testing.pod:66
#, no-wrap
msgid ""
" virt-alignment-scan -a /path/to/disk.img\n"
@@ -7272,12 +7502,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:54 ../examples/guestfs-testing.pod:161 ../examples/guestfs-testing.pod:174 ../examples/guestfs-testing.pod:234 ../src/guestfs.pod:2966
+#: ../examples/guestfs-testing.pod:68 ../examples/guestfs-testing.pod:175 ../examples/guestfs-testing.pod:188 ../examples/guestfs-testing.pod:248 ../src/guestfs.pod:2972
msgid "or:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:56
+#: ../examples/guestfs-testing.pod:70
#, no-wrap
msgid ""
" virt-alignment-scan -d Guest\n"
@@ -7285,22 +7515,22 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:58
+#: ../examples/guestfs-testing.pod:72
msgid "Does the alignment report match how the guest partitions are aligned?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:60
+#: ../examples/guestfs-testing.pod:74
msgid "Run virt-cat on some files in guests."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:62
+#: ../examples/guestfs-testing.pod:76
msgid "L<virt-cat(1)> can display files from guests. For a Linux guest, try:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:64
+#: ../examples/guestfs-testing.pod:78
#, no-wrap
msgid ""
" virt-cat LinuxGuest /etc/passwd\n"
@@ -7308,12 +7538,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:66
+#: ../examples/guestfs-testing.pod:80
msgid "A recent feature is support for Windows paths, for example:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:68
+#: ../examples/guestfs-testing.pod:82
#, no-wrap
msgid ""
" virt-cat WindowsGuest 'c:\\windows\\win.ini'\n"
@@ -7321,26 +7551,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:70
+#: ../examples/guestfs-testing.pod:84
msgid ""
"An even better test is if you have a Windows guest with multiple drives. Do "
"C<D:>, C<E:> etc paths work correctly?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:73
+#: ../examples/guestfs-testing.pod:87
msgid "B<*> Copy some files into a B<shut off> guest."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:75
+#: ../examples/guestfs-testing.pod:89
msgid ""
"L<virt-copy-in(1)> can recursively copy files and directories into a guest "
"or disk image."
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:78
+#: ../examples/guestfs-testing.pod:92
#, no-wrap
msgid ""
" virt-copy-in -d Guest /etc /tmp\n"
@@ -7348,7 +7578,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:80
+#: ../examples/guestfs-testing.pod:94
msgid ""
"This should copy local directory C</etc> to C</tmp/etc> in the guest "
"(recursively). If you boot the guest, can you see all of the copied files "
@@ -7356,12 +7586,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:84
+#: ../examples/guestfs-testing.pod:98
msgid "Shut the guest down and try copying multiple files and directories:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:86
+#: ../examples/guestfs-testing.pod:100
#, no-wrap
msgid ""
" virt-copy-in -d Guest /home /etc/issue /tmp\n"
@@ -7369,39 +7599,39 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:88
+#: ../examples/guestfs-testing.pod:102
msgid "Copy some files out of a guest."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:90
+#: ../examples/guestfs-testing.pod:104
msgid ""
"L<virt-copy-out(1)> can recursively copy files and directories out of a "
"guest or disk image."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:95
+#: ../examples/guestfs-testing.pod:109
msgid "Note the final space and period in the command is not a typo."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:97
+#: ../examples/guestfs-testing.pod:111
msgid "This should copy C</home> from the guest into the current directory."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:99
+#: ../examples/guestfs-testing.pod:113
msgid "Run virt-df."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:101
+#: ../examples/guestfs-testing.pod:115
msgid "L<virt-df(1)> lists disk space. Run:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:103
+#: ../examples/guestfs-testing.pod:117
#, no-wrap
msgid ""
" virt-df\n"
@@ -7409,31 +7639,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:105
+#: ../examples/guestfs-testing.pod:119
msgid ""
"You can try comparing this to the results from L<df(1)> inside the guest, "
"but there are some provisos:"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:112
+#: ../examples/guestfs-testing.pod:126
msgid "The guest must be idle."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:116
+#: ../examples/guestfs-testing.pod:130
msgid "The guest disks must be synched using L<sync(1)>."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:120
+#: ../examples/guestfs-testing.pod:134
msgid ""
"Any action such as booting the guest will write log files causing the "
"numbers to change."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:125
+#: ../examples/guestfs-testing.pod:139
msgid ""
"We don't guarantee that the numbers will be identical even under these "
"circumstances. They should be similar. It would indicate a bug if you saw "
@@ -7441,17 +7671,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:129
+#: ../examples/guestfs-testing.pod:143
msgid "Try importing virt-df CSV output into a spreadsheet or database."
msgstr ""
-#. type: textblock
-#: ../examples/guestfs-testing.pod:131 ../src/guestfs.pod:3252
-msgid "Run:"
-msgstr ""
-
#. type: verbatim
-#: ../examples/guestfs-testing.pod:133
+#: ../examples/guestfs-testing.pod:147
#, no-wrap
msgid ""
" virt-df --csv > /tmp/report.csv\n"
@@ -7459,33 +7684,33 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:135
+#: ../examples/guestfs-testing.pod:149
msgid ""
"Now try to load this into your favorite spreadsheet or database. Are the "
"results reproduced faithfully in the spreadsheet/database?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:138
+#: ../examples/guestfs-testing.pod:152
msgid ""
"L<http://www.postgresql.org/docs/8.1/static/sql-copy.html> "
"L<http://dev.mysql.com/doc/refman/5.1/en/load-data.html>"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:141
+#: ../examples/guestfs-testing.pod:155
msgid "B<*> Edit a file in a B<shut off> guest."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:143
+#: ../examples/guestfs-testing.pod:157
msgid ""
"L<virt-edit(1)> can edit files in guests. Try this command on a RHEL or "
"Fedora guest:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:146
+#: ../examples/guestfs-testing.pod:160
#, no-wrap
msgid ""
" virt-edit LinuxGuest /etc/sysconfig/network\n"
@@ -7493,12 +7718,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:148
+#: ../examples/guestfs-testing.pod:162
msgid "On other Linux guests try editing other files such as:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:150
+#: ../examples/guestfs-testing.pod:164
#, no-wrap
msgid ""
" virt-edit LinuxGuest /etc/motd\n"
@@ -7506,24 +7731,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:152
+#: ../examples/guestfs-testing.pod:166
msgid "Are the changes seen inside the guest when it is booted?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:154
+#: ../examples/guestfs-testing.pod:168
msgid "Display the filesystems / partitions / LVs in a guest."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:156
+#: ../examples/guestfs-testing.pod:170
msgid ""
"L<virt-filesystems(1)> can be used to display filesystems in a guest. Try "
"this command on any disk image or guest:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:159
+#: ../examples/guestfs-testing.pod:173
#, no-wrap
msgid ""
" virt-filesystems -a /path/to/disk.img --all --long -h\n"
@@ -7531,7 +7756,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:163
+#: ../examples/guestfs-testing.pod:177
#, no-wrap
msgid ""
" virt-filesystems -d Guest --all --long -h\n"
@@ -7539,24 +7764,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:165
+#: ../examples/guestfs-testing.pod:179
msgid "Do the results match what is seen in the guest?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:167
+#: ../examples/guestfs-testing.pod:181
msgid "Run virt-inspector on all your guests."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:169
+#: ../examples/guestfs-testing.pod:183
msgid ""
"Use L<virt-inspector(1)> to get a report on all of your guests or disk "
"images:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:172
+#: ../examples/guestfs-testing.pod:186
#, no-wrap
msgid ""
" virt-inspector -a /path/to/disk.img | less\n"
@@ -7564,7 +7789,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:176
+#: ../examples/guestfs-testing.pod:190
#, no-wrap
msgid ""
" virt-inspector -d Guest | less\n"
@@ -7572,17 +7797,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:178
+#: ../examples/guestfs-testing.pod:192
msgid "Do the results match what is actually in the guest?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:180
+#: ../examples/guestfs-testing.pod:194
msgid "Try the auditing features of virt-ls on all your guests."
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:184
+#: ../examples/guestfs-testing.pod:198
#, no-wrap
msgid ""
" virt-ls -lR -d Guest / | grep '^- [42]'\n"
@@ -7590,7 +7815,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:188
+#: ../examples/guestfs-testing.pod:202
#, no-wrap
msgid ""
" virt-ls -lR -d Guest / | grep '^d ...7'\n"
@@ -7598,7 +7823,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:192
+#: ../examples/guestfs-testing.pod:206
#, no-wrap
msgid ""
" virt-ls -lR -d Guest / | grep '^s'\n"
@@ -7606,7 +7831,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:196
+#: ../examples/guestfs-testing.pod:210
#, no-wrap
msgid ""
" virt-ls -lR -d Guest / | grep -i '^-.*\\.png$'\n"
@@ -7614,12 +7839,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:198
+#: ../examples/guestfs-testing.pod:212
msgid "Display files larger than 10MB in home directories:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:200
+#: ../examples/guestfs-testing.pod:214
#, no-wrap
msgid ""
" virt-ls -lR -d Guest /home | awk '$3 > 10*1024*1024'\n"
@@ -7627,7 +7852,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:204
+#: ../examples/guestfs-testing.pod:218
#, no-wrap
msgid ""
" virt-ls -lR -d Guest --time-days / | awk '$6 <= 7'\n"
@@ -7635,7 +7860,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:208
+#: ../examples/guestfs-testing.pod:222
#, no-wrap
msgid ""
" virt-ls -lR -d Guest --time-days / | grep '^-' | awk '$6 < 1'\n"
@@ -7643,24 +7868,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:210
+#: ../examples/guestfs-testing.pod:224
msgid "Do the results match what is in the guest?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:212
+#: ../examples/guestfs-testing.pod:226
msgid "Create a disk image from a tarball."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:214
+#: ../examples/guestfs-testing.pod:228
msgid ""
"Use L<virt-make-fs(1)> to create a disk image from any tarball that you "
"happen to have:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:217
+#: ../examples/guestfs-testing.pod:231
#, no-wrap
msgid ""
" virt-make-fs --partition=mbr --type=vfat /any/tarball.tar.gz output.img\n"
@@ -7668,7 +7893,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:219
+#: ../examples/guestfs-testing.pod:233
msgid ""
"Add 'output.img' as a raw disk to an existing guest. Check the guest can "
"see the files. This test is particularly useful if you try it with a "
@@ -7676,29 +7901,29 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:223
+#: ../examples/guestfs-testing.pod:237
msgid "Try other partitioning schemes, eg. I<--partition=gpt>."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:225
+#: ../examples/guestfs-testing.pod:239
msgid "Try other filesystem formats, eg. I<--type=ntfs>, I<--type=ext2>."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:227
+#: ../examples/guestfs-testing.pod:241
msgid "B<*> Run virt-rescue on a B<shut off> disk image or guest."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:229
+#: ../examples/guestfs-testing.pod:243
msgid ""
"Use L<virt-rescue(1)> to examine, rescue or repair a B<shut off> guest or "
"disk image:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:232
+#: ../examples/guestfs-testing.pod:246
#, no-wrap
msgid ""
" virt-rescue -a /path/to/disk.img\n"
@@ -7706,7 +7931,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:236
+#: ../examples/guestfs-testing.pod:250
#, no-wrap
msgid ""
" virt-rescue -d Guest\n"
@@ -7714,24 +7939,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:238
+#: ../examples/guestfs-testing.pod:252
msgid "Can you use ordinary shell commands to examine the guest?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:240
+#: ../examples/guestfs-testing.pod:254
msgid "B<*> Resize your guests."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:242
+#: ../examples/guestfs-testing.pod:256
msgid ""
"Use L<virt-resize(1)> to give a guest some more disk space. For example, if "
"you have a disk image that is smaller than 30G, increase it to 30G by doing:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:246
+#: ../examples/guestfs-testing.pod:260
#, no-wrap
msgid ""
" truncate -s 30G newdisk.img\n"
@@ -7742,22 +7967,22 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:251
+#: ../examples/guestfs-testing.pod:265
msgid "Does the guest still boot? Try expanding other partitions."
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:253
+#: ../examples/guestfs-testing.pod:267
msgid "B<*> Sparsify a guest disk."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:255
+#: ../examples/guestfs-testing.pod:269
msgid "Using L<virt-sparsify(1)>, make a disk image more sparse:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:257
+#: ../examples/guestfs-testing.pod:271
#, no-wrap
msgid ""
" virt-sparsify /path/to/olddisk.img newdisk.img\n"
@@ -7765,26 +7990,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:259
+#: ../examples/guestfs-testing.pod:273
msgid ""
"Is C<newdisk.img> still bootable after sparsifying? Is the resulting disk "
"image smaller (use C<du> to check)?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:262
+#: ../examples/guestfs-testing.pod:276
msgid "B<*> \"sysprep\" a B<shut off> Linux guest."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:264
+#: ../examples/guestfs-testing.pod:278
msgid ""
"Note that this really will mess up an existing guest, so it's better to "
"clone the guest before trying this."
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:267
+#: ../examples/guestfs-testing.pod:281
#, no-wrap
msgid ""
" virt-sysprep --hostname newhost.example.com -a /path/to/disk.img\n"
@@ -7792,26 +8017,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:269
+#: ../examples/guestfs-testing.pod:283
msgid ""
"Was the sysprep successful? After booting, what changes were made and were "
"they successful?"
msgstr ""
#. type: =head2
-#: ../examples/guestfs-testing.pod:272
+#: ../examples/guestfs-testing.pod:286
msgid "Dump the Windows Registry from your Windows guests."
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:274
+#: ../examples/guestfs-testing.pod:288
msgid ""
"Use L<virt-win-reg(1)> to dump out the Windows Registry from any Windows "
"guests that you have."
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:277
+#: ../examples/guestfs-testing.pod:291
#, no-wrap
msgid ""
" virt-win-reg --unsafe-printable-strings WindowsGuest 'HKLM\\Software' |\n"
@@ -7820,7 +8045,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:280
+#: ../examples/guestfs-testing.pod:294
#, no-wrap
msgid ""
" virt-win-reg --unsafe-printable-strings WindowsGuest 'HKLM\\System' |\n"
@@ -7829,19 +8054,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:283
+#: ../examples/guestfs-testing.pod:297
msgid "Does the output match running C<regedit> inside the guest?"
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:285
+#: ../examples/guestfs-testing.pod:299
msgid ""
"A recent feature is the ability to dump user registries, so try this, "
"replacing I<username> with the name of a local user in the guest:"
msgstr ""
#. type: verbatim
-#: ../examples/guestfs-testing.pod:288
+#: ../examples/guestfs-testing.pod:302
#, no-wrap
msgid ""
" virt-win-reg --unsafe-printable-strings WindowsGuest 'HKEY_USERS\\username' "
@@ -7851,7 +8076,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../examples/guestfs-testing.pod:293
+#: ../examples/guestfs-testing.pod:307
msgid ""
"L<guestfs(3)>, L<guestfish(1)>, L<guestfs-examples(3)>, "
"L<http://libguestfs.org/>."
@@ -8173,7 +8398,7 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:174 ../src/guestfs-actions.pod:234 ../src/guestfs.pod:3131
+#: ../fish/guestfish-actions.pod:174 ../src/guestfs-actions.pod:234 ../src/guestfs.pod:3137
msgid "C<format>"
msgstr ""
@@ -18299,7 +18524,7 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish-actions.pod:4903 ../src/guestfs-actions.pod:7698 ../src/guestfs.pod:3095
+#: ../fish/guestfish-actions.pod:4903 ../src/guestfs-actions.pod:7698 ../src/guestfs.pod:3101
msgid "C<appliance>"
msgstr ""
@@ -22230,7 +22455,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:135 ../src/guestfs.pod:2417
+#: ../fish/guestfish.pod:135 ../src/guestfs.pod:2423
#, no-wrap
msgid ""
" guestfish -N fs\n"
@@ -23727,7 +23952,7 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../fish/guestfish.pod:837 ../src/guestfs.pod:519
+#: ../fish/guestfish.pod:837 ../src/guestfs.pod:525
msgid "ENCRYPTED DISKS"
msgstr ""
@@ -24369,7 +24594,7 @@ msgid "COMMANDS"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1124 ../src/guestfs.pod:1694
+#: ../fish/guestfish.pod:1124 ../src/guestfs.pod:1700
msgid "@ACTIONS@"
msgstr ""
@@ -24393,17 +24618,17 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1140 ../src/guestfs.pod:3382
+#: ../fish/guestfish.pod:1140 ../src/guestfs.pod:3388
msgid "FEBOOTSTRAP_KERNEL"
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1142 ../src/guestfs.pod:3384
+#: ../fish/guestfish.pod:1142 ../src/guestfs.pod:3390
msgid "FEBOOTSTRAP_MODULES"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1144 ../src/guestfs.pod:3386
+#: ../fish/guestfish.pod:1144 ../src/guestfs.pod:3392
msgid ""
"These two environment variables allow the kernel that libguestfs uses in the "
"appliance to be selected. If C<$FEBOOTSTRAP_KERNEL> is not set, then the "
@@ -24461,17 +24686,17 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1172 ../src/guestfs.pod:3392
+#: ../fish/guestfish.pod:1172 ../src/guestfs.pod:3398
msgid "LIBGUESTFS_APPEND"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1174 ../src/guestfs.pod:3394
+#: ../fish/guestfish.pod:1174 ../src/guestfs.pod:3400
msgid "Pass additional options to the guest kernel."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1176 ../src/guestfs.pod:3396
+#: ../fish/guestfish.pod:1176 ../src/guestfs.pod:3402
msgid "LIBGUESTFS_DEBUG"
msgstr ""
@@ -24483,17 +24708,17 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1181 ../src/guestfs.pod:3401
+#: ../fish/guestfish.pod:1181 ../src/guestfs.pod:3407
msgid "LIBGUESTFS_MEMSIZE"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1183 ../src/guestfs.pod:3403
+#: ../fish/guestfish.pod:1183 ../src/guestfs.pod:3409
msgid "Set the memory allocated to the qemu process, in megabytes. For example:"
msgstr ""
#. type: verbatim
-#: ../fish/guestfish.pod:1186 ../src/guestfs.pod:3406
+#: ../fish/guestfish.pod:1186 ../src/guestfs.pod:3412
#, no-wrap
msgid ""
" LIBGUESTFS_MEMSIZE=700\n"
@@ -24501,7 +24726,7 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1188 ../src/guestfs.pod:3408
+#: ../fish/guestfish.pod:1188 ../src/guestfs.pod:3414
msgid "LIBGUESTFS_PATH"
msgstr ""
@@ -24513,19 +24738,19 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1193 ../src/guestfs.pod:3413
+#: ../fish/guestfish.pod:1193 ../src/guestfs.pod:3419
msgid "LIBGUESTFS_QEMU"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1195 ../src/guestfs.pod:3415
+#: ../fish/guestfish.pod:1195 ../src/guestfs.pod:3421
msgid ""
"Set the default qemu binary that libguestfs uses. If not set, then the qemu "
"which was found at compile time by the configure script is used."
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1199 ../src/guestfs.pod:3421
+#: ../fish/guestfish.pod:1199 ../src/guestfs.pod:3427
msgid "LIBGUESTFS_TRACE"
msgstr ""
@@ -24547,19 +24772,19 @@ msgid ""
msgstr ""
#. type: =item
-#: ../fish/guestfish.pod:1208 ../sparsify/virt-sparsify.pod:276 ../src/guestfs.pod:3426
+#: ../fish/guestfish.pod:1208 ../sparsify/virt-sparsify.pod:276 ../src/guestfs.pod:3432
msgid "TMPDIR"
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1210 ../src/guestfs.pod:3428
+#: ../fish/guestfish.pod:1210 ../src/guestfs.pod:3434
msgid ""
"Location of temporary directory, defaults to C</tmp> except for the cached "
"supermin appliance which defaults to C</var/tmp>."
msgstr ""
#. type: textblock
-#: ../fish/guestfish.pod:1213 ../src/guestfs.pod:3431
+#: ../fish/guestfish.pod:1213 ../src/guestfs.pod:3437
msgid ""
"If libguestfs was compiled to use the supermin appliance then the real "
"appliance is cached in this directory, shared between all handles belonging "
@@ -40265,26 +40490,39 @@ msgid ""
"LANGUAGES> below."
msgstr ""
-#. type: =head1
+#. type: textblock
#: ../src/guestfs.pod:41
-msgid "API OVERVIEW"
+msgid "For tips and recipes, see L<guestfs-recipes(1)>."
msgstr ""
#. type: textblock
#: ../src/guestfs.pod:43
msgid ""
+"If you are having performance problems, read L<guestfs-performance(1)>. To "
+"help test libguestfs, read L<libguestfs-test-tool(1)> and "
+"L<guestfs-testing(1)>."
+msgstr ""
+
+#. type: =head1
+#: ../src/guestfs.pod:47
+msgid "API OVERVIEW"
+msgstr ""
+
+#. type: textblock
+#: ../src/guestfs.pod:49
+msgid ""
"This section provides a gentler overview of the libguestfs API. We also try "
"to group API calls together, where that may not be obvious from reading "
"about the individual calls in the main section of this manual."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:48
+#: ../src/guestfs.pod:54
msgid "HANDLES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:50
+#: ../src/guestfs.pod:56
msgid ""
"Before you can use libguestfs calls, you have to create a handle. Then you "
"must add at least one disk image to the handle, followed by launching the "
@@ -40294,12 +40532,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:57
+#: ../src/guestfs.pod:63
msgid "The general structure of all libguestfs-using programs looks like this:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:60
+#: ../src/guestfs.pod:66
#, no-wrap
msgid ""
" guestfs_h *g = guestfs_create ();\n"
@@ -40307,7 +40545,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:62
+#: ../src/guestfs.pod:68
#, no-wrap
msgid ""
" /* Call guestfs_add_drive additional times if there are\n"
@@ -40318,7 +40556,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:67
+#: ../src/guestfs.pod:73
#, no-wrap
msgid ""
" /* Most manipulation calls won't work until you've launched\n"
@@ -40330,7 +40568,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:73
+#: ../src/guestfs.pod:79
#, no-wrap
msgid ""
" /* Now you can examine what partitions, LVs etc are available.\n"
@@ -40341,7 +40579,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:78
+#: ../src/guestfs.pod:84
#, no-wrap
msgid ""
" /* To access a filesystem in the image, you must mount it.\n"
@@ -40351,7 +40589,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:82
+#: ../src/guestfs.pod:88
#, no-wrap
msgid ""
" /* Now you can perform filesystem actions on the guest\n"
@@ -40362,7 +40600,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:87
+#: ../src/guestfs.pod:93
#, no-wrap
msgid ""
" /* Synchronize the disk. This is the opposite of guestfs_launch. */\n"
@@ -40371,7 +40609,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:90
+#: ../src/guestfs.pod:96
#, no-wrap
msgid ""
" /* Close and free the handle 'g'. */\n"
@@ -40380,7 +40618,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:93
+#: ../src/guestfs.pod:99
msgid ""
"The code above doesn't include any error checking. In real code you should "
"check return values carefully for errors. In general all functions that "
@@ -40392,12 +40630,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:102
+#: ../src/guestfs.pod:108
msgid "DISK IMAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:104
+#: ../src/guestfs.pod:110
msgid ""
"The image filename (C<\"guest.img\"> in the example above) could be a disk "
"image from a virtual machine, a L<dd(1)> copy of a physical hard disk, an "
@@ -40407,7 +40645,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:110
+#: ../src/guestfs.pod:116
msgid ""
"The call you should use in modern code for adding drives is "
"L</guestfs_add_drive_opts>. To add a disk image, allowing writes, and "
@@ -40415,7 +40653,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:114
+#: ../src/guestfs.pod:120
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
@@ -40425,12 +40663,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:118
+#: ../src/guestfs.pod:124
msgid "You can add a disk read-only using:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:120
+#: ../src/guestfs.pod:126
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
@@ -40441,14 +40679,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:125
+#: ../src/guestfs.pod:131
msgid ""
"or by calling the older function L</guestfs_add_drive_ro>. In either case "
"libguestfs won't modify the file."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:128
+#: ../src/guestfs.pod:134
msgid ""
"Be extremely cautious if the disk image is in use, eg. if it is being used "
"by a virtual machine. Adding it read-write will almost certainly cause disk "
@@ -40456,7 +40694,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:132
+#: ../src/guestfs.pod:138
msgid ""
"You must add at least one disk image, and you may add multiple disk images. "
"In the API, the disk images are usually referred to as C</dev/sda> (for the "
@@ -40464,7 +40702,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:137
+#: ../src/guestfs.pod:143
msgid ""
"Once L</guestfs_launch> has been called you cannot add any more images. You "
"can call L</guestfs_list_devices> to get a list of the device names, in the "
@@ -40472,12 +40710,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:142
+#: ../src/guestfs.pod:148
msgid "MOUNTING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:144
+#: ../src/guestfs.pod:150
msgid ""
"Before you can read or write files, create directories and so on in a disk "
"image that contains filesystems, you have to mount those filesystems using "
@@ -40487,7 +40725,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:151
+#: ../src/guestfs.pod:157
#, no-wrap
msgid ""
" guestfs_mount_options (g, \"\", \"/dev/sda1\", \"/\");\n"
@@ -40495,7 +40733,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:153
+#: ../src/guestfs.pod:159
msgid ""
"where C</dev/sda1> means literally the first partition (C<1>) of the first "
"disk image that we added (C</dev/sda>). If the disk contains Linux LVM2 "
@@ -40505,7 +40743,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:159
+#: ../src/guestfs.pod:165
msgid ""
"If you are given a disk image and you don't know what it contains then you "
"have to find out. Libguestfs can do that too: use "
@@ -40516,7 +40754,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:167
+#: ../src/guestfs.pod:173
msgid ""
"Libguestfs also has a set of APIs for inspection of unknown disk images (see "
"L</INSPECTION> below). But you might find it easier to look at higher level "
@@ -40524,19 +40762,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:172
+#: ../src/guestfs.pod:178
msgid ""
"To mount a filesystem read-only, use L</guestfs_mount_ro>. There are "
"several other variations of the C<guestfs_mount_*> call."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:175
+#: ../src/guestfs.pod:181
msgid "FILESYSTEM ACCESS AND MODIFICATION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:177
+#: ../src/guestfs.pod:183
msgid ""
"The majority of the libguestfs API consists of fairly low-level calls for "
"accessing and modifying the files, directories, symlinks etc on mounted "
@@ -40546,21 +40784,21 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:183
+#: ../src/guestfs.pod:189
msgid ""
"Specify filenames as full paths, starting with C<\"/\"> and including the "
"mount point."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:186
+#: ../src/guestfs.pod:192
msgid ""
"For example, if you mounted a filesystem at C<\"/\"> and you want to read "
"the file called C<\"etc/passwd\"> then you could do:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:189
+#: ../src/guestfs.pod:195
#, no-wrap
msgid ""
" char *data = guestfs_cat (g, \"/etc/passwd\");\n"
@@ -40568,7 +40806,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:191
+#: ../src/guestfs.pod:197
msgid ""
"This would return C<data> as a newly allocated buffer containing the full "
"content of that file (with some conditions: see also L</DOWNLOADING> below), "
@@ -40576,14 +40814,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:195
+#: ../src/guestfs.pod:201
msgid ""
"As another example, to create a top-level directory on that filesystem "
"called C<\"var\"> you would do:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:198
+#: ../src/guestfs.pod:204
#, no-wrap
msgid ""
" guestfs_mkdir (g, \"/var\");\n"
@@ -40591,12 +40829,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:200
+#: ../src/guestfs.pod:206
msgid "To create a symlink you could do:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:202
+#: ../src/guestfs.pod:208
#, no-wrap
msgid ""
" guestfs_ln_s (g, \"/etc/init.d/portmap\",\n"
@@ -40605,14 +40843,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:205
+#: ../src/guestfs.pod:211
msgid ""
"Libguestfs will reject attempts to use relative paths and there is no "
"concept of a current working directory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:208
+#: ../src/guestfs.pod:214
msgid ""
"Libguestfs can return errors in many situations: for example if the "
"filesystem isn't writable, or if a file or directory that you requested "
@@ -40622,40 +40860,40 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:214
+#: ../src/guestfs.pod:220
msgid ""
"File writes are affected by the per-handle umask, set by calling "
"L</guestfs_umask> and defaulting to 022. See L</UMASK>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:217
+#: ../src/guestfs.pod:223
msgid ""
"Since libguestfs 1.18, it is possible to mount the libguestfs filesystem on "
"a local directory, subject to some restrictions. See L</MOUNT LOCAL> below."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:221
+#: ../src/guestfs.pod:227
msgid "PARTITIONING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:223
+#: ../src/guestfs.pod:229
msgid ""
"Libguestfs contains API calls to read, create and modify partition tables on "
"disk images."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:226
+#: ../src/guestfs.pod:232
msgid ""
"In the common case where you want to create a single partition covering the "
"whole disk, you should use the L</guestfs_part_disk> call:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:230
+#: ../src/guestfs.pod:236
#, no-wrap
msgid ""
" const char *parttype = \"mbr\";\n"
@@ -40666,19 +40904,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:235
+#: ../src/guestfs.pod:241
msgid ""
"Obviously this effectively wipes anything that was on that disk image "
"before."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:238
+#: ../src/guestfs.pod:244
msgid "LVM2"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:240
+#: ../src/guestfs.pod:246
msgid ""
"Libguestfs provides access to a large part of the LVM2 API, such as "
"L</guestfs_lvcreate> and L</guestfs_vgremove>. It won't make much sense "
@@ -40687,19 +40925,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:245
+#: ../src/guestfs.pod:251
msgid ""
"This author strongly recommends reading the LVM HOWTO, online at "
"L<http://tldp.org/HOWTO/LVM-HOWTO/>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:248
+#: ../src/guestfs.pod:254
msgid "DOWNLOADING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:250
+#: ../src/guestfs.pod:256
msgid ""
"Use L</guestfs_cat> to download small, text only files. This call is "
"limited to files which are less than 2 MB and which cannot contain any ASCII "
@@ -40707,7 +40945,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:254
+#: ../src/guestfs.pod:260
msgid ""
"L</guestfs_read_file> can be used to read files which contain arbitrary 8 "
"bit data, since it returns a (pointer, size) pair. However it is still "
@@ -40715,31 +40953,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:258
+#: ../src/guestfs.pod:264
msgid ""
"L</guestfs_download> can be used to download any file, with no limits on "
"content or size (even files larger than 4 GB)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:261
+#: ../src/guestfs.pod:267
msgid "To download multiple files, see L</guestfs_tar_out> and L</guestfs_tgz_out>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:264
+#: ../src/guestfs.pod:270
msgid "UPLOADING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:266
+#: ../src/guestfs.pod:272
msgid ""
"It's often the case that you want to write a file or files to the disk "
"image."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:269
+#: ../src/guestfs.pod:275
msgid ""
"To write a small file with fixed content, use L</guestfs_write>. To create "
"a file of all zeroes, use L</guestfs_truncate_size> (sparse) or "
@@ -40749,19 +40987,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:275
+#: ../src/guestfs.pod:281
msgid ""
"To upload a single file, use L</guestfs_upload>. This call has no limits on "
"file content or size (even files larger than 4 GB)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:278
+#: ../src/guestfs.pod:284
msgid "To upload multiple files, see L</guestfs_tar_in> and L</guestfs_tgz_in>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:280
+#: ../src/guestfs.pod:286
msgid ""
"However the fastest way to upload I<large numbers of arbitrary files> is to "
"turn them into a squashfs or CD ISO (see L<mksquashfs(8)> and "
@@ -40775,12 +41013,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:291
+#: ../src/guestfs.pod:297
msgid "COPYING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:293
+#: ../src/guestfs.pod:299
msgid ""
"There are various different commands for copying between files and devices "
"and in and out of the guest filesystem. These are summarised in the table "
@@ -40788,51 +41026,51 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:299
+#: ../src/guestfs.pod:305
msgid "B<file> to B<file>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:301
+#: ../src/guestfs.pod:307
msgid ""
"Use L</guestfs_cp> to copy a single file, or L</guestfs_cp_a> to copy "
"directories recursively."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:304
+#: ../src/guestfs.pod:310
msgid "To copy part of a file (offset and size) use L</guestfs_copy_file_to_file>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:307
+#: ../src/guestfs.pod:313
msgid "B<file> to B<device>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:309
+#: ../src/guestfs.pod:315
msgid "B<device> to B<file>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:311
+#: ../src/guestfs.pod:317
msgid "B<device> to B<device>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:313
+#: ../src/guestfs.pod:319
msgid ""
"Use L</guestfs_copy_file_to_device>, L</guestfs_copy_device_to_file>, or "
"L</guestfs_copy_device_to_device>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:316
+#: ../src/guestfs.pod:322
msgid "Example: duplicate the contents of an LV:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:318
+#: ../src/guestfs.pod:324
#, no-wrap
msgid ""
" guestfs_copy_device_to_device (g,\n"
@@ -40843,7 +41081,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:323
+#: ../src/guestfs.pod:329
msgid ""
"The destination (C</dev/VG/Copy>) must be at least as large as the source "
"(C</dev/VG/Original>). To copy less than the whole source device, use the "
@@ -40851,7 +41089,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:327
+#: ../src/guestfs.pod:333
#, no-wrap
msgid ""
" guestfs_copy_device_to_device (g,\n"
@@ -40862,32 +41100,32 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:332
+#: ../src/guestfs.pod:338
msgid "B<file on the host> to B<file or device>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:334
+#: ../src/guestfs.pod:340
msgid "Use L</guestfs_upload>. See L</UPLOADING> above."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:336
+#: ../src/guestfs.pod:342
msgid "B<file or device> to B<file on the host>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:338
+#: ../src/guestfs.pod:344
msgid "Use L</guestfs_download>. See L</DOWNLOADING> above."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:342
+#: ../src/guestfs.pod:348
msgid "UPLOADING AND DOWNLOADING TO PIPES AND FILE DESCRIPTORS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:344
+#: ../src/guestfs.pod:350
msgid ""
"Calls like L</guestfs_upload>, L</guestfs_download>, L</guestfs_tar_in>, "
"L</guestfs_tar_out> etc appear to only take filenames as arguments, so it "
@@ -40898,12 +41136,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:352
+#: ../src/guestfs.pod:358
msgid "For example, L<virt-cat(1)> writes its output to stdout by doing:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:355
+#: ../src/guestfs.pod:361
#, no-wrap
msgid ""
" guestfs_download (g, filename, \"/dev/stdout\");\n"
@@ -40911,12 +41149,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:357
+#: ../src/guestfs.pod:363
msgid "and you can write tar output to a file descriptor C<fd> by doing:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:359
+#: ../src/guestfs.pod:365
#, no-wrap
msgid ""
" char devfd[64];\n"
@@ -40926,26 +41164,26 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:363
+#: ../src/guestfs.pod:369
msgid "LISTING FILES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:365
+#: ../src/guestfs.pod:371
msgid ""
"L</guestfs_ll> is just designed for humans to read (mainly when using the "
"L<guestfish(1)>-equivalent command C<ll>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:368
+#: ../src/guestfs.pod:374
msgid ""
"L</guestfs_ls> is a quick way to get a list of files in a directory from "
"programs, as a flat list of strings."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:371
+#: ../src/guestfs.pod:377
msgid ""
"L</guestfs_readdir> is a programmatic way to get a list of files in a "
"directory, plus additional information about each one. It is more "
@@ -40953,19 +41191,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:375
+#: ../src/guestfs.pod:381
msgid ""
"L</guestfs_find> and L</guestfs_find0> can be used to recursively list "
"files."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:378
+#: ../src/guestfs.pod:384
msgid "RUNNING COMMANDS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:380
+#: ../src/guestfs.pod:386
msgid ""
"Although libguestfs is primarily an API for manipulating files inside guest "
"images, we also provide some limited facilities for running commands inside "
@@ -40973,55 +41211,55 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:384
+#: ../src/guestfs.pod:390
msgid "There are many limitations to this:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:390
+#: ../src/guestfs.pod:396
msgid ""
"The kernel version that the command runs under will be different from what "
"it expects."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:395
+#: ../src/guestfs.pod:401
msgid ""
"If the command needs to communicate with daemons, then most likely they "
"won't be running."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:400
+#: ../src/guestfs.pod:406
msgid "The command will be running in limited memory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:404
+#: ../src/guestfs.pod:410
msgid ""
"The network may not be available unless you enable it (see "
"L</guestfs_set_network>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:409
+#: ../src/guestfs.pod:415
msgid "Only supports Linux guests (not Windows, BSD, etc)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:413
+#: ../src/guestfs.pod:419
msgid "Architecture limitations (eg. won't work for a PPC guest on an X86 host)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:418
+#: ../src/guestfs.pod:424
msgid ""
"For SELinux guests, you may need to enable SELinux and load policy first. "
"See L</SELINUX> in this manpage."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:423
+#: ../src/guestfs.pod:429
msgid ""
"I<Security:> It is not safe to run commands from untrusted, possibly "
"malicious guests. These commands may attempt to exploit your program by "
@@ -41033,7 +41271,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:432
+#: ../src/guestfs.pod:438
msgid ""
"A secure alternative is to use libguestfs to install a \"firstboot\" script "
"(a script which runs when the guest next boots normally), and to have this "
@@ -41043,26 +41281,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:440
+#: ../src/guestfs.pod:446
msgid ""
"The two main API calls to run commands are L</guestfs_command> and "
"L</guestfs_sh> (there are also variations)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:443
+#: ../src/guestfs.pod:449
msgid ""
"The difference is that L</guestfs_sh> runs commands using the shell, so any "
"shell globs, redirections, etc will work."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:446
+#: ../src/guestfs.pod:452
msgid "CONFIGURATION FILES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:448
+#: ../src/guestfs.pod:454
msgid ""
"To read and write configuration files in Linux guest filesystems, we "
"strongly recommend using Augeas. For example, Augeas understands how to "
@@ -41071,7 +41309,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:453
+#: ../src/guestfs.pod:459
msgid ""
"The main Augeas calls are bound through the C<guestfs_aug_*> APIs. We don't "
"document Augeas itself here because there is excellent documentation on the "
@@ -41079,7 +41317,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:457
+#: ../src/guestfs.pod:463
msgid ""
"If you don't want to use Augeas (you fool!) then try calling "
"L</guestfs_read_lines> to get the file as a list of lines which you can "
@@ -41087,24 +41325,24 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:461
+#: ../src/guestfs.pod:467
msgid "SELINUX"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:463
+#: ../src/guestfs.pod:469
msgid ""
"We support SELinux guests. To ensure that labeling happens correctly in "
"SELinux guests, you need to enable SELinux and load the guest's policy:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:471
+#: ../src/guestfs.pod:477
msgid "Before launching, do:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:473
+#: ../src/guestfs.pod:479
#, no-wrap
msgid ""
" guestfs_set_selinux (g, 1);\n"
@@ -41112,14 +41350,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:477
+#: ../src/guestfs.pod:483
msgid ""
"After mounting the guest's filesystem(s), load the policy. This is best "
"done by running the L<load_policy(8)> command in the guest itself:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:481
+#: ../src/guestfs.pod:487
#, no-wrap
msgid ""
" guestfs_sh (g, \"/usr/sbin/load_policy\");\n"
@@ -41127,21 +41365,21 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:483
+#: ../src/guestfs.pod:489
msgid ""
"(Older versions of C<load_policy> require you to specify the name of the "
"policy file)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:488
+#: ../src/guestfs.pod:494
msgid ""
"Optionally, set the security context for the API. The correct security "
"context to use can only be known by inspecting the guest. As an example:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:492
+#: ../src/guestfs.pod:498
#, no-wrap
msgid ""
" guestfs_setcon (g, \"unconfined_u:unconfined_r:unconfined_t:s0\");\n"
@@ -41149,24 +41387,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:496
+#: ../src/guestfs.pod:502
msgid "This will work for running commands and editing existing files."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:498
+#: ../src/guestfs.pod:504
msgid ""
"When new files are created, you may need to label them explicitly, for "
"example by running the external command C<restorecon pathname>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:502
+#: ../src/guestfs.pod:508
msgid "UMASK"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:504
+#: ../src/guestfs.pod:510
msgid ""
"Certain calls are affected by the current file mode creation mask (the "
"\"umask\"). In particular ones which create files or directories, such as "
@@ -41176,14 +41414,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:510
+#: ../src/guestfs.pod:516
msgid ""
"The default umask is C<022>, so files are created with modes such as C<0644> "
"and directories with C<0755>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:513
+#: ../src/guestfs.pod:519
msgid ""
"There are two ways to avoid being affected by umask. Either set umask to 0 "
"(call C<guestfs_umask (g, 0)> early after launching). Or call "
@@ -41191,12 +41429,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:517
+#: ../src/guestfs.pod:523
msgid "For more information about umask, see L<umask(2)>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:521
+#: ../src/guestfs.pod:527
msgid ""
"Libguestfs allows you to access Linux guests which have been encrypted using "
"whole disk encryption that conforms to the Linux Unified Key Setup (LUKS) "
@@ -41205,21 +41443,21 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:527
+#: ../src/guestfs.pod:533
msgid ""
"Use L</guestfs_vfs_type> to identify LUKS-encrypted block devices (it "
"returns the string C<crypto_LUKS>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:530
+#: ../src/guestfs.pod:536
msgid ""
"Then open these devices by calling L</guestfs_luks_open>. Obviously you "
"will require the passphrase!"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:533
+#: ../src/guestfs.pod:539
msgid ""
"Opening a LUKS device creates a new device mapper device called "
"C</dev/mapper/mapname> (where C<mapname> is the string you supply to "
@@ -41228,7 +41466,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:539
+#: ../src/guestfs.pod:545
msgid ""
"LVM volume groups on the device can be made visible by calling "
"L</guestfs_vgscan> followed by L</guestfs_vg_activate_all>. The logical "
@@ -41236,7 +41474,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:543
+#: ../src/guestfs.pod:549
msgid ""
"Use the reverse process to close a LUKS device. Unmount any logical volumes "
"on it, deactivate the volume groups by caling C<guestfs_vg_activate (g, 0, "
@@ -41246,19 +41484,19 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:550
+#: ../src/guestfs.pod:556
msgid "MOUNT LOCAL"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:552
+#: ../src/guestfs.pod:558
msgid ""
"In libguestfs E<ge> 1.18, it is possible to mount the libguestfs filesystem "
"on a local directory and access it using ordinary POSIX calls and programs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:556
+#: ../src/guestfs.pod:562
msgid ""
"Availability of this is subject to a number of restrictions: it requires "
"FUSE (the Filesystem in USErspace), and libfuse must also have been "
@@ -41269,7 +41507,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:563
+#: ../src/guestfs.pod:569
msgid ""
"The call to mount the libguestfs filesystem on a local directory is "
"L</guestfs_mount_local> (q.v.) followed by L</guestfs_mount_local_run>. The "
@@ -41282,7 +41520,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:573
+#: ../src/guestfs.pod:579
msgid ""
"L</guestfs_mount_local> needs a certain amount of time to set up the "
"mountpoint. The mountpoint is not ready to use until the call returns. At "
@@ -41293,12 +41531,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:581
+#: ../src/guestfs.pod:587
msgid "MOUNT LOCAL COMPATIBILITY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:583
+#: ../src/guestfs.pod:589
msgid ""
"Since local mounting was only added in libguestfs 1.18, and may not be "
"available even in these builds, you should consider writing code so that it "
@@ -41307,7 +41545,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:588
+#: ../src/guestfs.pod:594
msgid ""
"If libguestfs was compiled without support for L</guestfs_mount_local> then "
"calling it will return an error with errno set to C<ENOTSUP> (see "
@@ -41315,12 +41553,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:592
+#: ../src/guestfs.pod:598
msgid "MOUNT LOCAL PERFORMANCE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:594
+#: ../src/guestfs.pod:600
msgid ""
"Libguestfs on top of FUSE performs quite poorly. For best performance do "
"not use it. Use ordinary libguestfs filesystem calls, upload, download "
@@ -41328,12 +41566,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:598
+#: ../src/guestfs.pod:604
msgid "INSPECTION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:600
+#: ../src/guestfs.pod:606
msgid ""
"Libguestfs has APIs for inspecting an unknown disk image to find out if it "
"contains operating systems, an install CD or a live CD. (These APIs used to "
@@ -41343,14 +41581,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:607
+#: ../src/guestfs.pod:613
msgid ""
"Add all disks belonging to the unknown virtual machine and call "
"L</guestfs_launch> in the usual way."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:610
+#: ../src/guestfs.pod:616
msgid ""
"Then call L</guestfs_inspect_os>. This function uses other libguestfs calls "
"and certain heuristics, and returns a list of operating systems that were "
@@ -41363,7 +41601,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:619
+#: ../src/guestfs.pod:625
msgid ""
"For each root, you can then call various C<guestfs_inspect_get_*> functions "
"to get additional details about that operating system. For example, call "
@@ -41372,7 +41610,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:625
+#: ../src/guestfs.pod:631
msgid ""
"Un*x-like and Linux-based operating systems usually consist of several "
"filesystems which are mounted at boot time (for example, a separate boot "
@@ -41383,7 +41621,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:632
+#: ../src/guestfs.pod:638
#, no-wrap
msgid ""
" /boot => /dev/sda1\n"
@@ -41393,14 +41631,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:636
+#: ../src/guestfs.pod:642
msgid ""
"The caller can then make calls to L</guestfs_mount_options> to mount the "
"filesystems as suggested."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:639
+#: ../src/guestfs.pod:645
msgid ""
"Be careful to mount filesystems in the right order (eg. C</> before "
"C</usr>). Sorting the keys of the hash by length, shortest first, should "
@@ -41408,7 +41646,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:643
+#: ../src/guestfs.pod:649
msgid ""
"Inspection currently only works for some common operating systems. "
"Contributors are welcome to send patches for other operating systems that we "
@@ -41416,7 +41654,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:647
+#: ../src/guestfs.pod:653
msgid ""
"Encrypted disks must be opened before inspection. See L</ENCRYPTED DISKS> "
"for more details. The L</guestfs_inspect_os> function just ignores any "
@@ -41424,7 +41662,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:651
+#: ../src/guestfs.pod:657
msgid ""
"A note on the implementation: The call L</guestfs_inspect_os> performs "
"inspection and caches the results in the guest handle. Subsequent calls to "
@@ -41437,19 +41675,19 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:660
+#: ../src/guestfs.pod:666
msgid "INSPECTING INSTALL DISKS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:662
+#: ../src/guestfs.pod:668
msgid ""
"Libguestfs (since 1.9.4) can detect some install disks, install CDs, live "
"CDs and more."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:665
+#: ../src/guestfs.pod:671
msgid ""
"Call L</guestfs_inspect_get_format> to return the format of the operating "
"system, which currently can be C<installed> (a regular operating system) or "
@@ -41457,7 +41695,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:669
+#: ../src/guestfs.pod:675
msgid ""
"Further information is available about the operating system that can be "
"installed using the regular inspection APIs like "
@@ -41466,7 +41704,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:674
+#: ../src/guestfs.pod:680
msgid ""
"Some additional information specific to installer disks is also available "
"from the L</guestfs_inspect_is_live>, L</guestfs_inspect_is_netinst> and "
@@ -41474,24 +41712,24 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:679
+#: ../src/guestfs.pod:685
msgid "SPECIAL CONSIDERATIONS FOR WINDOWS GUESTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:681
+#: ../src/guestfs.pod:687
msgid ""
"Libguestfs can mount NTFS partitions. It does this using the "
"L<http://www.ntfs-3g.org/> driver."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:684
+#: ../src/guestfs.pod:690
msgid "DRIVE LETTERS AND PATHS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:686
+#: ../src/guestfs.pod:692
msgid ""
"DOS and Windows still use drive letters, and the filesystems are always "
"treated as case insensitive by Windows itself, and therefore you might find "
@@ -41501,14 +41739,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:692
+#: ../src/guestfs.pod:698
msgid ""
"Drive letter mappings can be found using inspection (see L</INSPECTION> and "
"L</guestfs_inspect_get_drive_mappings>)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:695
+#: ../src/guestfs.pod:701
msgid ""
"Dealing with separator characters (backslash vs forward slash) is outside "
"the scope of libguestfs, but usually a simple character replacement will "
@@ -41516,33 +41754,33 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:699
+#: ../src/guestfs.pod:705
msgid ""
"To resolve the case insensitivity of paths, call "
"L</guestfs_case_sensitive_path>."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:702
+#: ../src/guestfs.pod:708
msgid "LONG FILENAMES ON NTFS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:704
+#: ../src/guestfs.pod:710
msgid ""
"NTFS supports filenames up to 255 characters long. \"Character\" means a 2 "
"byte UTF-16 codepoint which can encode the most common Unicode codepoints."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:708
+#: ../src/guestfs.pod:714
msgid ""
"Most Linux filesystems support filenames up to 255 I<bytes>. This means you "
"may get an error:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:711
+#: ../src/guestfs.pod:717
#, no-wrap
msgid ""
" File name too long\n"
@@ -41550,14 +41788,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:713
+#: ../src/guestfs.pod:719
msgid ""
"when you copy a file from NTFS to a Linux filesystem if the name, when "
"reencoded as UTF-8, would exceed 255 bytes in length."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:716
+#: ../src/guestfs.pod:722
msgid ""
"This will most often happen when using non-ASCII names that are longer than "
"~127 characters (eg. Greek, Cyrillic) or longer than ~85 characters (Asian "
@@ -41565,7 +41803,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:720
+#: ../src/guestfs.pod:726
msgid ""
"A workaround is not to try to store such long filenames on Linux native "
"filesystems. Since the L<tar(1)> format can store unlimited length "
@@ -41573,12 +41811,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:724
+#: ../src/guestfs.pod:730
msgid "ACCESSING THE WINDOWS REGISTRY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:726
+#: ../src/guestfs.pod:732
msgid ""
"Libguestfs also provides some help for decoding Windows Registry \"hive\" "
"files, through the library C<hivex> which is part of the libguestfs project "
@@ -41589,12 +41827,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:734
+#: ../src/guestfs.pod:740
msgid "SYMLINKS ON NTFS-3G FILESYSTEMS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:736
+#: ../src/guestfs.pod:742
msgid ""
"Ntfs-3g tries to rewrite \"Junction Points\" and NTFS \"symbolic links\" to "
"provide something which looks like a Linux symlink. The way it tries to do "
@@ -41602,12 +41840,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:740
+#: ../src/guestfs.pod:746
msgid "L<http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:742
+#: ../src/guestfs.pod:748
msgid ""
"The essential problem is that ntfs-3g simply does not have enough "
"information to do a correct job. NTFS links can contain drive letters and "
@@ -41617,7 +41855,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:749
+#: ../src/guestfs.pod:755
msgid ""
"Instead if you encounter a symbolic link on an ntfs-3g filesystem, use "
"L</guestfs_lgetxattr> to read the C<system.ntfs_reparse_data> extended "
@@ -41626,36 +41864,36 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:754
+#: ../src/guestfs.pod:760
msgid "EXTENDED ATTRIBUTES ON NTFS-3G FILESYSTEMS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:756
+#: ../src/guestfs.pod:762
msgid ""
"There are other useful extended attributes that can be read from ntfs-3g "
"filesystems (using L</guestfs_getxattr>). See:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:759
+#: ../src/guestfs.pod:765
msgid "L<http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/>"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:761
+#: ../src/guestfs.pod:767
msgid "RESIZE2FS ERRORS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:763
+#: ../src/guestfs.pod:769
msgid ""
"The L</guestfs_resize2fs>, L</guestfs_resize2fs_size> and "
"L</guestfs_resize2fs_M> calls are used to resize ext2/3/4 filesystems."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:766
+#: ../src/guestfs.pod:772
msgid ""
"The underlying program (L<resize2fs(8)>) requires that the filesystem is "
"clean and recently fsck'd before you can resize it. Also, if the resize "
@@ -41664,7 +41902,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:771
+#: ../src/guestfs.pod:777
msgid ""
"In libguestfs C<lt> 1.17.14, you usually had to call L</guestfs_e2fsck_f> "
"before the resize. However, in C<ge> 1.17.14, L<e2fsck(8)> is called "
@@ -41672,14 +41910,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:776
+#: ../src/guestfs.pod:782
msgid ""
"The L<resize2fs(8)> program can still fail, in which case it prints an error "
"message similar to:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:779
+#: ../src/guestfs.pod:785
#, no-wrap
msgid ""
" Please run 'e2fsck -fy <device>' to fix the filesystem\n"
@@ -41688,7 +41926,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:782
+#: ../src/guestfs.pod:788
msgid ""
"You can do this by calling L</guestfs_e2fsck> with the C<forceall> option. "
"However in the context of disk images, it is usually better to avoid this "
@@ -41697,19 +41935,19 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:787
+#: ../src/guestfs.pod:793
msgid "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:789
+#: ../src/guestfs.pod:795
msgid ""
"Although we don't want to discourage you from using the C API, we will "
"mention here that the same API is also available in other languages."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:792
+#: ../src/guestfs.pod:798
msgid ""
"The API is broadly identical in all supported languages. This means that "
"the C call C<guestfs_add_drive_ro(g,file)> is C<$g-E<gt>add_drive_ro($file)> "
@@ -41719,14 +41957,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:798
+#: ../src/guestfs.pod:804
msgid ""
"Error messages are automatically transformed into exceptions if the language "
"supports it."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:801
+#: ../src/guestfs.pod:807
msgid ""
"We don't try to \"object orientify\" parts of the API in OO languages, "
"although contributors are welcome to write higher level APIs above what we "
@@ -41734,58 +41972,58 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:807
+#: ../src/guestfs.pod:813
msgid "B<C++>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:809
+#: ../src/guestfs.pod:815
msgid ""
"You can use the I<guestfs.h> header file from C++ programs. The C++ API is "
"identical to the C API. C++ classes and exceptions are not used."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:813
+#: ../src/guestfs.pod:819
msgid "B<C#>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:815
+#: ../src/guestfs.pod:821
msgid ""
"The C# bindings are highly experimental. Please read the warnings at the "
"top of C<csharp/Libguestfs.cs>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:818
+#: ../src/guestfs.pod:824
msgid "B<Erlang>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:820
+#: ../src/guestfs.pod:826
msgid "See L<guestfs-erlang(3)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:822
+#: ../src/guestfs.pod:828
msgid "B<GObject>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:824
+#: ../src/guestfs.pod:830
msgid ""
"Experimental GObject bindings (with GObject Introspection support) are "
"available. See the C<gobject> directory in the source."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:827
+#: ../src/guestfs.pod:833
msgid "B<Haskell>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:829
+#: ../src/guestfs.pod:835
msgid ""
"This is the only language binding that is working but incomplete. Only "
"calls which return simple integers have been bound in Haskell, and we are "
@@ -41793,96 +42031,96 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:833
+#: ../src/guestfs.pod:839
msgid "B<Java>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:835
+#: ../src/guestfs.pod:841
msgid ""
"Full documentation is contained in the Javadoc which is distributed with "
"libguestfs. For examples, see L<guestfs-java(3)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:838
+#: ../src/guestfs.pod:844
msgid "B<OCaml>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:840
+#: ../src/guestfs.pod:846
msgid "See L<guestfs-ocaml(3)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:842
+#: ../src/guestfs.pod:848
msgid "B<Perl>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:844
+#: ../src/guestfs.pod:850
msgid "See L<guestfs-perl(3)> and L<Sys::Guestfs(3)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:846
+#: ../src/guestfs.pod:852
msgid "B<PHP>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:848
+#: ../src/guestfs.pod:854
msgid ""
"For documentation see C<README-PHP> supplied with libguestfs sources or in "
"the php-libguestfs package for your distribution."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:851
+#: ../src/guestfs.pod:857
msgid "The PHP binding only works correctly on 64 bit machines."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:853
+#: ../src/guestfs.pod:859
msgid "B<Python>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:855
+#: ../src/guestfs.pod:861
msgid "See L<guestfs-python(3)>."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:857
+#: ../src/guestfs.pod:863
msgid "B<Ruby>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:859
+#: ../src/guestfs.pod:865
msgid "See L<guestfs-ruby(3)>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:861
+#: ../src/guestfs.pod:867
msgid "For JRuby, use the Java bindings."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:863
+#: ../src/guestfs.pod:869
msgid "B<shell scripts>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:865
+#: ../src/guestfs.pod:871
msgid "See L<guestfish(1)>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:869
+#: ../src/guestfs.pod:875
msgid "LIBGUESTFS GOTCHAS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:871
+#: ../src/guestfs.pod:877
msgid ""
"L<http://en.wikipedia.org/wiki/Gotcha_(programming)>: \"A feature of a "
"system [...] that works in the way it is documented but is counterintuitive "
@@ -41890,7 +42128,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:875
+#: ../src/guestfs.pod:881
msgid ""
"Since we developed libguestfs and the associated tools, there are several "
"things we would have designed differently, but are now stuck with for "
@@ -41899,19 +42137,19 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:883
+#: ../src/guestfs.pod:889
msgid "Autosync / forgetting to sync."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:885
+#: ../src/guestfs.pod:891
msgid ""
"I<Update:> Autosync is enabled by default for all API users starting from "
"libguestfs 1.5.24. This section only applies to older versions."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:888
+#: ../src/guestfs.pod:894
msgid ""
"When modifying a filesystem from C or another language, you B<must> unmount "
"all filesystems and call L</guestfs_sync> explicitly before you close the "
@@ -41919,7 +42157,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:892
+#: ../src/guestfs.pod:898
#, no-wrap
msgid ""
" guestfs_set_autosync (g, 1);\n"
@@ -41927,7 +42165,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:894
+#: ../src/guestfs.pod:900
msgid ""
"to have the unmount/sync done automatically for you when the handle 'g' is "
"closed. (This feature is called \"autosync\", L</guestfs_set_autosync> "
@@ -41935,7 +42173,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:898
+#: ../src/guestfs.pod:904
msgid ""
"If you forget to do this, then it is entirely possible that your changes "
"won't be written out, or will be partially written, or (very rarely) that "
@@ -41943,7 +42181,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:902
+#: ../src/guestfs.pod:908
msgid ""
"Note that in L<guestfish(3)> autosync is the default. So quick and dirty "
"guestfish scripts that forget to sync will work just fine, which can make "
@@ -41951,19 +42189,19 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:906
+#: ../src/guestfs.pod:912
msgid "Mount option C<-o sync> should not be the default."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:908
+#: ../src/guestfs.pod:914
msgid ""
"I<Update:> L</guestfs_mount> no longer adds any options starting from "
"libguestfs 1.13.16. This section only applies to older versions."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:911
+#: ../src/guestfs.pod:917
msgid ""
"If you use L</guestfs_mount>, then C<-o sync,noatime> are added implicitly. "
"However C<-o sync> does not add any reliability benefit, but does have a "
@@ -41971,31 +42209,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:915
+#: ../src/guestfs.pod:921
msgid ""
"The work around is to use L</guestfs_mount_options> and set the mount "
"options that you actually want to use."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:918
+#: ../src/guestfs.pod:924
msgid "Read-only should be the default."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:920
+#: ../src/guestfs.pod:926
msgid ""
"In L<guestfish(3)>, I<--ro> should be the default, and you should have to "
"specify I<--rw> if you want to make changes to the image."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:923
+#: ../src/guestfs.pod:929
msgid "This would reduce the potential to corrupt live VM images."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:925
+#: ../src/guestfs.pod:931
msgid ""
"Note that many filesystems change the disk when you just mount and unmount, "
"even if you didn't perform any writes. You need to use "
@@ -42003,12 +42241,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:929
+#: ../src/guestfs.pod:935
msgid "guestfish command line is hard to use."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:931
+#: ../src/guestfs.pod:937
msgid ""
"C<guestfish disk.img> doesn't do what people expect (open C<disk.img> for "
"examination). It tries to run a guestfish command C<disk.img> which doesn't "
@@ -42018,12 +42256,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:938
+#: ../src/guestfs.pod:944
msgid "guestfish megabyte modifiers don't work right on all commands"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:940
+#: ../src/guestfs.pod:946
msgid ""
"In recent guestfish you can use C<1M> to mean 1 megabyte (and similarly for "
"other modifiers). What guestfish actually does is to multiply the number "
@@ -42033,12 +42271,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:947
+#: ../src/guestfs.pod:953
msgid "The most common is L</guestfs_lvcreate>. The guestfish command:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:949
+#: ../src/guestfs.pod:955
#, no-wrap
msgid ""
" lvcreate LV VG 100M\n"
@@ -42046,7 +42284,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:951
+#: ../src/guestfs.pod:957
msgid ""
"does not do what you might expect. Instead because L</guestfs_lvcreate> is "
"already expecting megabytes, this tries to create a 100 I<terabyte> (100 "
@@ -42055,19 +42293,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:956
+#: ../src/guestfs.pod:962
msgid ""
"This could be fixed in the generator by specially marking parameters and "
"return values which take bytes or other units."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:959
+#: ../src/guestfs.pod:965
msgid "Ambiguity between devices and paths"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:961
+#: ../src/guestfs.pod:967
msgid ""
"There is a subtle ambiguity in the API between a device name "
"(eg. C</dev/sdb2>) and a similar pathname. A file might just happen to be "
@@ -42075,7 +42313,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:966
+#: ../src/guestfs.pod:972
msgid ""
"In the current API we usually resolve this ambiguity by having two separate "
"calls, for example L</guestfs_checksum> and L</guestfs_checksum_device>. "
@@ -42084,7 +42322,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:972
+#: ../src/guestfs.pod:978
msgid ""
"To avoid both the ambiguity and the need to duplicate some calls, we could "
"make paths/devices into structured names. One way to do this would be to "
@@ -42094,7 +42332,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:978
+#: ../src/guestfs.pod:984
#, no-wrap
msgid ""
" type path = Path of string | Device of int | Partition of int * int\n"
@@ -42102,12 +42340,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:980
+#: ../src/guestfs.pod:986
msgid "which would allow you to pass arguments like:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:982
+#: ../src/guestfs.pod:988
#, no-wrap
msgid ""
" Path \"/foo/bar\"\n"
@@ -42118,26 +42356,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:987
+#: ../src/guestfs.pod:993
msgid ""
"As you can see there are still problems to resolve even with this "
"representation. Also consider how it might work in guestfish."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:992
+#: ../src/guestfs.pod:998
msgid "KEYS AND PASSPHRASES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:994
+#: ../src/guestfs.pod:1000
msgid ""
"Certain libguestfs calls take a parameter that contains sensitive key "
"material, passed in as a C string."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:997
+#: ../src/guestfs.pod:1003
msgid ""
"In the future we would hope to change the libguestfs implementation so that "
"keys are L<mlock(2)>-ed into physical RAM, and thus can never end up in "
@@ -42146,7 +42384,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1002
+#: ../src/guestfs.pod:1008
msgid ""
"Therefore you should be aware that any key parameter you pass to libguestfs "
"might end up being written out to the swap partition. If this is a concern, "
@@ -42154,19 +42392,19 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1007
+#: ../src/guestfs.pod:1013
msgid "MULTIPLE HANDLES AND MULTIPLE THREADS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1009
+#: ../src/guestfs.pod:1015
msgid ""
"All high-level libguestfs actions are synchronous. If you want to use "
"libguestfs asynchronously then you must create a thread."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1012
+#: ../src/guestfs.pod:1018
msgid ""
"Only use the handle from a single thread. Either use the handle exclusively "
"from one thread, or provide your own mutex so that two threads cannot issue "
@@ -42174,33 +42412,33 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1016
+#: ../src/guestfs.pod:1022
msgid ""
"See the graphical program guestfs-browser for one possible architecture for "
"multithreaded programs using libvirt and libguestfs."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1019
+#: ../src/guestfs.pod:1025
msgid "PATH"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1021
+#: ../src/guestfs.pod:1027
msgid ""
"Libguestfs needs a supermin appliance, which it finds by looking along an "
"internal path."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1024
+#: ../src/guestfs.pod:1030
msgid ""
"By default it looks for these in the directory C<$libdir/guestfs> "
"(eg. C</usr/local/lib/guestfs> or C</usr/lib64/guestfs>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1027
+#: ../src/guestfs.pod:1033
msgid ""
"Use L</guestfs_set_path> or set the environment variable L</LIBGUESTFS_PATH> "
"to change the directories that libguestfs will search in. The value is a "
@@ -42211,12 +42449,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1034
+#: ../src/guestfs.pod:1040
msgid "QEMU WRAPPERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1036
+#: ../src/guestfs.pod:1042
msgid ""
"If you want to compile your own qemu, run qemu from a non-standard location, "
"or pass extra arguments to qemu, then you can write a shell-script wrapper "
@@ -42224,7 +42462,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1040
+#: ../src/guestfs.pod:1046
msgid ""
"There is one important rule to remember: you I<must C<exec qemu>> as the "
"last command in the shell script (so that qemu replaces the shell and "
@@ -42233,14 +42471,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1045
+#: ../src/guestfs.pod:1051
msgid ""
"Here is an example of a wrapper, where I have built my own copy of qemu from "
"source:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1048
+#: ../src/guestfs.pod:1054
#, no-wrap
msgid ""
" #!/bin/sh -\n"
@@ -42251,7 +42489,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1052
+#: ../src/guestfs.pod:1058
msgid ""
"Save this script as C</tmp/qemu.wrapper> (or wherever), C<chmod +x>, and "
"then use it by setting the LIBGUESTFS_QEMU environment variable. For "
@@ -42259,7 +42497,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1056
+#: ../src/guestfs.pod:1062
#, no-wrap
msgid ""
" LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n"
@@ -42267,14 +42505,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1058
+#: ../src/guestfs.pod:1064
msgid ""
"Note that libguestfs also calls qemu with the -help and -version options in "
"order to determine features."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1061
+#: ../src/guestfs.pod:1067
msgid ""
"Wrappers can also be used to edit the options passed to qemu. In the "
"following example, the C<-machine ...> option (C<-machine> and the following "
@@ -42284,7 +42522,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1070
+#: ../src/guestfs.pod:1076
#, no-wrap
msgid ""
" i=0\n"
@@ -42302,7 +42540,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1082
+#: ../src/guestfs.pod:1088
#, no-wrap
msgid ""
" exec qemu-kvm -machine pc,accel=tcg \"${args[@]}\"\n"
@@ -42310,19 +42548,19 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1084
+#: ../src/guestfs.pod:1090
msgid "ATTACHING TO RUNNING DAEMONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1086
+#: ../src/guestfs.pod:1092
msgid ""
"I<Note (1):> This is B<highly experimental> and has a tendency to eat "
"babies. Use with caution."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1089
+#: ../src/guestfs.pod:1095
msgid ""
"I<Note (2):> This section explains how to attach to a running daemon from a "
"low level perspective. For most users, simply using virt tools such as "
@@ -42330,12 +42568,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1093
+#: ../src/guestfs.pod:1099
msgid "Using guestfs_set_attach_method"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1095
+#: ../src/guestfs.pod:1101
msgid ""
"By calling L</guestfs_set_attach_method> you can change how the library "
"connects to the C<guestfsd> daemon in L</guestfs_launch> (read "
@@ -42343,14 +42581,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1099
+#: ../src/guestfs.pod:1105
msgid ""
"The normal attach method is C<appliance>, where a small appliance is created "
"containing the daemon, and then the library connects to this."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1102
+#: ../src/guestfs.pod:1108
msgid ""
"Setting attach method to C<unix:I<path>> (where I<path> is the path of a "
"Unix domain socket) causes L</guestfs_launch> to connect to an existing "
@@ -42358,7 +42596,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1106
+#: ../src/guestfs.pod:1112
msgid ""
"The normal use for this is to connect to a running virtual machine that "
"contains a C<guestfsd> daemon, and send commands so you can read and write "
@@ -42366,12 +42604,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1110
+#: ../src/guestfs.pod:1116
msgid "Using guestfs_add_domain with live flag"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1112
+#: ../src/guestfs.pod:1118
msgid ""
"L</guestfs_add_domain> provides some help for getting the correct attach "
"method. If you pass the C<live> option to this function, then (if the "
@@ -42380,7 +42618,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1118
+#: ../src/guestfs.pod:1124
#, no-wrap
msgid ""
" <domain>\n"
@@ -42398,14 +42636,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1130
+#: ../src/guestfs.pod:1136
msgid ""
"L</guestfs_add_domain> extracts C</path/to/socket> and sets the attach "
"method to C<unix:/path/to/socket>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1133
+#: ../src/guestfs.pod:1139
msgid ""
"Some of the libguestfs tools (including guestfish) support a I<--live> "
"option which is passed through to L</guestfs_add_domain> thus allowing you "
@@ -42413,19 +42651,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1137
+#: ../src/guestfs.pod:1143
msgid ""
"The virtual machine needs to have been set up beforehand so that it has the "
"virtio-serial channel and so that guestfsd is running inside it."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1141
+#: ../src/guestfs.pod:1147
msgid "ABI GUARANTEE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1143
+#: ../src/guestfs.pod:1149
msgid ""
"We guarantee the libguestfs ABI (binary interface), for public, high-level "
"actions as outlined in this section. Although we will deprecate some "
@@ -42435,12 +42673,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1149
+#: ../src/guestfs.pod:1155
msgid "BLOCK DEVICE NAMING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1151
+#: ../src/guestfs.pod:1157
msgid ""
"In the kernel there is now quite a profusion of schemata for naming block "
"devices (in this context, by I<block device> I mean a physical or virtual "
@@ -42455,7 +42693,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1163
+#: ../src/guestfs.pod:1169
msgid ""
"As discussed above, libguestfs uses a qemu appliance running an embedded "
"Linux kernel to access block devices. We can run a variety of appliances "
@@ -42463,7 +42701,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1167
+#: ../src/guestfs.pod:1173
msgid ""
"This causes a problem for libguestfs because many API calls use device or "
"partition names. Working scripts and the recipe (example) scripts that we "
@@ -42471,7 +42709,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1172
+#: ../src/guestfs.pod:1178
msgid ""
"Therefore libguestfs defines C</dev/sd*> as the I<standard naming scheme>. "
"Internally C</dev/sd*> names are translated, if necessary, to other names as "
@@ -42480,7 +42718,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1178
+#: ../src/guestfs.pod:1184
msgid ""
"Note that this I<only> applies to parameters. The L</guestfs_list_devices>, "
"L</guestfs_list_partitions> and similar calls return the true names of the "
@@ -42488,12 +42726,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1183
+#: ../src/guestfs.pod:1189
msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1185
+#: ../src/guestfs.pod:1191
msgid ""
"Usually this translation is transparent. However in some (very rare) cases "
"you may need to know the exact algorithm. Such cases include where you use "
@@ -42503,7 +42741,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1191
+#: ../src/guestfs.pod:1197
msgid ""
"The algorithm is applied only to I<parameters> which are known to be either "
"device or partition names. Return values from functions such as "
@@ -42511,54 +42749,54 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1199
+#: ../src/guestfs.pod:1205
msgid "Is the string a parameter which is a device or partition name?"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1203
+#: ../src/guestfs.pod:1209
msgid "Does the string begin with C</dev/sd>?"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1207
+#: ../src/guestfs.pod:1213
msgid ""
"Does the named device exist? If so, we use that device. However if I<not> "
"then we continue with this algorithm."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1212
+#: ../src/guestfs.pod:1218
msgid "Replace initial C</dev/sd> string with C</dev/hd>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1214
+#: ../src/guestfs.pod:1220
msgid "For example, change C</dev/sda2> to C</dev/hda2>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1216
+#: ../src/guestfs.pod:1222
msgid "If that named device exists, use it. If not, continue."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1220
+#: ../src/guestfs.pod:1226
msgid "Replace initial C</dev/sd> string with C</dev/vd>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1222
+#: ../src/guestfs.pod:1228
msgid "If that named device exists, use it. If not, return an error."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1226
+#: ../src/guestfs.pod:1232
msgid "PORTABILITY CONCERNS WITH BLOCK DEVICE NAMING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1228
+#: ../src/guestfs.pod:1234
msgid ""
"Although the standard naming scheme and automatic translation is useful for "
"simple programs and guestfish scripts, for larger programs it is best not to "
@@ -42566,38 +42804,38 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1232
+#: ../src/guestfs.pod:1238
msgid ""
"Where possible for maximum future portability programs using libguestfs "
"should use these future-proof techniques:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1239
+#: ../src/guestfs.pod:1245
msgid ""
"Use L</guestfs_list_devices> or L</guestfs_list_partitions> to list actual "
"device names, and then use those names directly."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1242
+#: ../src/guestfs.pod:1248
msgid "Since those device names exist by definition, they will never be translated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1247
+#: ../src/guestfs.pod:1253
msgid ""
"Use higher level ways to identify filesystems, such as LVM names, UUIDs and "
"filesystem labels."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1252
+#: ../src/guestfs.pod:1258
msgid "NULL DISKS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1254
+#: ../src/guestfs.pod:1260
msgid ""
"When adding a disk using, eg., L</guestfs_add_drive>, you can set the "
"filename to C<\"/dev/null\">. This string is treated specially by "
@@ -42605,46 +42843,46 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1258
+#: ../src/guestfs.pod:1264
msgid "A null disk has the following properties:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1264
+#: ../src/guestfs.pod:1270
msgid ""
"A null disk will appear as a normal device, eg. in calls to "
"L</guestfs_list_devices>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1269
+#: ../src/guestfs.pod:1275
msgid "You may add C<\"/dev/null\"> multiple times."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1273
+#: ../src/guestfs.pod:1279
msgid ""
"You should not try to access a null disk in any way. For example, you "
"shouldn't try to read it or mount it."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1278
+#: ../src/guestfs.pod:1284
msgid "Null disks are used for three main purposes:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1284
+#: ../src/guestfs.pod:1290
msgid "Performance testing of libguestfs (see L<guestfs-performance(1)>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1288
+#: ../src/guestfs.pod:1294
msgid "The internal test suite."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1292
+#: ../src/guestfs.pod:1298
msgid ""
"If you want to use libguestfs APIs that don't refer to disks, since "
"libguestfs requires that at least one disk is added, you should add a null "
@@ -42652,12 +42890,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1296
+#: ../src/guestfs.pod:1302
msgid "For example, to test if a feature is available, use code like this:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1298
+#: ../src/guestfs.pod:1304
#, no-wrap
msgid ""
" guestfs_h *g;\n"
@@ -42666,7 +42904,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1301
+#: ../src/guestfs.pod:1307
#, no-wrap
msgid ""
" g = guestfs_create ();\n"
@@ -42682,24 +42920,24 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1313 ../sysprep/virt-sysprep.pod:386
+#: ../src/guestfs.pod:1319 ../sysprep/virt-sysprep.pod:386
msgid "SECURITY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1315
+#: ../src/guestfs.pod:1321
msgid ""
"This section discusses security implications of using libguestfs, "
"particularly with untrusted or malicious guests or disk images."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1318
+#: ../src/guestfs.pod:1324
msgid "GENERAL SECURITY CONSIDERATIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1320
+#: ../src/guestfs.pod:1326
msgid ""
"Be careful with any files or data that you download from a guest (by "
"\"download\" we mean not just the L</guestfs_download> command but any "
@@ -42709,42 +42947,42 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1330
+#: ../src/guestfs.pod:1336
msgid "the data (file etc) not being present"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1334
+#: ../src/guestfs.pod:1340
msgid "being present but empty"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1338
+#: ../src/guestfs.pod:1344
msgid "being much larger than normal"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1342
+#: ../src/guestfs.pod:1348
msgid "containing arbitrary 8 bit data"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1346
+#: ../src/guestfs.pod:1352
msgid "being in an unexpected character encoding"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1350
+#: ../src/guestfs.pod:1356
msgid "containing homoglyphs."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1354
+#: ../src/guestfs.pod:1360
msgid "SECURITY OF MOUNTING FILESYSTEMS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1356
+#: ../src/guestfs.pod:1362
msgid ""
"When you mount a filesystem under Linux, mistakes in the kernel filesystem "
"(VFS) module can sometimes be escalated into exploits by deliberately "
@@ -42760,7 +42998,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1369
+#: ../src/guestfs.pod:1375
msgid ""
"That explains why you should never mount a filesystem from an untrusted "
"guest on your host kernel. How about libguestfs? We run a Linux kernel "
@@ -42774,19 +43012,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1380
+#: ../src/guestfs.pod:1386
msgid ""
"In any case callers can reduce the attack surface by forcing the filesystem "
"type when mounting (use L</guestfs_mount_vfs>)."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1383
+#: ../src/guestfs.pod:1389
msgid "PROTOCOL SECURITY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1385
+#: ../src/guestfs.pod:1391
msgid ""
"The protocol is designed to be secure, being based on RFC 4506 (XDR) with a "
"defined upper message size. However a program that uses libguestfs must "
@@ -42796,12 +43034,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1391
+#: ../src/guestfs.pod:1397
msgid "INSPECTION SECURITY"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1393
+#: ../src/guestfs.pod:1399
msgid ""
"Parts of the inspection API (see L</INSPECTION>) return untrusted strings "
"directly from the guest, and these could contain any 8 bit data. Callers "
@@ -42810,7 +43048,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1399
+#: ../src/guestfs.pod:1405
msgid ""
"Guest configuration may be altered in unusual ways by the administrator of "
"the virtual machine, and may not reflect reality (particularly for untrusted "
@@ -42821,7 +43059,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1407
+#: ../src/guestfs.pod:1413
msgid ""
"The inspection API parses guest configuration using two external libraries: "
"Augeas (Linux configuration) and hivex (Windows Registry). Both are "
@@ -42831,12 +43069,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1413
+#: ../src/guestfs.pod:1419
msgid "RUNNING UNTRUSTED GUEST COMMANDS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1415
+#: ../src/guestfs.pod:1421
msgid ""
"Be very cautious about running commands from the guest. By running a "
"command in the guest, you are giving CPU time to a binary that you do not "
@@ -42846,24 +43084,24 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1421
+#: ../src/guestfs.pod:1427
msgid "CVE-2010-3851"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1423
+#: ../src/guestfs.pod:1429
msgid "L<https://bugzilla.redhat.com/642934>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1425
+#: ../src/guestfs.pod:1431
msgid ""
"This security bug concerns the automatic disk format detection that qemu "
"does on disk images."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1428
+#: ../src/guestfs.pod:1434
msgid ""
"A raw disk image is just the raw bytes, there is no header. Other disk "
"images like qcow2 contain a special header. Qemu deals with this by looking "
@@ -42872,7 +43110,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1433
+#: ../src/guestfs.pod:1439
msgid ""
"This allows a guest which has been given a raw disk image to write some "
"other header. At next boot (or when the disk image is accessed by "
@@ -42881,7 +43119,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1438
+#: ../src/guestfs.pod:1444
msgid ""
"This in itself would not be a problem, but qcow2 offers many features, one "
"of which is to allow a disk image to refer to another image (called the "
@@ -42893,24 +43131,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1446
+#: ../src/guestfs.pod:1452
msgid "In libguestfs this is rather hard to exploit except under two circumstances:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1453
+#: ../src/guestfs.pod:1459
msgid "You have enabled the network or have opened the disk in write mode."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1457
+#: ../src/guestfs.pod:1463
msgid ""
"You are also running untrusted code from the guest (see L</RUNNING "
"COMMANDS>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1462
+#: ../src/guestfs.pod:1468
msgid ""
"The way to avoid this is to specify the expected disk format when adding "
"disks (the optional C<format> option to L</guestfs_add_drive_opts>). You "
@@ -42919,31 +43157,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1467
+#: ../src/guestfs.pod:1473
msgid ""
"For disks added from libvirt using calls like L</guestfs_add_domain>, the "
"format is fetched from libvirt and passed through."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1470
+#: ../src/guestfs.pod:1476
msgid ""
"For libguestfs tools, use the I<--format> command line parameter as "
"appropriate."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1473
+#: ../src/guestfs.pod:1479
msgid "CONNECTION MANAGEMENT"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1475
+#: ../src/guestfs.pod:1481
msgid "guestfs_h *"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1477
+#: ../src/guestfs.pod:1483
msgid ""
"C<guestfs_h> is the opaque type representing a connection handle. Create a "
"handle by calling L</guestfs_create>. Call L</guestfs_close> to free the "
@@ -42951,19 +43189,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1481
+#: ../src/guestfs.pod:1487
msgid ""
"For information on using multiple handles and threads, see the section "
"L</MULTIPLE HANDLES AND MULTIPLE THREADS> above."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1484
+#: ../src/guestfs.pod:1490
msgid "guestfs_create"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1486
+#: ../src/guestfs.pod:1492
#, no-wrap
msgid ""
" guestfs_h *guestfs_create (void);\n"
@@ -42971,19 +43209,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1488
+#: ../src/guestfs.pod:1494
msgid "Create a connection handle."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1490
+#: ../src/guestfs.pod:1496
msgid ""
"On success this returns a non-NULL pointer to a handle. On error it returns "
"NULL."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1493
+#: ../src/guestfs.pod:1499
msgid ""
"You have to \"configure\" the handle after creating it. This includes "
"calling L</guestfs_add_drive_opts> (or one of the equivalent calls) on the "
@@ -42991,24 +43229,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1497
+#: ../src/guestfs.pod:1503
msgid "After configuring the handle, you have to call L</guestfs_launch>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1499
+#: ../src/guestfs.pod:1505
msgid ""
"You may also want to configure error handling for the handle. See the "
"L</ERROR HANDLING> section below."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1502
+#: ../src/guestfs.pod:1508
msgid "guestfs_close"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1504
+#: ../src/guestfs.pod:1510
#, no-wrap
msgid ""
" void guestfs_close (guestfs_h *g);\n"
@@ -43016,19 +43254,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1506
+#: ../src/guestfs.pod:1512
msgid ""
"This closes the connection handle and frees up all resources used. If a "
"close callback was set on the handle, then it is called."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1509
+#: ../src/guestfs.pod:1515
msgid "The correct way to close the handle is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1511
+#: ../src/guestfs.pod:1517
#, no-wrap
msgid ""
" if (guestfs_shutdown (g) == -1) {\n"
@@ -43039,51 +43277,51 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1516
+#: ../src/guestfs.pod:1522
msgid "L</guestfs_shutdown> is only needed if B<all> of the following are true:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1522
+#: ../src/guestfs.pod:1528
msgid "one or more disks were added in read-write mode, I<and>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1526
+#: ../src/guestfs.pod:1532
msgid "guestfs_launch was called, I<and>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1530
+#: ../src/guestfs.pod:1536
msgid "you made some changes, I<and>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1532
+#: ../src/guestfs.pod:1538
msgid "4"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1534
+#: ../src/guestfs.pod:1540
msgid ""
"you have a way to handle write errors (eg. by exiting with an error code or "
"reporting something to the user)."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1539
+#: ../src/guestfs.pod:1545
msgid "ERROR HANDLING"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1541
+#: ../src/guestfs.pod:1547
msgid ""
"API functions can return errors. For example, almost all functions that "
"return C<int> will return C<-1> to indicate an error."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1544
+#: ../src/guestfs.pod:1550
msgid ""
"Additional information is available for errors: an error message string and "
"optionally an error number (errno) if the thing that failed was a system "
@@ -43091,7 +43329,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1548
+#: ../src/guestfs.pod:1554
msgid ""
"You can get at the additional information about the last error on the handle "
"by calling L</guestfs_last_error>, L</guestfs_last_errno>, and/or by setting "
@@ -43099,7 +43337,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1553
+#: ../src/guestfs.pod:1559
msgid ""
"When the handle is created, a default error handler is installed which "
"prints the error message string to C<stderr>. For small short-running "
@@ -43107,7 +43345,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1557
+#: ../src/guestfs.pod:1563
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1)\n"
@@ -43116,21 +43354,21 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1560
+#: ../src/guestfs.pod:1566
msgid ""
"since the default error handler will ensure that an error message has been "
"printed to C<stderr> before the program exits."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1563
+#: ../src/guestfs.pod:1569
msgid ""
"For other programs the caller will almost certainly want to install an "
"alternate error handler or do error handling in-line like this:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1566
+#: ../src/guestfs.pod:1572
#, no-wrap
msgid ""
" /* This disables the default behaviour of printing errors\n"
@@ -43140,7 +43378,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1570
+#: ../src/guestfs.pod:1576
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1) {\n"
@@ -43157,7 +43395,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1581
+#: ../src/guestfs.pod:1587
msgid ""
"Out of memory errors are handled differently. The default action is to call "
"L<abort(3)>. If this is undesirable, then you can set a handler using "
@@ -43165,7 +43403,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1585
+#: ../src/guestfs.pod:1591
msgid ""
"L</guestfs_create> returns C<NULL> if the handle cannot be created, and "
"because there is no handle if this happens there is no way to get additional "
@@ -43175,12 +43413,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1591
+#: ../src/guestfs.pod:1597
msgid "guestfs_last_error"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1593
+#: ../src/guestfs.pod:1599
#, no-wrap
msgid ""
" const char *guestfs_last_error (guestfs_h *g);\n"
@@ -43188,26 +43426,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1595
+#: ../src/guestfs.pod:1601
msgid ""
"This returns the last error message that happened on C<g>. If there has not "
"been an error since the handle was created, then this returns C<NULL>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1599
+#: ../src/guestfs.pod:1605
msgid ""
"The lifetime of the returned string is until the next error occurs, or "
"L</guestfs_close> is called."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1602
+#: ../src/guestfs.pod:1608
msgid "guestfs_last_errno"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1604
+#: ../src/guestfs.pod:1610
#, no-wrap
msgid ""
" int guestfs_last_errno (guestfs_h *g);\n"
@@ -43215,27 +43453,27 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1606
+#: ../src/guestfs.pod:1612
msgid "This returns the last error number (errno) that happened on C<g>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1608
+#: ../src/guestfs.pod:1614
msgid "If successful, an errno integer not equal to zero is returned."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1610
+#: ../src/guestfs.pod:1616
msgid "If no error, this returns 0. This call can return 0 in three situations:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1617
+#: ../src/guestfs.pod:1623
msgid "There has not been any error on the handle."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1621
+#: ../src/guestfs.pod:1627
msgid ""
"There has been an error but the errno was meaningless. This corresponds to "
"the case where the error did not come from a failed system call, but for "
@@ -43243,14 +43481,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1627
+#: ../src/guestfs.pod:1633
msgid ""
"There was an error from a failed system call, but for some reason the errno "
"was not captured and returned. This usually indicates a bug in libguestfs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1633
+#: ../src/guestfs.pod:1639
msgid ""
"Libguestfs tries to convert the errno from inside the applicance into a "
"corresponding errno for the caller (not entirely trivial: the appliance "
@@ -43261,12 +43499,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1641
+#: ../src/guestfs.pod:1647
msgid "guestfs_set_error_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1643
+#: ../src/guestfs.pod:1649
#, no-wrap
msgid ""
" typedef void (*guestfs_error_handler_cb) (guestfs_h *g,\n"
@@ -43279,7 +43517,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1650
+#: ../src/guestfs.pod:1656
msgid ""
"The callback C<cb> will be called if there is an error. The parameters "
"passed to the callback are an opaque data pointer and the error message "
@@ -43287,14 +43525,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1654
+#: ../src/guestfs.pod:1660
msgid ""
"C<errno> is not passed to the callback. To get that the callback must call "
"L</guestfs_last_errno>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1657
+#: ../src/guestfs.pod:1663
msgid ""
"Note that the message string C<msg> is freed as soon as the callback "
"function returns, so if you want to stash it somewhere you must make your "
@@ -43302,22 +43540,22 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1661
+#: ../src/guestfs.pod:1667
msgid "The default handler prints messages on C<stderr>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1663
+#: ../src/guestfs.pod:1669
msgid "If you set C<cb> to C<NULL> then I<no> handler is called."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1665
+#: ../src/guestfs.pod:1671
msgid "guestfs_get_error_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1667
+#: ../src/guestfs.pod:1673
#, no-wrap
msgid ""
" guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n"
@@ -43326,17 +43564,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1670
+#: ../src/guestfs.pod:1676
msgid "Returns the current error handler callback."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1672
+#: ../src/guestfs.pod:1678
msgid "guestfs_set_out_of_memory_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1674
+#: ../src/guestfs.pod:1680
#, no-wrap
msgid ""
" typedef void (*guestfs_abort_cb) (void);\n"
@@ -43346,29 +43584,29 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1678
+#: ../src/guestfs.pod:1684
msgid ""
"The callback C<cb> will be called if there is an out of memory situation. "
"I<Note this callback must not return>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1681
+#: ../src/guestfs.pod:1687
msgid "The default is to call L<abort(3)>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1683
+#: ../src/guestfs.pod:1689
msgid "You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1686
+#: ../src/guestfs.pod:1692
msgid "guestfs_get_out_of_memory_handler"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1688
+#: ../src/guestfs.pod:1694
#, no-wrap
msgid ""
" guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n"
@@ -43376,37 +43614,37 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1690
+#: ../src/guestfs.pod:1696
msgid "This returns the current out of memory handler."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1692
+#: ../src/guestfs.pod:1698
msgid "API CALLS"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1696
+#: ../src/guestfs.pod:1702
msgid "STRUCTURES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1698
+#: ../src/guestfs.pod:1704
msgid "@STRUCTS@"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1700
+#: ../src/guestfs.pod:1706
msgid "AVAILABILITY"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1702
+#: ../src/guestfs.pod:1708
msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1704
+#: ../src/guestfs.pod:1710
msgid ""
"Using L</guestfs_available> you can test availability of the following "
"groups of functions. This test queries the appliance to see if the "
@@ -43414,17 +43652,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1709
+#: ../src/guestfs.pod:1715
msgid "@AVAILABILITY@"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1711
+#: ../src/guestfs.pod:1717
msgid "GUESTFISH supported COMMAND"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1713
+#: ../src/guestfs.pod:1719
msgid ""
"In L<guestfish(3)> there is a handy interactive command C<supported> which "
"prints out the available groups and whether they are supported by this build "
@@ -43432,19 +43670,19 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1718
+#: ../src/guestfs.pod:1724
msgid "SINGLE CALLS AT COMPILE TIME"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1720
+#: ../src/guestfs.pod:1726
msgid ""
"Since version 1.5.8, C<E<lt>guestfs.hE<gt>> defines symbols for each C API "
"function, such as:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1723
+#: ../src/guestfs.pod:1729
#, no-wrap
msgid ""
" #define LIBGUESTFS_HAVE_DD 1\n"
@@ -43452,12 +43690,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1725
+#: ../src/guestfs.pod:1731
msgid "if L</guestfs_dd> is available."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1727
+#: ../src/guestfs.pod:1733
msgid ""
"Before version 1.5.8, if you needed to test whether a single libguestfs "
"function is available at compile time, we recommended using build tools such "
@@ -43465,7 +43703,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1732
+#: ../src/guestfs.pod:1738
#, no-wrap
msgid ""
" AC_CHECK_LIB([guestfs],[guestfs_create])\n"
@@ -43474,19 +43712,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1735
+#: ../src/guestfs.pod:1741
msgid ""
"which would result in C<HAVE_GUESTFS_DD> being either defined or not defined "
"in your program."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1738
+#: ../src/guestfs.pod:1744
msgid "SINGLE CALLS AT RUN TIME"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1740
+#: ../src/guestfs.pod:1746
msgid ""
"Testing at compile time doesn't guarantee that a function really exists in "
"the library. The reason is that you might be dynamically linked against a "
@@ -43496,7 +43734,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1747
+#: ../src/guestfs.pod:1753
msgid ""
"You can use L<dlopen(3)> to test if a function is available at run time, as "
"in this example program (note that you still need the compile time check as "
@@ -43504,7 +43742,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1751
+#: ../src/guestfs.pod:1757
#, no-wrap
msgid ""
" #include <stdio.h>\n"
@@ -43516,7 +43754,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1757
+#: ../src/guestfs.pod:1763
#, no-wrap
msgid ""
" main ()\n"
@@ -43528,7 +43766,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1763
+#: ../src/guestfs.pod:1769
#, no-wrap
msgid ""
" /* Test if the function guestfs_dd is really available. */\n"
@@ -43543,7 +43781,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1772
+#: ../src/guestfs.pod:1778
#, no-wrap
msgid ""
" if (!has_function)\n"
@@ -43562,7 +43800,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1785
+#: ../src/guestfs.pod:1791
msgid ""
"You may think the above is an awful lot of hassle, and it is. There are "
"other ways outside of the C linking system to ensure that this kind of "
@@ -43570,7 +43808,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1790
+#: ../src/guestfs.pod:1796
#, no-wrap
msgid ""
" Requires: libguestfs >= 1.0.80\n"
@@ -43578,12 +43816,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:1792
+#: ../src/guestfs.pod:1798
msgid "CALLS WITH OPTIONAL ARGUMENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1794
+#: ../src/guestfs.pod:1800
msgid ""
"A recent feature of the API is the introduction of calls which take optional "
"arguments. In C these are declared 3 ways. The main way is as a call which "
@@ -43591,7 +43829,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1799
+#: ../src/guestfs.pod:1805
#, no-wrap
msgid ""
" int guestfs_add_drive_opts (guestfs_h *g, const char *filename, ...);\n"
@@ -43599,14 +43837,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1801
+#: ../src/guestfs.pod:1807
msgid ""
"Call this with a list of optional arguments, terminated by C<-1>. So to "
"call with no optional arguments specified:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1804
+#: ../src/guestfs.pod:1810
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename, -1);\n"
@@ -43614,12 +43852,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1806
+#: ../src/guestfs.pod:1812
msgid "With a single optional argument:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1808
+#: ../src/guestfs.pod:1814
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
@@ -43629,12 +43867,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1812
+#: ../src/guestfs.pod:1818
msgid "With two:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1814
+#: ../src/guestfs.pod:1820
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
@@ -43645,19 +43883,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1819
+#: ../src/guestfs.pod:1825
msgid ""
"and so forth. Don't forget the terminating C<-1> otherwise Bad Things will "
"happen!"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1822
+#: ../src/guestfs.pod:1828
msgid "USING va_list FOR OPTIONAL ARGUMENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1824
+#: ../src/guestfs.pod:1830
msgid ""
"The second variant has the same name with the suffix C<_va>, which works the "
"same way but takes a C<va_list>. See the C manual for details. For the "
@@ -43665,7 +43903,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1828
+#: ../src/guestfs.pod:1834
#, no-wrap
msgid ""
" int guestfs_add_drive_opts_va (guestfs_h *g, const char *filename,\n"
@@ -43674,12 +43912,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1831
+#: ../src/guestfs.pod:1837
msgid "CONSTRUCTING OPTIONAL ARGUMENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1833
+#: ../src/guestfs.pod:1839
msgid ""
"The third variant is useful where you need to construct these calls. You "
"pass in a structure where you fill in the optional fields. The structure "
@@ -43689,7 +43927,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1839
+#: ../src/guestfs.pod:1845
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv {\n"
@@ -43704,12 +43942,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1848
+#: ../src/guestfs.pod:1854
msgid "You could call it like this:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1850
+#: ../src/guestfs.pod:1856
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv optargs = {\n"
@@ -43722,7 +43960,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:1857
+#: ../src/guestfs.pod:1863
#, no-wrap
msgid ""
" guestfs_add_drive_opts_argv (g, filename, &optargs);\n"
@@ -43730,29 +43968,29 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1865
+#: ../src/guestfs.pod:1871
msgid "The C<_BITMASK> suffix on each option name when specifying the bitmask."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1870
+#: ../src/guestfs.pod:1876
msgid "You do not need to fill in all fields of the structure."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1874
+#: ../src/guestfs.pod:1880
msgid ""
"There must be a one-to-one correspondence between fields of the structure "
"that are filled in, and bits set in the bitmask."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1879
+#: ../src/guestfs.pod:1885
msgid "OPTIONAL ARGUMENTS IN OTHER LANGUAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1881
+#: ../src/guestfs.pod:1887
msgid ""
"In other languages, optional arguments are expressed in the way that is "
"natural for that language. We refer you to the language-specific "
@@ -43760,17 +43998,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1885
+#: ../src/guestfs.pod:1891
msgid "For guestfish, see L<guestfish(1)/OPTIONAL ARGUMENTS>."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:1887
+#: ../src/guestfs.pod:1893
msgid "SETTING CALLBACKS TO HANDLE EVENTS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1889
+#: ../src/guestfs.pod:1895
msgid ""
"B<Note:> This section documents the generic event mechanism introduced in "
"libguestfs 1.10, which you should use in new code if possible. The old "
@@ -43782,7 +44020,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1898
+#: ../src/guestfs.pod:1904
msgid ""
"Handles generate events when certain things happen, such as log messages "
"being generated, progress messages during long-running operations, or the "
@@ -43794,7 +44032,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1906
+#: ../src/guestfs.pod:1912
msgid ""
"In the current implementation, events are only generated synchronously: that "
"means that events (and hence callbacks) can only happen while you are in the "
@@ -43803,31 +44041,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1911
+#: ../src/guestfs.pod:1917
msgid ""
"Events may contain a payload, usually nothing (void), an array of 64 bit "
"unsigned integers, or a message buffer. Payloads are discussed later on."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:1915
+#: ../src/guestfs.pod:1921
msgid "CLASSES OF EVENTS"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1919
+#: ../src/guestfs.pod:1925
msgid "GUESTFS_EVENT_CLOSE (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1922
+#: ../src/guestfs.pod:1928
msgid ""
"The callback function will be called while the handle is being closed "
"(synchronously from L</guestfs_close>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1925
+#: ../src/guestfs.pod:1931
msgid ""
"Note that libguestfs installs an L<atexit(3)> handler to try to clean up "
"handles that are open when the program exits. This means that this callback "
@@ -43838,19 +44076,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1932
+#: ../src/guestfs.pod:1938
msgid ""
"If no callback is registered: the handle is closed without any callback "
"being invoked."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1935
+#: ../src/guestfs.pod:1941
msgid "GUESTFS_EVENT_SUBPROCESS_QUIT (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1938
+#: ../src/guestfs.pod:1944
msgid ""
"The callback function will be called when the child process quits, either "
"asynchronously or if killed by L</guestfs_kill_subprocess>. (This "
@@ -43858,17 +44096,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1942 ../src/guestfs.pod:1951 ../src/guestfs.pod:2068
+#: ../src/guestfs.pod:1948 ../src/guestfs.pod:1957 ../src/guestfs.pod:2074
msgid "If no callback is registered: the event is ignored."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1944
+#: ../src/guestfs.pod:1950
msgid "GUESTFS_EVENT_LAUNCH_DONE (payload type: void)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1947
+#: ../src/guestfs.pod:1953
msgid ""
"The callback function will be called when the child process becomes ready "
"first time after it has been launched. (This corresponds to a transition "
@@ -43876,12 +44114,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:1953
+#: ../src/guestfs.pod:1959
msgid "GUESTFS_EVENT_PROGRESS (payload type: array of 4 x uint64_t)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1956
+#: ../src/guestfs.pod:1962
msgid ""
"Some long-running operations can generate progress messages. If this "
"callback is registered, then it will be called each time a progress message "
@@ -43891,14 +44129,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1962
+#: ../src/guestfs.pod:1968
msgid ""
"The callback receives in the payload four unsigned 64 bit numbers which are "
"(in order): C<proc_nr>, C<serial>, C<position>, C<total>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1965
+#: ../src/guestfs.pod:1971
msgid ""
"The units of C<total> are not defined, although for some operations C<total> "
"may relate in some way to the amount of data to be transferred (eg. in bytes "
@@ -43907,24 +44145,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1970
+#: ../src/guestfs.pod:1976
msgid "The only defined and stable parts of the API are:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1976
+#: ../src/guestfs.pod:1982
msgid ""
"The callback can display to the user some type of progress bar or indicator "
"which shows the ratio of C<position>:C<total>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1981
+#: ../src/guestfs.pod:1987
msgid "0 E<lt>= C<position> E<lt>= C<total>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1985
+#: ../src/guestfs.pod:1991
msgid ""
"If any progress notification is sent during a call, then a final progress "
"notification is always sent when C<position> = C<total> (I<unless> the call "
@@ -43932,7 +44170,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1989
+#: ../src/guestfs.pod:1995
msgid ""
"This is to simplify caller code, so callers can easily set the progress "
"indicator to \"100%\" at the end of the operation, without requiring special "
@@ -43940,7 +44178,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:1995
+#: ../src/guestfs.pod:2001
msgid ""
"For some calls we are unable to estimate the progress of the call, but we "
"can still generate progress messages to indicate activity. This is known as "
@@ -43949,7 +44187,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2000
+#: ../src/guestfs.pod:2006
msgid ""
"For these calls, zero or more progress messages are generated with "
"C<position = 0> and C<total = 1>, followed by a final message with "
@@ -43957,14 +44195,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2004
+#: ../src/guestfs.pod:2010
msgid ""
"As noted above, if the call fails with an error then the final message may "
"not be generated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2009
+#: ../src/guestfs.pod:2015
msgid ""
"The callback also receives the procedure number (C<proc_nr>) and serial "
"number (C<serial>) of the call. These are only useful for debugging "
@@ -43973,31 +44211,31 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2015
+#: ../src/guestfs.pod:2021
msgid "If no callback is registered: progress messages are discarded."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2017
+#: ../src/guestfs.pod:2023
msgid "GUESTFS_EVENT_APPLIANCE (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2020
+#: ../src/guestfs.pod:2026
msgid ""
"The callback function is called whenever a log message is generated by qemu, "
"the appliance kernel, guestfsd (daemon), or utility programs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2023
+#: ../src/guestfs.pod:2029
msgid ""
"If the verbose flag (L</guestfs_set_verbose>) is set before launch "
"(L</guestfs_launch>) then additional debug messages are generated."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2026 ../src/guestfs.pod:2040
+#: ../src/guestfs.pod:2032 ../src/guestfs.pod:2046
msgid ""
"If no callback is registered: the messages are discarded unless the verbose "
"flag is set in which case they are sent to stderr. You can override the "
@@ -44005,62 +44243,62 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2031
+#: ../src/guestfs.pod:2037
msgid "GUESTFS_EVENT_LIBRARY (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2034
+#: ../src/guestfs.pod:2040
msgid ""
"The callback function is called whenever a log message is generated by the "
"library part of libguestfs."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2037
+#: ../src/guestfs.pod:2043
msgid ""
"If the verbose flag (L</guestfs_set_verbose>) is set then additional debug "
"messages are generated."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2045
+#: ../src/guestfs.pod:2051
msgid "GUESTFS_EVENT_TRACE (payload type: message buffer)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2048
+#: ../src/guestfs.pod:2054
msgid ""
"The callback function is called whenever a trace message is generated. This "
"only applies if the trace flag (L</guestfs_set_trace>) is set."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2051
+#: ../src/guestfs.pod:2057
msgid ""
"If no callback is registered: the messages are sent to stderr. You can "
"override the printing of trace messages to stderr by setting up a callback."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2055
+#: ../src/guestfs.pod:2061
msgid "GUESTFS_EVENT_ENTER (payload type: function name)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2058
+#: ../src/guestfs.pod:2064
msgid "The callback function is called whenever a libguestfs function is entered."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2061
+#: ../src/guestfs.pod:2067
msgid ""
"The payload is a string which contains the name of the function that we are "
"entering (not including C<guestfs_> prefix)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2064
+#: ../src/guestfs.pod:2070
msgid ""
"Note that libguestfs functions can call themselves, so you may see many "
"events from a single call. A few libguestfs functions do not generate this "
@@ -44068,12 +44306,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2072
+#: ../src/guestfs.pod:2078
msgid "guestfs_set_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2074
+#: ../src/guestfs.pod:2080
#, no-wrap
msgid ""
" int guestfs_set_event_callback (guestfs_h *g,\n"
@@ -44085,14 +44323,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2080
+#: ../src/guestfs.pod:2086
msgid ""
"This function registers a callback (C<cb>) for all event classes in the "
"C<event_bitmask>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2083
+#: ../src/guestfs.pod:2089
msgid ""
"For example, to register for all log message events, you could call this "
"function with the bitmask C<GUESTFS_EVENT_APPLIANCE|GUESTFS_EVENT_LIBRARY>. "
@@ -44101,40 +44339,40 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2089
+#: ../src/guestfs.pod:2095
msgid "C<flags> should always be passed as 0."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2091
+#: ../src/guestfs.pod:2097
msgid ""
"C<opaque> is an opaque pointer which is passed to the callback. You can use "
"it for any purpose."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2094
+#: ../src/guestfs.pod:2100
msgid ""
"The return value is the event handle (an integer) which you can use to "
"delete the callback (see below)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2097
+#: ../src/guestfs.pod:2103
msgid ""
"If there is an error, this function returns C<-1>, and sets the error in the "
"handle in the usual way (see L</guestfs_last_error> etc.)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2100
+#: ../src/guestfs.pod:2106
msgid ""
"Callbacks remain in effect until they are deleted, or until the handle is "
"closed."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2103
+#: ../src/guestfs.pod:2109
msgid ""
"In the case where multiple callbacks are registered for a particular event "
"class, all of the callbacks are called. The order in which multiple "
@@ -44142,12 +44380,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2107
+#: ../src/guestfs.pod:2113
msgid "guestfs_delete_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2109
+#: ../src/guestfs.pod:2115
#, no-wrap
msgid ""
" void guestfs_delete_event_callback (guestfs_h *g, int event_handle);\n"
@@ -44155,7 +44393,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2111
+#: ../src/guestfs.pod:2117
msgid ""
"Delete a callback that was previously registered. C<event_handle> should be "
"the integer that was returned by a previous call to "
@@ -44163,12 +44401,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2115
+#: ../src/guestfs.pod:2121
msgid "guestfs_event_callback"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2117
+#: ../src/guestfs.pod:2123
#, no-wrap
msgid ""
" typedef void (*guestfs_event_callback) (\n"
@@ -44183,12 +44421,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2126
+#: ../src/guestfs.pod:2132
msgid "This is the type of the event callback function that you have to provide."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2129
+#: ../src/guestfs.pod:2135
msgid ""
"The basic parameters are: the handle (C<g>), the opaque user pointer "
"(C<opaque>), the event class (eg. C<GUESTFS_EVENT_PROGRESS>), the event "
@@ -44196,7 +44434,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2133
+#: ../src/guestfs.pod:2139
msgid ""
"The remaining parameters contain the event payload (if any). Each event may "
"contain a payload, which usually relates to the event class, but for future "
@@ -44205,7 +44443,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2138
+#: ../src/guestfs.pod:2144
msgid ""
"C<buf> and C<buf_len> contain a message buffer (if C<buf_len == 0>, then "
"there is no message buffer). Note that this message buffer can contain "
@@ -44213,19 +44451,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2142
+#: ../src/guestfs.pod:2148
msgid ""
"C<array> and C<array_len> is an array of 64 bit unsigned integers. At the "
"moment this is only used for progress messages."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2145
+#: ../src/guestfs.pod:2151
msgid "EXAMPLE: CAPTURING LOG MESSAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2147
+#: ../src/guestfs.pod:2153
msgid ""
"One motivation for the generic event API was to allow GUI programs to "
"capture debug and other messages. In libguestfs E<le> 1.8 these were sent "
@@ -44233,7 +44471,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2151
+#: ../src/guestfs.pod:2157
msgid ""
"Events associated with log messages are: C<GUESTFS_EVENT_LIBRARY>, "
"C<GUESTFS_EVENT_APPLIANCE> and C<GUESTFS_EVENT_TRACE>. (Note that error "
@@ -44241,14 +44479,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2156
+#: ../src/guestfs.pod:2162
msgid ""
"Programs have to set up a callback to capture the classes of events of "
"interest:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2159
+#: ../src/guestfs.pod:2165
#, no-wrap
msgid ""
" int eh =\n"
@@ -44264,14 +44502,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2169
+#: ../src/guestfs.pod:2175
msgid ""
"The callback can then direct messages to the appropriate place. In this "
"example, messages are directed to syslog:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2172
+#: ../src/guestfs.pod:2178
#, no-wrap
msgid ""
" static void\n"
@@ -44292,12 +44530,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2187
+#: ../src/guestfs.pod:2193
msgid "CANCELLING LONG TRANSFERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2189
+#: ../src/guestfs.pod:2195
msgid ""
"Some operations can be cancelled by the caller while they are in progress. "
"Currently only operations that involve uploading or downloading data can be "
@@ -44306,12 +44544,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2194
+#: ../src/guestfs.pod:2200
msgid "guestfs_user_cancel"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2196
+#: ../src/guestfs.pod:2202
#, no-wrap
msgid ""
" void guestfs_user_cancel (guestfs_h *g);\n"
@@ -44319,12 +44557,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2198
+#: ../src/guestfs.pod:2204
msgid "C<guestfs_user_cancel> cancels the current upload or download operation."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2201
+#: ../src/guestfs.pod:2207
msgid ""
"Unlike most other libguestfs calls, this function is signal safe and thread "
"safe. You can call it from a signal handler or from another thread, without "
@@ -44332,7 +44570,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2205
+#: ../src/guestfs.pod:2211
msgid ""
"The transfer that was in progress (if there is one) will stop shortly "
"afterwards, and will return an error. The errno (see "
@@ -44341,7 +44579,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2211
+#: ../src/guestfs.pod:2217
msgid ""
"No cleanup is performed: for example, if a file was being uploaded then "
"after cancellation there may be a partially uploaded file. It is the "
@@ -44349,12 +44587,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2215
+#: ../src/guestfs.pod:2221
msgid "There are two common places that you might call C<guestfs_user_cancel>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2217
+#: ../src/guestfs.pod:2223
msgid ""
"In an interactive text-based program, you might call it from a C<SIGINT> "
"signal handler so that pressing C<^C> cancels the current operation. (You "
@@ -44363,19 +44601,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2222
+#: ../src/guestfs.pod:2228
msgid ""
"In a graphical program, when the main thread is displaying a progress bar "
"with a cancel button, wire up the cancel button to call this function."
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2226
+#: ../src/guestfs.pod:2232
msgid "PRIVATE DATA AREA"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2228
+#: ../src/guestfs.pod:2234
msgid ""
"You can attach named pieces of private data to the libguestfs handle, fetch "
"them by name, and walk over them, for the lifetime of the handle. This is "
@@ -44383,12 +44621,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2233
+#: ../src/guestfs.pod:2239
msgid "To attach a named piece of data, use the following call:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2235
+#: ../src/guestfs.pod:2241
#, no-wrap
msgid ""
" void guestfs_set_private (guestfs_h *g, const char *key, void *data);\n"
@@ -44396,7 +44634,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2237
+#: ../src/guestfs.pod:2243
msgid ""
"C<key> is the name to associate with this data, and C<data> is an arbitrary "
"pointer (which can be C<NULL>). Any previous item with the same key is "
@@ -44404,7 +44642,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2241
+#: ../src/guestfs.pod:2247
msgid ""
"You can use any C<key> you want, but your key should I<not> start with an "
"underscore character. Keys beginning with an underscore character are "
@@ -44414,12 +44652,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2247
+#: ../src/guestfs.pod:2253
msgid "To retrieve the pointer, use:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2249
+#: ../src/guestfs.pod:2255
#, no-wrap
msgid ""
" void *guestfs_get_private (guestfs_h *g, const char *key);\n"
@@ -44427,7 +44665,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2251
+#: ../src/guestfs.pod:2257
msgid ""
"This function returns C<NULL> if either no data is found associated with "
"C<key>, or if the user previously set the C<key>'s C<data> pointer to "
@@ -44435,7 +44673,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2255
+#: ../src/guestfs.pod:2261
msgid ""
"Libguestfs does not try to look at or interpret the C<data> pointer in any "
"way. As far as libguestfs is concerned, it need not be a valid pointer at "
@@ -44446,12 +44684,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2262
+#: ../src/guestfs.pod:2268
msgid "To walk over all entries, use these two functions:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2264
+#: ../src/guestfs.pod:2270
#, no-wrap
msgid ""
" void *guestfs_first_private (guestfs_h *g, const char **key_rtn);\n"
@@ -44459,7 +44697,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2266
+#: ../src/guestfs.pod:2272
#, no-wrap
msgid ""
" void *guestfs_next_private (guestfs_h *g, const char **key_rtn);\n"
@@ -44467,7 +44705,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2268
+#: ../src/guestfs.pod:2274
msgid ""
"C<guestfs_first_private> returns the first key, pointer pair (\"first\" does "
"not have any particular meaning -- keys are not returned in any defined "
@@ -44477,7 +44715,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2274
+#: ../src/guestfs.pod:2280
msgid ""
"C<guestfs_next_private> returns the next key, pointer pair. The return "
"value of this function is also C<NULL> is there are no further entries to "
@@ -44485,17 +44723,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2278
+#: ../src/guestfs.pod:2284
msgid "Notes about walking over entries:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2284
+#: ../src/guestfs.pod:2290
msgid "You must not call C<guestfs_set_private> while walking over the entries."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2289
+#: ../src/guestfs.pod:2295
msgid ""
"The handle maintains an internal iterator which is reset when you call "
"C<guestfs_first_private>. This internal iterator is invalidated when you "
@@ -44503,12 +44741,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2295
+#: ../src/guestfs.pod:2301
msgid "If you have set the data pointer associated with a key to C<NULL>, ie:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2297
+#: ../src/guestfs.pod:2303
#, no-wrap
msgid ""
" guestfs_set_private (g, key, NULL);\n"
@@ -44516,26 +44754,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2299
+#: ../src/guestfs.pod:2305
msgid "then that C<key> is not returned when walking."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2303
+#: ../src/guestfs.pod:2309
msgid ""
"C<*key_rtn> is only valid until the next call to C<guestfs_first_private>, "
"C<guestfs_next_private> or C<guestfs_set_private>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2309
+#: ../src/guestfs.pod:2315
msgid ""
"The following example code shows how to print all keys and data pointers "
"that are associated with the handle C<g>:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2312
+#: ../src/guestfs.pod:2318
#, no-wrap
msgid ""
" const char *key;\n"
@@ -44549,14 +44787,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2320
+#: ../src/guestfs.pod:2326
msgid ""
"More commonly you are only interested in keys that begin with an "
"application-specific prefix C<foo_>. Modify the loop like so:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2323
+#: ../src/guestfs.pod:2329
#, no-wrap
msgid ""
" const char *key;\n"
@@ -44571,7 +44809,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2332
+#: ../src/guestfs.pod:2338
msgid ""
"If you need to modify keys while walking, then you have to jump back to the "
"beginning of the loop. For example, to delete all keys prefixed with "
@@ -44579,7 +44817,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2336
+#: ../src/guestfs.pod:2342
#, no-wrap
msgid ""
" const char *key;\n"
@@ -44601,7 +44839,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2352
+#: ../src/guestfs.pod:2358
msgid ""
"Note that the above loop is guaranteed to terminate because the keys are "
"being deleted, but other manipulations of keys within the loop might not "
@@ -44610,12 +44848,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2357
+#: ../src/guestfs.pod:2363
msgid "SYSTEMTAP"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2359
+#: ../src/guestfs.pod:2365
msgid ""
"The libguestfs C library can be probed using systemtap or DTrace. This is "
"true of any library, not just libguestfs. However libguestfs also contains "
@@ -44623,12 +44861,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2363
+#: ../src/guestfs.pod:2369
msgid "You can list all the static markers by doing:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2365
+#: ../src/guestfs.pod:2371
#, no-wrap
msgid ""
" stap -l 'process(\"/usr/lib*/libguestfs.so.0\")\n"
@@ -44637,26 +44875,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2368
+#: ../src/guestfs.pod:2374
msgid ""
"B<Note:> These static markers are I<not> part of the stable API and may "
"change in future versions."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2371
+#: ../src/guestfs.pod:2377
msgid "SYSTEMTAP SCRIPT EXAMPLE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2373
+#: ../src/guestfs.pod:2379
msgid ""
"This script contains examples of displaying both the static markers and some "
"ordinary C entry points:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2400
+#: ../src/guestfs.pod:2406
#, no-wrap
msgid ""
" /* Display all calls to guestfs_mkfs* functions. */\n"
@@ -44669,7 +44907,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2407
+#: ../src/guestfs.pod:2413
msgid ""
"The script above can be saved to C<test.stap> and run using the L<stap(1)> "
"program. Note that you either have to be root, or you have to add yourself "
@@ -44678,7 +44916,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2412
+#: ../src/guestfs.pod:2418
#, no-wrap
msgid ""
" # stap /tmp/test.stap\n"
@@ -44687,17 +44925,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2415
+#: ../src/guestfs.pod:2421
msgid "In another terminal, run a guestfish command such as this:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2419
+#: ../src/guestfs.pod:2425
msgid "In the first terminal, stap trace output similar to this is shown:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2421
+#: ../src/guestfs.pod:2427
#, no-wrap
msgid ""
" 1318248056692655 (+0):\tlaunch_start\n"
@@ -44711,19 +44949,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2430
+#: ../src/guestfs.pod:2436
msgid ""
"<!-- old anchor for the next section --> <a "
"name=\"state_machine_and_low_level_event_api\"/>"
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2435
+#: ../src/guestfs.pod:2441
msgid "ARCHITECTURE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2437
+#: ../src/guestfs.pod:2443
msgid ""
"Internally, libguestfs is implemented by running an appliance (a special "
"type of small virtual machine) using L<qemu(1)>. Qemu runs as a child "
@@ -44731,7 +44969,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2441
+#: ../src/guestfs.pod:2447
#, no-wrap
msgid ""
" ___________________\n"
@@ -44757,14 +44995,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2461
+#: ../src/guestfs.pod:2467
msgid ""
"The library, linked to the main program, creates the child process and hence "
"the appliance in the L</guestfs_launch> function."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2464
+#: ../src/guestfs.pod:2470
msgid ""
"Inside the appliance is a Linux kernel and a complete stack of userspace "
"tools (such as LVM and ext2 programs) and a small controlling daemon called "
@@ -44776,7 +45014,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2473
+#: ../src/guestfs.pod:2479
msgid ""
"A common misunderstanding is that the appliance \"is\" the virtual machine. "
"Although the disk image you are attached to might also be used by some "
@@ -44787,17 +45025,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2480
+#: ../src/guestfs.pod:2486
msgid "STATE MACHINE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2482
+#: ../src/guestfs.pod:2488
msgid "libguestfs uses a state machine to model the child process:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2484
+#: ../src/guestfs.pod:2490
#, no-wrap
msgid ""
" |\n"
@@ -44825,7 +45063,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2506
+#: ../src/guestfs.pod:2512
msgid ""
"The normal transitions are (1) CONFIG (when the handle is created, but there "
"is no child process), (2) LAUNCHING (when the child process is booting up), "
@@ -44834,7 +45072,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2511
+#: ../src/guestfs.pod:2517
msgid ""
"The guest may be killed by L</guestfs_kill_subprocess>, or may die "
"asynchronously at any time (eg. due to some internal error), and that causes "
@@ -44842,14 +45080,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2515
+#: ../src/guestfs.pod:2521
msgid ""
"Configuration commands for qemu such as L</guestfs_add_drive> can only be "
"issued when in the CONFIG state."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2518
+#: ../src/guestfs.pod:2524
msgid ""
"The API offers one call that goes from CONFIG through LAUNCHING to READY. "
"L</guestfs_launch> blocks until the child process is READY to accept "
@@ -44858,7 +45096,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2524
+#: ../src/guestfs.pod:2530
msgid ""
"API actions such as L</guestfs_mount> can only be issued when in the READY "
"state. These API calls block waiting for the command to be carried out. "
@@ -44867,7 +45105,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2529
+#: ../src/guestfs.pod:2535
msgid ""
"Finally, the child process sends asynchronous messages back to the main "
"program, such as kernel log messages. You can register a callback to "
@@ -44875,17 +45113,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2533
+#: ../src/guestfs.pod:2539
msgid "INTERNALS"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2535
+#: ../src/guestfs.pod:2541
msgid "APPLIANCE BOOT PROCESS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2537
+#: ../src/guestfs.pod:2543
msgid ""
"This process has evolved and continues to evolve. The description here "
"corresponds only to the current version of libguestfs and is provided for "
@@ -44893,55 +45131,55 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2541
+#: ../src/guestfs.pod:2547
msgid ""
"In order to follow the stages involved below, enable libguestfs debugging "
"(set the environment variable C<LIBGUESTFS_DEBUG=1>)."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2546
+#: ../src/guestfs.pod:2552
msgid "Create the appliance"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2548
+#: ../src/guestfs.pod:2554
msgid ""
"C<febootstrap-supermin-helper> is invoked to create the kernel, a small "
"initrd and the appliance."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2551
+#: ../src/guestfs.pod:2557
msgid ""
"The appliance is cached in C</var/tmp/.guestfs-E<lt>UIDE<gt>> (or in another "
"directory if C<TMPDIR> is set)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2554
+#: ../src/guestfs.pod:2560
msgid ""
"For a complete description of how the appliance is created and cached, read "
"the L<febootstrap(8)> and L<febootstrap-supermin-helper(8)> man pages."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2558
+#: ../src/guestfs.pod:2564
msgid "Start qemu and boot the kernel"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2560
+#: ../src/guestfs.pod:2566
msgid "qemu is invoked to boot the kernel."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2562
+#: ../src/guestfs.pod:2568
msgid "Run the initrd"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2564
+#: ../src/guestfs.pod:2570
msgid ""
"C<febootstrap-supermin-helper> builds a small initrd. The initrd is not the "
"appliance. The purpose of the initrd is to load enough kernel modules in "
@@ -44949,21 +45187,21 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2568
+#: ../src/guestfs.pod:2574
msgid ""
"The initrd is a cpio archive called "
"C</var/tmp/.guestfs-E<lt>UIDE<gt>/initrd>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2571
+#: ../src/guestfs.pod:2577
msgid ""
"When the initrd has started you will see messages showing that kernel "
"modules are being loaded, similar to this:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2574
+#: ../src/guestfs.pod:2580
#, no-wrap
msgid ""
" febootstrap: ext2 mini initrd starting up\n"
@@ -44974,12 +45212,12 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2579
+#: ../src/guestfs.pod:2585
msgid "Find and mount the appliance device"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2581
+#: ../src/guestfs.pod:2587
msgid ""
"The appliance is a sparse file containing an ext2 filesystem which contains "
"a familiar (although reduced in size) Linux operating system. It would "
@@ -44987,33 +45225,33 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2585
+#: ../src/guestfs.pod:2591
msgid ""
"The regular disks being inspected by libguestfs are the first devices "
"exposed by qemu (eg. as C</dev/vda>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2588
+#: ../src/guestfs.pod:2594
msgid ""
"The last disk added to qemu is the appliance itself (eg. C</dev/vdb> if "
"there was only one regular disk)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2591
+#: ../src/guestfs.pod:2597
msgid ""
"Thus the final job of the initrd is to locate the appliance disk, mount it, "
"and switch root into the appliance, and run C</init> from the appliance."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2595
+#: ../src/guestfs.pod:2601
msgid "If this works successfully you will see messages such as:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2597
+#: ../src/guestfs.pod:2603
#, no-wrap
msgid ""
" febootstrap: picked /sys/block/vdb/dev as root device\n"
@@ -45025,19 +45263,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2603
+#: ../src/guestfs.pod:2609
msgid ""
"Note that C<Starting /init script ...> indicates that the appliance's init "
"script is now running."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2606
+#: ../src/guestfs.pod:2612
msgid "Initialize the appliance"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2608
+#: ../src/guestfs.pod:2614
msgid ""
"The appliance itself now initializes itself. This involves starting certain "
"processes like C<udev>, possibly printing some debug information, and "
@@ -45045,19 +45283,19 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2612
+#: ../src/guestfs.pod:2618
msgid "The daemon"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2614
+#: ../src/guestfs.pod:2620
msgid ""
"Finally the daemon (C<guestfsd>) runs inside the appliance. If it runs you "
"should see:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2617
+#: ../src/guestfs.pod:2623
#, no-wrap
msgid ""
" verbose daemon enabled\n"
@@ -45065,14 +45303,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2619
+#: ../src/guestfs.pod:2625
msgid ""
"The daemon expects to see a named virtio-serial port exposed by qemu and "
"connected on the other end to the library."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2622
+#: ../src/guestfs.pod:2628
msgid ""
"The daemon connects to this port (and hence to the library) and sends a four "
"byte message C<GUESTFS_LAUNCH_FLAG>, which initiates the communication "
@@ -45080,19 +45318,19 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2628
+#: ../src/guestfs.pod:2634
msgid "COMMUNICATION PROTOCOL"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2630
+#: ../src/guestfs.pod:2636
msgid ""
"Don't rely on using this protocol directly. This section documents how it "
"currently works, but it may change at any time."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2633
+#: ../src/guestfs.pod:2639
msgid ""
"The protocol used to talk between the library and the daemon running inside "
"the qemu virtual machine is a simple RPC mechanism built on top of XDR (RFC "
@@ -45100,14 +45338,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2637
+#: ../src/guestfs.pod:2643
msgid ""
"The detailed format of structures is in C<src/guestfs_protocol.x> (note: "
"this file is automatically generated)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2640
+#: ../src/guestfs.pod:2646
msgid ""
"There are two broad cases, ordinary functions that don't have any C<FileIn> "
"and C<FileOut> parameters, which are handled with very simple request/reply "
@@ -45117,17 +45355,17 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2647
+#: ../src/guestfs.pod:2653
msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2649
+#: ../src/guestfs.pod:2655
msgid "For ordinary functions, the request message is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2651
+#: ../src/guestfs.pod:2657
#, no-wrap
msgid ""
" total length (header + arguments,\n"
@@ -45138,7 +45376,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2656
+#: ../src/guestfs.pod:2662
msgid ""
"The total length field allows the daemon to allocate a fixed size buffer "
"into which it slurps the rest of the message. As a result, the total length "
@@ -45147,21 +45385,21 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2662
+#: ../src/guestfs.pod:2668
msgid ""
"Note also that many functions don't take any arguments, in which case the "
"C<guestfs_I<foo>_args> is completely omitted."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2665
+#: ../src/guestfs.pod:2671
msgid ""
"The header contains the procedure number (C<guestfs_proc>) which is how the "
"receiver knows what type of args structure to expect, or none at all."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2669
+#: ../src/guestfs.pod:2675
msgid ""
"For functions that take optional arguments, the optional arguments are "
"encoded in the C<guestfs_I<foo>_args> structure in the same way as ordinary "
@@ -45173,12 +45411,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2677
+#: ../src/guestfs.pod:2683
msgid "The reply message for ordinary functions is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2679
+#: ../src/guestfs.pod:2685
#, no-wrap
msgid ""
" total length (header + ret,\n"
@@ -45189,26 +45427,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2684
+#: ../src/guestfs.pod:2690
msgid ""
"As above the C<guestfs_I<foo>_ret> structure may be completely omitted for "
"functions that return no formal return values."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2687
+#: ../src/guestfs.pod:2693
msgid "As above the total length of the reply is limited to C<GUESTFS_MESSAGE_MAX>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2690
+#: ../src/guestfs.pod:2696
msgid ""
"In the case of an error, a flag is set in the header, and the reply message "
"is slightly changed:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2693
+#: ../src/guestfs.pod:2699
#, no-wrap
msgid ""
" total length (header + error,\n"
@@ -45219,19 +45457,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2698
+#: ../src/guestfs.pod:2704
msgid ""
"The C<guestfs_message_error> structure contains the error message as a "
"string."
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2701
+#: ../src/guestfs.pod:2707
msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2703
+#: ../src/guestfs.pod:2709
msgid ""
"A C<FileIn> parameter indicates that we transfer a file I<into> the guest. "
"The normal request message is sent (see above). However this is followed by "
@@ -45239,7 +45477,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2707
+#: ../src/guestfs.pod:2713
#, no-wrap
msgid ""
" total length (header + arguments,\n"
@@ -45253,12 +45491,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2715
+#: ../src/guestfs.pod:2721
msgid "The \"sequence of chunks\" is:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2717
+#: ../src/guestfs.pod:2723
#, no-wrap
msgid ""
" length of chunk (not including length word itself)\n"
@@ -45272,7 +45510,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2725
+#: ../src/guestfs.pod:2731
msgid ""
"The final chunk has the C<data_len> field set to zero. Additionally a flag "
"is set in the final chunk to indicate either successful completion or early "
@@ -45280,7 +45518,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2729
+#: ../src/guestfs.pod:2735
msgid ""
"At time of writing there are no functions that have more than one FileIn "
"parameter. However this is (theoretically) supported, by sending the "
@@ -45289,7 +45527,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2734
+#: ../src/guestfs.pod:2740
msgid ""
"Both the library (sender) I<and> the daemon (receiver) may cancel the "
"transfer. The library does this by sending a chunk with a special flag set "
@@ -45298,7 +45536,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2740
+#: ../src/guestfs.pod:2746
msgid ""
"The daemon may also cancel. It does this by writing a special word "
"C<GUESTFS_CANCEL_FLAG> to the socket. The library listens for this during "
@@ -45310,7 +45548,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2749
+#: ../src/guestfs.pod:2755
msgid ""
"This protocol allows the transfer of arbitrary sized files (no 32 bit "
"limit), and also files where the size is not known in advance (eg. from "
@@ -45320,19 +45558,19 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2755
+#: ../src/guestfs.pod:2761
msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2757
+#: ../src/guestfs.pod:2763
msgid ""
"The protocol for FileOut parameters is exactly the same as for FileIn "
"parameters, but with the roles of daemon and library reversed."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2760
+#: ../src/guestfs.pod:2766
#, no-wrap
msgid ""
" total length (header + ret,\n"
@@ -45346,12 +45584,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2768
+#: ../src/guestfs.pod:2774
msgid "INITIAL MESSAGE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2770
+#: ../src/guestfs.pod:2776
msgid ""
"When the daemon launches it sends an initial word (C<GUESTFS_LAUNCH_FLAG>) "
"which indicates that the guest and daemon is alive. This is what "
@@ -45359,12 +45597,12 @@ msgid ""
msgstr ""
#. type: =head3
-#: ../src/guestfs.pod:2774
+#: ../src/guestfs.pod:2780
msgid "PROGRESS NOTIFICATION MESSAGES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2776
+#: ../src/guestfs.pod:2782
msgid ""
"The daemon may send progress notification messages at any time. These are "
"distinguished by the normal length word being replaced by "
@@ -45372,7 +45610,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2780
+#: ../src/guestfs.pod:2786
msgid ""
"The library turns them into progress callbacks (see "
"L</GUESTFS_EVENT_PROGRESS>) if there is a callback registered, or discards "
@@ -45380,7 +45618,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2784
+#: ../src/guestfs.pod:2790
msgid ""
"The daemon self-limits the frequency of progress messages it sends (see "
"C<daemon/proto.c:notify_progress>). Not all calls generate progress "
@@ -45388,12 +45626,12 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2788
+#: ../src/guestfs.pod:2794
msgid "LIBGUESTFS VERSION NUMBERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2790
+#: ../src/guestfs.pod:2796
msgid ""
"Since April 2010, libguestfs has started to make separate development and "
"stable releases, along with corresponding branches in our git repository. "
@@ -45401,7 +45639,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2795
+#: ../src/guestfs.pod:2801
#, no-wrap
msgid ""
" even numbers for stable: 1.2.x, 1.4.x, ...\n"
@@ -45418,12 +45656,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2806
+#: ../src/guestfs.pod:2812
msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2808
+#: ../src/guestfs.pod:2814
msgid ""
"As time passes we cherry pick fixes from the development branch and backport "
"those into the stable branch, the effect being that the stable branch should "
@@ -45433,26 +45671,26 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2814
+#: ../src/guestfs.pod:2820
msgid "Our criteria for backporting changes are:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2820
+#: ../src/guestfs.pod:2826
msgid ""
"Documentation changes which don't affect any code are backported unless the "
"documentation refers to a future feature which is not in stable."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2826
+#: ../src/guestfs.pod:2832
msgid ""
"Bug fixes which are not controversial, fix obvious problems, and have been "
"well tested are backported."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2831
+#: ../src/guestfs.pod:2837
msgid ""
"Simple rearrangements of code which shouldn't affect how it works get "
"backported. This is so that the code in the two branches doesn't get too "
@@ -45460,7 +45698,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2837
+#: ../src/guestfs.pod:2843
msgid ""
"We I<don't> backport new features, new APIs, new tools etc, except in one "
"exceptional case: the new feature is required in order to implement an "
@@ -45468,7 +45706,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2843
+#: ../src/guestfs.pod:2849
msgid ""
"A new stable branch starts when we think the new features in development are "
"substantial and compelling enough over the current stable branch to warrant "
@@ -45479,17 +45717,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:2851
+#: ../src/guestfs.pod:2857
msgid "EXTENDING LIBGUESTFS"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2853
+#: ../src/guestfs.pod:2859
msgid "ADDING A NEW API ACTION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2855
+#: ../src/guestfs.pod:2861
msgid ""
"Large amounts of boilerplate code in libguestfs (RPC, bindings, "
"documentation) are generated, and this makes it easy to extend the "
@@ -45497,19 +45735,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2859
+#: ../src/guestfs.pod:2865
msgid "To add a new API action there are two changes:"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2865
+#: ../src/guestfs.pod:2871
msgid ""
"You need to add a description of the call (name, parameters, return type, "
"tests, documentation) to C<generator/generator_actions.ml>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2868
+#: ../src/guestfs.pod:2874
msgid ""
"There are two sorts of API action, depending on whether the call goes "
"through to the daemon in the appliance, or is serviced entirely by the "
@@ -45520,7 +45758,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2876
+#: ../src/guestfs.pod:2882
msgid ""
"Most new actions are of the first type, and get added to the "
"C<daemon_functions> list. Each function has a unique procedure number used "
@@ -45530,7 +45768,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2882
+#: ../src/guestfs.pod:2888
msgid ""
"For library-only actions of the second type, add to the "
"C<non_daemon_functions> list. Since these functions are serviced by the "
@@ -45540,36 +45778,36 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2890
+#: ../src/guestfs.pod:2896
msgid "Implement the action (in C):"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2892
+#: ../src/guestfs.pod:2898
msgid ""
"For daemon actions, implement the function C<do_E<lt>nameE<gt>> in the "
"C<daemon/> directory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2895
+#: ../src/guestfs.pod:2901
msgid ""
"For library actions, implement the function C<guestfs__E<lt>nameE<gt>> "
"(note: double underscore) in the C<src/> directory."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2898
+#: ../src/guestfs.pod:2904
msgid "In either case, use another function as an example of what to do."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2902
+#: ../src/guestfs.pod:2908
msgid "After making these changes, use C<make> to compile."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2904
+#: ../src/guestfs.pod:2910
msgid ""
"Note that you don't need to implement the RPC, language bindings, manual "
"pages or anything else. It's all automatically generated from the OCaml "
@@ -45577,12 +45815,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2908
+#: ../src/guestfs.pod:2914
msgid "ADDING TESTS FOR AN API ACTION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2910
+#: ../src/guestfs.pod:2916
msgid ""
"You can supply zero or as many tests as you want per API call. The tests "
"can either be added as part of the API description "
@@ -45592,61 +45830,61 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2917
+#: ../src/guestfs.pod:2923
msgid ""
"The following describes the test environment used when you add an API test "
"in C<generator_actions.ml>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2920
+#: ../src/guestfs.pod:2926
msgid "The test environment has 4 block devices:"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2924
+#: ../src/guestfs.pod:2930
msgid "C</dev/sda> 500MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2926
+#: ../src/guestfs.pod:2932
msgid "General block device for testing."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2928
+#: ../src/guestfs.pod:2934
msgid "C</dev/sdb> 50MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2930
+#: ../src/guestfs.pod:2936
msgid ""
"C</dev/sdb1> is an ext2 filesystem used for testing filesystem write "
"operations."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2933
+#: ../src/guestfs.pod:2939
msgid "C</dev/sdc> 10MB"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2935
+#: ../src/guestfs.pod:2941
msgid "Used in a few tests where two block devices are needed."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:2937
+#: ../src/guestfs.pod:2943
msgid "C</dev/sdd>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2939
+#: ../src/guestfs.pod:2945
msgid "ISO with fixed content (see C<images/test.iso>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2943
+#: ../src/guestfs.pod:2949
msgid ""
"To be able to run the tests in a reasonable amount of time, the libguestfs "
"appliance and block devices are reused between tests. So don't try testing "
@@ -45654,7 +45892,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2947
+#: ../src/guestfs.pod:2953
msgid ""
"Each test starts with an initial scenario, selected using one of the "
"C<Init*> expressions, described in C<generator/generator_types.ml>. These "
@@ -45664,7 +45902,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2953
+#: ../src/guestfs.pod:2959
msgid ""
"You can add a prerequisite clause to any individual test. This is a "
"run-time check, which, if it fails, causes the test to be skipped. Useful "
@@ -45674,14 +45912,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2959
+#: ../src/guestfs.pod:2965
msgid ""
"In addition, packagers can skip individual tests by setting environment "
"variables before running C<make check>."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2962
+#: ../src/guestfs.pod:2968
#, no-wrap
msgid ""
" SKIP_TEST_<CMD>_<NUM>=1\n"
@@ -45689,12 +45927,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2964
+#: ../src/guestfs.pod:2970
msgid "eg: C<SKIP_TEST_COMMAND_3=1> skips test #3 of L</guestfs_command>."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2968
+#: ../src/guestfs.pod:2974
#, no-wrap
msgid ""
" SKIP_TEST_<CMD>=1\n"
@@ -45702,17 +45940,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2970
+#: ../src/guestfs.pod:2976
msgid "eg: C<SKIP_TEST_ZEROFREE=1> skips all L</guestfs_zerofree> tests."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2972
+#: ../src/guestfs.pod:2978
msgid "Packagers can run only certain tests by setting for example:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:2974
+#: ../src/guestfs.pod:2980
#, no-wrap
msgid ""
" TEST_ONLY=\"vfs_type zerofree\"\n"
@@ -45720,29 +45958,29 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2976
+#: ../src/guestfs.pod:2982
msgid ""
"See C<tests/c-api/tests.c> for more details of how these environment "
"variables work."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2979
+#: ../src/guestfs.pod:2985
msgid "DEBUGGING NEW API ACTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2981
+#: ../src/guestfs.pod:2987
msgid "Test new actions work before submitting them."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2983
+#: ../src/guestfs.pod:2989
msgid "You can use guestfish to try out new commands."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2985
+#: ../src/guestfs.pod:2991
msgid ""
"Debugging the daemon is a problem because it runs inside a minimal "
"environment. However you can fprintf messages in the daemon to stderr, and "
@@ -45750,12 +45988,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:2989
+#: ../src/guestfs.pod:2995
msgid "FORMATTING CODE AND OTHER CONVENTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2991
+#: ../src/guestfs.pod:2997
msgid ""
"Our C source code generally adheres to some basic code-formatting "
"conventions. The existing code base is not totally consistent on this "
@@ -45765,14 +46003,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:2997
+#: ../src/guestfs.pod:3003
msgid ""
"If you use Emacs, add the following to one of one of your start-up files "
"(e.g., ~/.emacs), to help ensure that you get indentation right:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3000
+#: ../src/guestfs.pod:3006
#, no-wrap
msgid ""
" ;;; In libguestfs, indent with spaces everywhere (not TABs).\n"
@@ -45788,7 +46026,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3010
+#: ../src/guestfs.pod:3016
#, no-wrap
msgid ""
" ;;; When editing C sources in libguestfs, use this style.\n"
@@ -45806,12 +46044,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3022
+#: ../src/guestfs.pod:3028
msgid "Enable warnings when compiling (and fix any problems this finds):"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3025
+#: ../src/guestfs.pod:3031
#, no-wrap
msgid ""
" ./configure --enable-gcc-warnings\n"
@@ -45819,12 +46057,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3027
+#: ../src/guestfs.pod:3033
msgid "Useful targets are:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3029
+#: ../src/guestfs.pod:3035
#, no-wrap
msgid ""
" make syntax-check -j1 -k # checks for various syntax and\n"
@@ -45833,7 +46071,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3032
+#: ../src/guestfs.pod:3038
#, no-wrap
msgid ""
" make check # runs the test suite\n"
@@ -45841,7 +46079,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3034
+#: ../src/guestfs.pod:3040
#, no-wrap
msgid ""
" make extra-tests # in-depth testing using valgrind\n"
@@ -45850,43 +46088,43 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3037
+#: ../src/guestfs.pod:3043
msgid "DAEMON CUSTOM PRINTF FORMATTERS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3039
+#: ../src/guestfs.pod:3045
msgid ""
"In the daemon code we have created custom printf formatters C<%Q> and C<%R>, "
"which are used to do shell quoting."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3044
+#: ../src/guestfs.pod:3050
msgid "%Q"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3046
+#: ../src/guestfs.pod:3052
msgid ""
"Simple shell quoted string. Any spaces or other shell characters are "
"escaped for you."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3049
+#: ../src/guestfs.pod:3055
msgid "%R"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3051
+#: ../src/guestfs.pod:3057
msgid ""
"Same as C<%Q> except the string is treated as a path which is prefixed by "
"the sysroot."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3058
+#: ../src/guestfs.pod:3064
#, no-wrap
msgid ""
" asprintf (&cmd, \"cat %R\", path);\n"
@@ -45894,12 +46132,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3060
+#: ../src/guestfs.pod:3066
msgid "would produce C<cat /sysroot/some\\ path\\ with\\ spaces>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3062
+#: ../src/guestfs.pod:3068
msgid ""
"I<Note:> Do I<not> use these when you are passing parameters to the "
"C<command{,r,v,rv}()> functions. These parameters do NOT need to be quoted "
@@ -45908,12 +46146,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3068
+#: ../src/guestfs.pod:3074
msgid "SUBMITTING YOUR NEW API ACTIONS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3070
+#: ../src/guestfs.pod:3076
msgid ""
"Submit patches to the mailing list: "
"L<http://www.redhat.com/mailman/listinfo/libguestfs> and CC to "
@@ -45921,17 +46159,17 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3074
+#: ../src/guestfs.pod:3080
msgid "INTERNATIONALIZATION (I18N) SUPPORT"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3076
+#: ../src/guestfs.pod:3082
msgid "We support i18n (gettext anyhow) in the library."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3078
+#: ../src/guestfs.pod:3084
msgid ""
"However many messages come from the daemon, and we don't translate those at "
"the moment. One reason is that the appliance generally has all locale files "
@@ -45940,103 +46178,103 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3084
+#: ../src/guestfs.pod:3090
msgid ""
"Debugging messages are never translated, since they are intended for the "
"programmers."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3087
+#: ../src/guestfs.pod:3093
msgid "SOURCE CODE SUBDIRECTORIES"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3091
+#: ../src/guestfs.pod:3097
msgid "C<align>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3093
+#: ../src/guestfs.pod:3099
msgid "L<virt-alignment-scan(1)> command and documentation."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3097
+#: ../src/guestfs.pod:3103
msgid "The libguestfs appliance, build scripts and so on."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3099
+#: ../src/guestfs.pod:3105
msgid "C<cat>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3101
+#: ../src/guestfs.pod:3107
msgid ""
"The L<virt-cat(1)>, L<virt-filesystems(1)> and L<virt-ls(1)> commands and "
"documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3104
+#: ../src/guestfs.pod:3110
msgid "C<contrib>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3106
+#: ../src/guestfs.pod:3112
msgid "Outside contributions, experimental parts."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3108
+#: ../src/guestfs.pod:3114
msgid "C<daemon>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3110
+#: ../src/guestfs.pod:3116
msgid ""
"The daemon that runs inside the libguestfs appliance and carries out "
"actions."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3113
+#: ../src/guestfs.pod:3119
msgid "C<df>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3115
+#: ../src/guestfs.pod:3121
msgid "L<virt-df(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3117
+#: ../src/guestfs.pod:3123
msgid "C<edit>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3119
+#: ../src/guestfs.pod:3125
msgid "L<virt-edit(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3121
+#: ../src/guestfs.pod:3127
msgid "C<examples>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3123
+#: ../src/guestfs.pod:3129
msgid "C API example code."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3125
+#: ../src/guestfs.pod:3131
msgid "C<fish>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3127
+#: ../src/guestfs.pod:3133
msgid ""
"L<guestfish(1)>, the command-line shell, and various shell scripts built on "
"top such as L<virt-copy-in(1)>, L<virt-copy-out(1)>, L<virt-tar-in(1)>, "
@@ -46044,79 +46282,79 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3133
+#: ../src/guestfs.pod:3139
msgid "L<virt-format(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3135
+#: ../src/guestfs.pod:3141
msgid "C<fuse>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3137
+#: ../src/guestfs.pod:3143
msgid "L<guestmount(1)>, FUSE (userspace filesystem) built on top of libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3139
+#: ../src/guestfs.pod:3145
msgid "C<generator>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3141
+#: ../src/guestfs.pod:3147
msgid ""
"The crucially important generator, used to automatically generate large "
"amounts of boilerplate C code for things like RPC and bindings."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3144
+#: ../src/guestfs.pod:3150
msgid "C<inspector>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3146
+#: ../src/guestfs.pod:3152
msgid "L<virt-inspector(1)>, the virtual machine image inspector."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3148
+#: ../src/guestfs.pod:3154
msgid "C<logo>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3150
+#: ../src/guestfs.pod:3156
msgid "Logo used on the website. The fish is called Arthur by the way."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3152
+#: ../src/guestfs.pod:3158
msgid "C<m4>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3154
+#: ../src/guestfs.pod:3160
msgid "M4 macros used by autoconf."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3156
+#: ../src/guestfs.pod:3162
msgid "C<po>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3158
+#: ../src/guestfs.pod:3164
msgid "Translations of simple gettext strings."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3160
+#: ../src/guestfs.pod:3166
msgid "C<po-docs>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3162
+#: ../src/guestfs.pod:3168
msgid ""
"The build infrastructure and PO files for translations of manpages and POD "
"files. Eventually this will be combined with the C<po> directory, but that "
@@ -46124,149 +46362,149 @@ msgid ""
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3166
+#: ../src/guestfs.pod:3172
msgid "C<rescue>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3168
+#: ../src/guestfs.pod:3174
msgid "L<virt-rescue(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3170
+#: ../src/guestfs.pod:3176
msgid "C<resize>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3172
+#: ../src/guestfs.pod:3178
msgid "L<virt-resize(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3174
+#: ../src/guestfs.pod:3180
msgid "C<sparsify>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3176
+#: ../src/guestfs.pod:3182
msgid "L<virt-sparsify(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3178
+#: ../src/guestfs.pod:3184
msgid "C<src>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3180
+#: ../src/guestfs.pod:3186
msgid "Source code to the C library."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3182
+#: ../src/guestfs.pod:3188
msgid "C<sysprep>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3184
+#: ../src/guestfs.pod:3190
msgid "L<virt-sysprep(1)> command and documentation."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3186
+#: ../src/guestfs.pod:3192
msgid "C<test-tool>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3188
+#: ../src/guestfs.pod:3194
msgid ""
"Test tool for end users to test if their qemu/kernel combination will work "
"with libguestfs."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3191
+#: ../src/guestfs.pod:3197
msgid "C<tests>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3193
+#: ../src/guestfs.pod:3199
msgid "Tests."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3195
+#: ../src/guestfs.pod:3201
msgid "C<tools>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3197
+#: ../src/guestfs.pod:3203
msgid "Command line tools written in Perl (L<virt-win-reg(1)> and many others)."
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3199
+#: ../src/guestfs.pod:3205
msgid "C<csharp>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3201
+#: ../src/guestfs.pod:3207
msgid "C<erlang>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3203
+#: ../src/guestfs.pod:3209
msgid "C<gobject>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3205
+#: ../src/guestfs.pod:3211
msgid "C<haskell>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3207
+#: ../src/guestfs.pod:3213
msgid "C<java>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3209
+#: ../src/guestfs.pod:3215
msgid "C<ocaml>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3211
+#: ../src/guestfs.pod:3217
msgid "C<php>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3213
+#: ../src/guestfs.pod:3219
msgid "C<perl>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3215
+#: ../src/guestfs.pod:3221
msgid "C<python>"
msgstr ""
#. type: =item
-#: ../src/guestfs.pod:3217
+#: ../src/guestfs.pod:3223
msgid "C<ruby>"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3219
+#: ../src/guestfs.pod:3225
msgid "Language bindings."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3223
+#: ../src/guestfs.pod:3229
msgid "MAKING A STABLE RELEASE"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3225
+#: ../src/guestfs.pod:3231
msgid ""
"When we make a stable release, there are several steps documented here. See "
"L</LIBGUESTFS VERSION NUMBERS> for general information about the stable "
@@ -46274,32 +46512,32 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3233
+#: ../src/guestfs.pod:3239
msgid "Check C<make && make check> works on at least Fedora, Debian and Ubuntu."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3238
+#: ../src/guestfs.pod:3244
msgid "Finalize RELEASE-NOTES."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3242
+#: ../src/guestfs.pod:3248
msgid "Update ROADMAP."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3246
+#: ../src/guestfs.pod:3252
msgid "Run C<src/api-support/update-from-tarballs.sh>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3250
+#: ../src/guestfs.pod:3256
msgid "Push and pull from Transifex."
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3254
+#: ../src/guestfs.pod:3260
#, no-wrap
msgid ""
" tx push -s\n"
@@ -46307,12 +46545,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3256
+#: ../src/guestfs.pod:3262
msgid "to push the latest POT files to Transifex. Then run:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3258
+#: ../src/guestfs.pod:3264
#, no-wrap
msgid ""
" ./tx-pull.sh\n"
@@ -46320,24 +46558,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3260
+#: ../src/guestfs.pod:3266
msgid "which is a wrapper to pull the latest translated C<*.po> files."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3264
+#: ../src/guestfs.pod:3270
msgid ""
"Create new stable and development directories under "
"L<http://libguestfs.org/download>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3269
+#: ../src/guestfs.pod:3275
msgid "Create the branch in git:"
msgstr ""
#. type: verbatim
-#: ../src/guestfs.pod:3271
+#: ../src/guestfs.pod:3277
#, no-wrap
msgid ""
" git tag -a 1.XX.0 -m \"Version 1.XX.0 (stable)\"\n"
@@ -46348,17 +46586,17 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../src/guestfs.pod:3278
+#: ../src/guestfs.pod:3284
msgid "LIMITS"
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3280
+#: ../src/guestfs.pod:3286
msgid "PROTOCOL LIMITS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3282
+#: ../src/guestfs.pod:3288
msgid ""
"Internally libguestfs uses a message-based protocol to pass API calls and "
"their responses to and from a small \"appliance\" (see L</INTERNALS> for "
@@ -46369,7 +46607,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3290
+#: ../src/guestfs.pod:3296
msgid ""
"A simple call such as L</guestfs_cat> returns its result (the file data) in "
"a simple string. Because this string is at some point internally encoded as "
@@ -46378,7 +46616,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3296
+#: ../src/guestfs.pod:3302
msgid ""
"In order to transfer large files into and out of the guest filesystem, you "
"need to use particular calls that support this. The sections L</UPLOADING> "
@@ -46386,24 +46624,24 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3300
+#: ../src/guestfs.pod:3306
msgid ""
"You might also consider mounting the disk image using our FUSE filesystem "
"support (L<guestmount(1)>)."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3303
+#: ../src/guestfs.pod:3309
msgid "MAXIMUM NUMBER OF DISKS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3305
+#: ../src/guestfs.pod:3311
msgid "When using virtio disks (the default) the current limit is B<25> disks."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3308
+#: ../src/guestfs.pod:3314
msgid ""
"Virtio itself consumes 1 virtual PCI slot per disk, and PCI is limited to 31 "
"slots. However febootstrap only understands disks with names C</dev/vda> "
@@ -46412,14 +46650,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3313
+#: ../src/guestfs.pod:3319
msgid ""
"We are working to substantially raise this limit in future versions but it "
"requires complex changes to qemu."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3316
+#: ../src/guestfs.pod:3322
msgid ""
"In future versions of libguestfs it should also be possible to \"hot plug\" "
"disks (add and remove disks after calling L</guestfs_launch>). This also "
@@ -46427,41 +46665,41 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3320
+#: ../src/guestfs.pod:3326
msgid "MAXIMUM NUMBER OF PARTITIONS PER DISK"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3322
+#: ../src/guestfs.pod:3328
msgid "Virtio limits the maximum number of partitions per disk to B<15>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3324
+#: ../src/guestfs.pod:3330
msgid ""
"This is because it reserves 4 bits for the minor device number (thus "
"C</dev/vda>, and C</dev/vda1> through C</dev/vda15>)."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3327
+#: ../src/guestfs.pod:3333
msgid ""
"If you attach a disk with more than 15 partitions, the extra partitions are "
"ignored by libguestfs."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3330
+#: ../src/guestfs.pod:3336
msgid "MAXIMUM SIZE OF A DISK"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3332
+#: ../src/guestfs.pod:3338
msgid "Probably the limit is between 2**63-1 and 2**64-1 bytes."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3334
+#: ../src/guestfs.pod:3340
msgid ""
"We have tested block devices up to 1 exabyte (2**60 or "
"1,152,921,504,606,846,976 bytes) using sparse files backed by an XFS host "
@@ -46469,7 +46707,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3338
+#: ../src/guestfs.pod:3344
msgid ""
"Although libguestfs probably does not impose any limit, the underlying host "
"storage will. If you store disk images on a host ext4 filesystem, then the "
@@ -46479,19 +46717,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3344
+#: ../src/guestfs.pod:3350
msgid ""
"For the hugest disk image files, we recommend using XFS on the host for "
"storage."
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3347
+#: ../src/guestfs.pod:3353
msgid "MAXIMUM SIZE OF A PARTITION"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3349
+#: ../src/guestfs.pod:3355
msgid ""
"The MBR (ie. classic MS-DOS) partitioning scheme uses 32 bit sector "
"numbers. Assuming a 512 byte sector size, this means that MBR cannot "
@@ -46499,7 +46737,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3353
+#: ../src/guestfs.pod:3359
msgid ""
"It is recommended that you use GPT partitions on disks which are larger than "
"this size. GPT uses 64 bit sector numbers and so can address partitions "
@@ -46507,12 +46745,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3358
+#: ../src/guestfs.pod:3364
msgid "MAXIMUM SIZE OF A FILESYSTEM, FILES, DIRECTORIES"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3360
+#: ../src/guestfs.pod:3366
msgid ""
"This depends on the filesystem type. libguestfs itself does not impose any "
"known limit. Consult Wikipedia or the filesystem documentation to find out "
@@ -46520,12 +46758,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3364
+#: ../src/guestfs.pod:3370
msgid "MAXIMUM UPLOAD AND DOWNLOAD"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3366
+#: ../src/guestfs.pod:3372
msgid ""
"The API functions L</guestfs_upload>, L</guestfs_download>, "
"L</guestfs_tar_in>, L</guestfs_tar_out> and the like allow unlimited sized "
@@ -46533,12 +46771,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../src/guestfs.pod:3370
+#: ../src/guestfs.pod:3376
msgid "INSPECTION LIMITS"
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3372
+#: ../src/guestfs.pod:3378
msgid ""
"The inspection code has several arbitrary limits on things like the size of "
"Windows Registry hive it will read, and the length of product name. These "
@@ -46548,33 +46786,33 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3398
+#: ../src/guestfs.pod:3404
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as calling C<guestfs_set_verbose (g, 1)>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3410
+#: ../src/guestfs.pod:3416
msgid ""
"Set the path that libguestfs uses to search for a supermin appliance. See "
"the discussion of paths in section L</PATH> above."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3419
+#: ../src/guestfs.pod:3425
msgid "See also L</QEMU WRAPPERS> above."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3423
+#: ../src/guestfs.pod:3429
msgid ""
"Set C<LIBGUESTFS_TRACE=1> to enable command traces. This has the same "
"effect as calling C<guestfs_set_trace (g, 1)>."
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3441
+#: ../src/guestfs.pod:3447
msgid ""
"L<guestfs-examples(3)>, L<guestfs-erlang(3)>, L<guestfs-java(3)>, "
"L<guestfs-ocaml(3)>, L<guestfs-perl(3)>, L<guestfs-python(3)>, "
@@ -46593,7 +46831,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../src/guestfs.pod:3483
+#: ../src/guestfs.pod:3489
msgid ""
"Tools with a similar purpose: L<fdisk(8)>, L<parted(8)>, L<kpartx(8)>, "
"L<lvm(8)>, L<disktype(1)>."
@@ -49026,88 +49264,88 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../tools/virt-win-reg.pl:556
+#: ../tools/virt-win-reg.pl:546
msgid "SUPPORTED SYSTEMS"
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:558
+#: ../tools/virt-win-reg.pl:548
msgid ""
"The program currently supports Windows NT-derived guests starting with "
"Windows XP through to at least Windows 7."
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:561
+#: ../tools/virt-win-reg.pl:551
msgid "The following Registry keys are supported:"
msgstr ""
#. type: =item
-#: ../tools/virt-win-reg.pl:565
+#: ../tools/virt-win-reg.pl:555
msgid "C<HKEY_LOCAL_MACHINE\\SAM>"
msgstr ""
#. type: =item
-#: ../tools/virt-win-reg.pl:567
+#: ../tools/virt-win-reg.pl:557
msgid "C<HKEY_LOCAL_MACHINE\\SECURITY>"
msgstr ""
#. type: =item
-#: ../tools/virt-win-reg.pl:569
+#: ../tools/virt-win-reg.pl:559
msgid "C<HKEY_LOCAL_MACHINE\\SOFTWARE>"
msgstr ""
#. type: =item
-#: ../tools/virt-win-reg.pl:571
+#: ../tools/virt-win-reg.pl:561
msgid "C<HKEY_LOCAL_MACHINE\\SYSTEM>"
msgstr ""
#. type: =item
-#: ../tools/virt-win-reg.pl:573
+#: ../tools/virt-win-reg.pl:563
msgid "C<HKEY_USERS\\.DEFAULT>"
msgstr ""
#. type: =item
-#: ../tools/virt-win-reg.pl:575
+#: ../tools/virt-win-reg.pl:565
msgid "C<HKEY_USERS\\I<SID>>"
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:577
+#: ../tools/virt-win-reg.pl:567
msgid "where I<SID> is a Windows User SID (eg. C<S-1-5-18>)."
msgstr ""
#. type: =item
-#: ../tools/virt-win-reg.pl:579
+#: ../tools/virt-win-reg.pl:569
msgid "C<HKEY_USERS\\I<username>>"
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:581
+#: ../tools/virt-win-reg.pl:571
msgid "where I<username> is a local user name (this is a libguestfs extension)."
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:585
+#: ../tools/virt-win-reg.pl:575
msgid ""
"You can use C<HKLM> as a shorthand for C<HKEY_LOCAL_MACHINE>, and C<HKU> for "
"C<HKEY_USERS>."
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:588
+#: ../tools/virt-win-reg.pl:578
msgid ""
"The literal keys C<HKEY_USERS\\$SID> and C<HKEY_CURRENT_USER> are not "
"supported (there is no \"current user\")."
msgstr ""
#. type: =head1
-#: ../tools/virt-win-reg.pl:591
+#: ../tools/virt-win-reg.pl:581
msgid "ENCODING"
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:593
+#: ../tools/virt-win-reg.pl:583
msgid ""
"C<virt-win-reg> expects that regedit files have already been reencoded in "
"the local encoding. Usually on Linux hosts, this means UTF-8 with "
@@ -49117,14 +49355,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:599
+#: ../tools/virt-win-reg.pl:589
msgid ""
"To reencode a file from Windows format to Linux (before processing it with "
"the I<--merge> option), you would do something like this:"
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:602
+#: ../tools/virt-win-reg.pl:592
#, no-wrap
msgid ""
" iconv -f utf-16le -t utf-8 < win.reg | dos2unix > linux.reg\n"
@@ -49132,14 +49370,14 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:604
+#: ../tools/virt-win-reg.pl:594
msgid ""
"To go in the opposite direction, after exporting and before sending the file "
"to a Windows user, do something like this:"
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:607
+#: ../tools/virt-win-reg.pl:597
#, no-wrap
msgid ""
" unix2dos linux.reg | iconv -f utf-8 -t utf-16le > win.reg\n"
@@ -49147,12 +49385,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:609
+#: ../tools/virt-win-reg.pl:599
msgid "For more information about encoding, see L<Win::Hivex::Regedit(3)>."
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:611
+#: ../tools/virt-win-reg.pl:601
msgid ""
"If you are unsure about the current encoding, use the L<file(1)> command. "
"Recent versions of Windows regedit.exe produce a UTF-16LE file with "
@@ -49160,7 +49398,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:615
+#: ../tools/virt-win-reg.pl:605
#, no-wrap
msgid ""
" $ file software.reg\n"
@@ -49170,17 +49408,17 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:619
+#: ../tools/virt-win-reg.pl:609
msgid "This file would need conversion before you could I<--merge> it."
msgstr ""
#. type: =head1
-#: ../tools/virt-win-reg.pl:621
+#: ../tools/virt-win-reg.pl:611
msgid "CurrentControlSet etc."
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:623
+#: ../tools/virt-win-reg.pl:613
msgid ""
"Registry keys like C<CurrentControlSet> don't really exist in the Windows "
"Registry at the level of the hive file, and therefore you cannot modify "
@@ -49188,7 +49426,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:627
+#: ../tools/virt-win-reg.pl:617
msgid ""
"C<CurrentControlSet> is usually an alias for C<ControlSet001>. In some "
"circumstances it might refer to another control set. The way to find out is "
@@ -49196,7 +49434,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:631
+#: ../tools/virt-win-reg.pl:621
#, no-wrap
msgid ""
" # virt-win-reg WindowsGuest 'HKLM\\SYSTEM\\Select'\n"
@@ -49209,27 +49447,27 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:638
+#: ../tools/virt-win-reg.pl:628
msgid "\"Current\" is the one which Windows will choose when it boots."
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:640
+#: ../tools/virt-win-reg.pl:630
msgid "Similarly, other C<Current...> keys in the path may need to be replaced."
msgstr ""
#. type: =head1
-#: ../tools/virt-win-reg.pl:643
+#: ../tools/virt-win-reg.pl:633
msgid "DELETING REGISTRY KEYS AND VALUES"
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:645
+#: ../tools/virt-win-reg.pl:635
msgid "To delete a whole registry key, use the syntax:"
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:647
+#: ../tools/virt-win-reg.pl:637
#, no-wrap
msgid ""
" [-HKEY_LOCAL_MACHINE\\Foo]\n"
@@ -49237,12 +49475,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:649
+#: ../tools/virt-win-reg.pl:639
msgid "To delete a single value within a key, use the syntax:"
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:651
+#: ../tools/virt-win-reg.pl:641
#, no-wrap
msgid ""
" [HKEY_LOCAL_MACHINE\\Foo]\n"
@@ -49251,24 +49489,24 @@ msgid ""
msgstr ""
#. type: =head1
-#: ../tools/virt-win-reg.pl:654
+#: ../tools/virt-win-reg.pl:644
msgid "WINDOWS TIPS"
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:656
+#: ../tools/virt-win-reg.pl:646
msgid ""
"Note that some of these tips modify the guest disk image. The guest I<must> "
"be shut off, else you will get disk corruption."
msgstr ""
#. type: =head2
-#: ../tools/virt-win-reg.pl:659
+#: ../tools/virt-win-reg.pl:649
msgid "RUNNING A BATCH SCRIPT WHEN A USER LOGS IN"
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:661
+#: ../tools/virt-win-reg.pl:651
msgid ""
"Prepare a DOS batch script, VBScript or executable. Upload this using "
"L<guestfish(1)>. For this example the script is called C<test.bat> and it "
@@ -49276,7 +49514,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:665
+#: ../tools/virt-win-reg.pl:655
#, no-wrap
msgid ""
" guestfish -i -d WindowsGuest upload test.bat /test.bat\n"
@@ -49284,12 +49522,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:667
+#: ../tools/virt-win-reg.pl:657
msgid "Prepare a regedit file containing the registry change:"
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:669
+#: ../tools/virt-win-reg.pl:659
#, no-wrap
msgid ""
" cat > test.reg <<'EOF'\n"
@@ -49300,7 +49538,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:674
+#: ../tools/virt-win-reg.pl:664
msgid ""
"In this example we use the key C<RunOnce> which means that the script will "
"run precisely once when the first user logs in. If you want it to run every "
@@ -49308,12 +49546,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:678
+#: ../tools/virt-win-reg.pl:668
msgid "Now update the registry:"
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:680
+#: ../tools/virt-win-reg.pl:670
#, no-wrap
msgid ""
" virt-win-reg --merge WindowsGuest test.reg\n"
@@ -49321,12 +49559,12 @@ msgid ""
msgstr ""
#. type: =head2
-#: ../tools/virt-win-reg.pl:682
+#: ../tools/virt-win-reg.pl:672
msgid "INSTALLING A SERVICE"
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:684
+#: ../tools/virt-win-reg.pl:674
msgid ""
"This section assumes you are familiar with Windows services, and you either "
"have a program which handles the Windows Service Control Protocol directly "
@@ -49335,7 +49573,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:689
+#: ../tools/virt-win-reg.pl:679
msgid ""
"First upload the program and optionally the service wrapper. In this case "
"the test program is called C<test.exe> and we are using the RHSrvAny "
@@ -49343,7 +49581,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:693
+#: ../tools/virt-win-reg.pl:683
#, no-wrap
msgid ""
" guestfish -i -d WindowsGuest <<EOF\n"
@@ -49354,7 +49592,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:698
+#: ../tools/virt-win-reg.pl:688
msgid ""
"Prepare a regedit file containing the registry changes. In this example, "
"the first registry change is needed for the service itself or the service "
@@ -49363,7 +49601,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:703
+#: ../tools/virt-win-reg.pl:693
#, no-wrap
msgid ""
" cat > service.reg <<'EOF'\n"
@@ -49378,7 +49616,7 @@ msgid ""
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:712
+#: ../tools/virt-win-reg.pl:702
#, no-wrap
msgid ""
" [HKLM\\SYSTEM\\ControlSet001\\services\\RHSrvAny\\Parameters]\n"
@@ -49389,7 +49627,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:723
+#: ../tools/virt-win-reg.pl:713
msgid ""
"For use of C<ControlSet001> see the section above in this manual page. You "
"may need to adjust this according to the control set that is in use by the "
@@ -49397,7 +49635,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:729
+#: ../tools/virt-win-reg.pl:719
msgid ""
"C<\"ObjectName\"> controls the privileges that the service will have. An "
"alternative is C<\"ObjectName\"=\"LocalSystem\"> which would be the most "
@@ -49405,19 +49643,19 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:735
+#: ../tools/virt-win-reg.pl:725
msgid ""
"For the meaning of the magic numbers, see this Microsoft KB article: "
"L<http://support.microsoft.com/kb/103000>."
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:740
+#: ../tools/virt-win-reg.pl:730
msgid "Update the registry:"
msgstr ""
#. type: verbatim
-#: ../tools/virt-win-reg.pl:742
+#: ../tools/virt-win-reg.pl:732
#, no-wrap
msgid ""
" virt-win-reg --merge WindowsGuest service.reg\n"
@@ -49425,7 +49663,7 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:746
+#: ../tools/virt-win-reg.pl:736
msgid ""
"Be careful when passing parameters containing C<\\> (backslash) in the "
"shell. Usually you will have to use 'single quotes' or double backslashes "
@@ -49433,12 +49671,12 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:750
+#: ../tools/virt-win-reg.pl:740
msgid "Paths and value names are case-insensitive."
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:759
+#: ../tools/virt-win-reg.pl:749
msgid ""
"L<hivex(3)>, L<hivexsh(1)>, L<hivexregedit(1)>, L<guestfs(3)>, "
"L<guestfish(1)>, L<virt-cat(1)>, L<Sys::Guestfs(3)>, "
@@ -49447,6 +49685,6 @@ msgid ""
msgstr ""
#. type: textblock
-#: ../tools/virt-win-reg.pl:778
+#: ../tools/virt-win-reg.pl:768
msgid "Copyright (C) 2010 Red Hat Inc."
msgstr ""