From fd4f05d176c804ba9dd1bda5f84f87d4e2bfbcc4 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 1 Oct 2012 16:30:08 +0100 Subject: Version 1.18.9. --- po-docs/libguestfs-docs.pot | 3072 +++++++++++++++++++++++-------------------- 1 file changed, 1655 insertions(+), 1417 deletions(-) (limited to 'po-docs/libguestfs-docs.pot') 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 \n" "Language-Team: LANGUAGE \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 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" 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)" 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)." 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) 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 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" 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" 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" 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" 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" 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" +"If you are a S customer using Red Hat Enterprise Linux, please " +"contact S: L" 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" 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." 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 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 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 flag when mounting. " "From guestfish, use:" msgstr "" #. type: verbatim -#: ../examples/guestfs-faq.pod:178 +#: ../examples/guestfs-faq.pod:177 #, no-wrap msgid "" " > 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 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 parameter because it is " "incompatible with C. 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 " " 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 11, RHEL E 5.3, EPEL 5" +#: ../examples/guestfs-faq.pod:228 +msgid "Fedora E 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" 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" +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 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" +msgstr "" + +#. type: =item +#: ../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 separately to " +"get Windows guest support." msgstr "" #. type: =item -#: ../examples/guestfs-faq.pod:247 +#: ../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" 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 (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" 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 3.14-2 from: " "L" 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 0.6.2-0ubuntu2.1 or E 0.6.2-0ubuntu3 from: " "L 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, unpack it, and start by " -"reading the README file." +"If your Linux distro has a working port of febootstrap (that is, Fedora, " +"S 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, 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 have febootstrap, you will need to use the \"fixed appliance " "method\". See: L" 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 or C." 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. If you find any problems, please let us know or file a bug." +msgstr "" + +#. type: textblock +#: ../examples/guestfs-faq.pod:378 +msgid "" +"L 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, 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 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" 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." 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 1.13.16, the mount command (L) " "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 1.13.16, replace mount with C, 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-\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 is defined, then " "C<$TMPDIR/.guestfs-EUIDE> 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 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." 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 " 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 (LGPLv2+ for " "the library and bindings) and C (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 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" 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" 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." 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." 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 to enable command traces, and/or " "L 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." 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." 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 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 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 " " msgstr "" #. type: =head2 -#: ../examples/guestfs-faq.pod:581 +#: ../examples/guestfs-faq.pod:637 msgid "Can I use C 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). 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 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 command, then disk is added read-write " "(unless you specify the C 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 is a program providing structured access to the " "L 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 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 "" " > 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 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?" 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 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) 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 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, L, L) use " "inspection to map VM paths. Other tools, such as L and " @@ -5414,7 +5515,7 @@ msgid "" msgstr "" #. type: textblock -#: ../examples/guestfs-faq.pod:709 +#: ../examples/guestfs-faq.pod:765 msgid "" "L 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 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, L, L." 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:" 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." msgstr "" -#. type: =head1 +#. type: textblock #: ../examples/guestfs-recipes.pod:120 +msgid "See also L." +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 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 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 from a VM into a local directory use L:" 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 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 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" 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 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:" 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 XML using the " "C 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" 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" 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" +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" +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" 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:" 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." 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" 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." 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 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" 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 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" -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 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" 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 " "L" 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 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" 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" 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 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 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 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" msgstr "" #. type: textblock -#: ../examples/guestfs-recipes.pod:419 +#: ../examples/guestfs-recipes.pod:472 msgid "" "L, L, L, " "L, L, L, " @@ -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 print C<===== TEST FINISHED OK =====>, report it as a bug. " +"It is very important that you include the B output of " +"C in your bug report. See the L 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" 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." 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 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 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, C 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 guest." msgstr "" #. type: textblock -#: ../examples/guestfs-testing.pod:75 +#: ../examples/guestfs-testing.pod:89 msgid "" "L 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 to C 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 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 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 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 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." 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 " "L" msgstr "" #. type: =head2 -#: ../examples/guestfs-testing.pod:141 +#: ../examples/guestfs-testing.pod:155 msgid "B<*> Edit a file in a B guest." msgstr "" #. type: textblock -#: ../examples/guestfs-testing.pod:143 +#: ../examples/guestfs-testing.pod:157 msgid "" "L 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 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 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 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 disk image or guest." msgstr "" #. type: textblock -#: ../examples/guestfs-testing.pod:229 +#: ../examples/guestfs-testing.pod:243 msgid "" "Use L to examine, rescue or repair a B 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 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, 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 still bootable after sparsifying? Is the resulting disk " "image smaller (use C to check)?" msgstr "" #. type: =head2 -#: ../examples/guestfs-testing.pod:262 +#: ../examples/guestfs-testing.pod:276 msgid "B<*> \"sysprep\" a B 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 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 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 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, L, L, " "L." @@ -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" 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" 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 except for the cached " "supermin appliance which defaults to C." 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." msgstr "" #. type: textblock #: ../src/guestfs.pod:43 msgid "" +"If you are having performance problems, read L. To " +"help test libguestfs, read L and " +"L." +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 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. 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. 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 (for the " @@ -40464,7 +40702,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:137 +#: ../src/guestfs.pod:143 msgid "" "Once L has been called you cannot add any more images. You " "can call L 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 means literally the first partition (C<1>) of the first " "disk image that we added (C). 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 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. There are " "several other variations of the C 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 as a newly allocated buffer containing the full " "content of that file (with some conditions: see also L 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 and defaulting to 022. See L." 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 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 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 and L. 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." 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 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 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 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 and L." 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. To create " "a file of all zeroes, use L (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. 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 and L." msgstr "" #. type: textblock -#: ../src/guestfs.pod:280 +#: ../src/guestfs.pod:286 msgid "" "However the fastest way to upload I is to " "turn them into a squashfs or CD ISO (see L 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 to B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:301 +#: ../src/guestfs.pod:307 msgid "" "Use L to copy a single file, or L 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." msgstr "" #. type: =item -#: ../src/guestfs.pod:307 +#: ../src/guestfs.pod:313 msgid "B to B" msgstr "" #. type: =item -#: ../src/guestfs.pod:309 +#: ../src/guestfs.pod:315 msgid "B to B" msgstr "" #. type: =item -#: ../src/guestfs.pod:311 +#: ../src/guestfs.pod:317 msgid "B to B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:313 +#: ../src/guestfs.pod:319 msgid "" "Use L, L, or " "L." 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) must be at least as large as the source " "(C). 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 to B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:334 +#: ../src/guestfs.pod:340 msgid "Use L. See L above." msgstr "" #. type: =item -#: ../src/guestfs.pod:336 +#: ../src/guestfs.pod:342 msgid "B to B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:338 +#: ../src/guestfs.pod:344 msgid "Use L. See L 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, L, L, " "L 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 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 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 is just designed for humans to read (mainly when using the " "L-equivalent command C)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:368 +#: ../src/guestfs.pod:374 msgid "" "L 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 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 and L 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)." 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 in this manpage." msgstr "" #. type: textblock -#: ../src/guestfs.pod:423 +#: ../src/guestfs.pod:429 msgid "" "I 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 and " "L (there are also variations)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:443 +#: ../src/guestfs.pod:449 msgid "" "The difference is that L 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 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 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 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 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." 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 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." 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 to identify LUKS-encrypted block devices (it " "returns the string C)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:530 +#: ../src/guestfs.pod:536 msgid "" "Then open these devices by calling L. 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 (where C 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 followed by L. 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 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 (q.v.) followed by L. The " @@ -41282,7 +41520,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:573 +#: ../src/guestfs.pod:579 msgid "" "L 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 then " "calling it will return an error with errno set to C (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 in the usual way." msgstr "" #. type: textblock -#: ../src/guestfs.pod:610 +#: ../src/guestfs.pod:616 msgid "" "Then call L. 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 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 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). 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 " "for more details. The L 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 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 to return the format of the operating " "system, which currently can be C (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, L 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 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 and " "L)" 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." 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. 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 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 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" 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 to read the C 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). See:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:759 +#: ../src/guestfs.pod:765 msgid "L" 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, L and " "L 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) 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 1.17.14, you usually had to call L " "before the resize. However, in C 1.17.14, L is called " @@ -41672,14 +41910,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:776 +#: ../src/guestfs.pod:782 msgid "" "The L 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 ' 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 with the C 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 is C<$g-Eadd_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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:809 +#: ../src/guestfs.pod:815 msgid "" "You can use the I 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" 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." msgstr "" #. type: =item -#: ../src/guestfs.pod:818 +#: ../src/guestfs.pod:824 msgid "B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:820 +#: ../src/guestfs.pod:826 msgid "See L." msgstr "" #. type: =item -#: ../src/guestfs.pod:822 +#: ../src/guestfs.pod:828 msgid "B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:824 +#: ../src/guestfs.pod:830 msgid "" "Experimental GObject bindings (with GObject Introspection support) are " "available. See the C directory in the source." msgstr "" #. type: =item -#: ../src/guestfs.pod:827 +#: ../src/guestfs.pod:833 msgid "B" 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" 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." msgstr "" #. type: =item -#: ../src/guestfs.pod:838 +#: ../src/guestfs.pod:844 msgid "B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:840 +#: ../src/guestfs.pod:846 msgid "See L." msgstr "" #. type: =item -#: ../src/guestfs.pod:842 +#: ../src/guestfs.pod:848 msgid "B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:844 +#: ../src/guestfs.pod:850 msgid "See L and L." msgstr "" #. type: =item -#: ../src/guestfs.pod:846 +#: ../src/guestfs.pod:852 msgid "B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:848 +#: ../src/guestfs.pod:854 msgid "" "For documentation see C 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:855 +#: ../src/guestfs.pod:861 msgid "See L." msgstr "" #. type: =item -#: ../src/guestfs.pod:857 +#: ../src/guestfs.pod:863 msgid "B" msgstr "" #. type: textblock -#: ../src/guestfs.pod:859 +#: ../src/guestfs.pod:865 msgid "See L." 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:865 +#: ../src/guestfs.pod:871 msgid "See L." 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: \"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 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 unmount " "all filesystems and call L 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 " @@ -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 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 L 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, 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 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, 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 doesn't do what people expect (open C for " "examination). It tries to run a guestfish command C 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. 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 is " "already expecting megabytes, this tries to create a 100 I (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) 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 and L. " @@ -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-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 or C)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1027 +#: ../src/guestfs.pod:1033 msgid "" "Use L or set the environment variable L " "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> 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 (or wherever), C, 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 This is B and has a tendency to eat " "babies. Use with caution." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1089 +#: ../src/guestfs.pod:1095 msgid "" "I 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 you can change how the library " "connects to the C daemon in L (read " @@ -42343,14 +42581,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1099 +#: ../src/guestfs.pod:1105 msgid "" "The normal attach method is C, 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> (where I is the path of a " "Unix domain socket) causes L 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 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 provides some help for getting the correct attach " "method. If you pass the C 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 "" " \n" @@ -42398,14 +42636,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1130 +#: ../src/guestfs.pod:1136 msgid "" "L extracts C and sets the attach " "method to C." 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 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 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 as the I. " "Internally C 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 applies to parameters. The L, " "L 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 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?" 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 " "then we continue with this algorithm." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1212 +#: ../src/guestfs.pod:1218 msgid "Replace initial C string with C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1214 +#: ../src/guestfs.pod:1220 msgid "For example, change C to C." 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 string with C." 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 or L 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, 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." 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)." 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 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)." 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) 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" 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)." 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 option to L). 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, 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 is the opaque type representing a connection handle. Create a " "handle by calling L. Call L 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 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 (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." 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 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 is only needed if B 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1526 +#: ../src/guestfs.pod:1532 msgid "guestfs_launch was called, I" msgstr "" #. type: textblock -#: ../src/guestfs.pod:1530 +#: ../src/guestfs.pod:1536 msgid "you made some changes, I" 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 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, L, 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. 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 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. 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 returns C 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. If there has not " "been an error since the handle was created, then this returns C." 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 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." 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 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 is not passed to the callback. To get that the callback must call " "L." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1657 +#: ../src/guestfs.pod:1663 msgid "" "Note that the message string C 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." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1663 +#: ../src/guestfs.pod:1669 msgid "If you set C to C then I 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 will be called if there is an out of memory situation. " "I." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1681 +#: ../src/guestfs.pod:1687 msgid "The default is to call L." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1683 +#: ../src/guestfs.pod:1689 msgid "You cannot set C to C. 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 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 there is a handy interactive command C 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, Cguestfs.hE> 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 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 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 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 \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. 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." 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 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)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1925 +#: ../src/guestfs.pod:1931 msgid "" "Note that libguestfs installs an L 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. (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, C, C, C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1965 +#: ../src/guestfs.pod:1971 msgid "" "The units of C are not defined, although for some operations C " "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:C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:1981 +#: ../src/guestfs.pod:1987 msgid "0 E= C E= C" 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 = C (I 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 and C, 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) and serial " "number (C) 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) is set before launch " "(L) 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) 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) 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 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) for all event classes in the " "C." 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. " @@ -44101,40 +44339,40 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2089 +#: ../src/guestfs.pod:2095 msgid "C should always be passed as 0." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2091 +#: ../src/guestfs.pod:2097 msgid "" "C 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 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 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), the opaque user pointer " "(C), the event class (eg. C), 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 and C contain a message buffer (if C, 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 and C 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 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, " "C and C. (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 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." 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 " "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 is the name to associate with this data, and C is an arbitrary " "pointer (which can be C). 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 you want, but your key should I 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 if either no data is found associated with " "C, or if the user previously set the C's C 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 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 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 returns the next key, pointer pair. The return " "value of this function is also C 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 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. 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, 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 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, " "C or C." 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:" 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. 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 These static markers are I 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 and run using the L " "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 "" " " 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 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 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, 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 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 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 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)." 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 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 CUIDE> (or in another " "directory if C 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 and L 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 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 " "CUIDE/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)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2588 +#: ../src/guestfs.pod:2594 msgid "" "The last disk added to qemu is the appliance itself (eg. C 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 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 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, 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) 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, 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 (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 " "and C 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_args> is completely omitted." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2665 +#: ../src/guestfs.pod:2671 msgid "" "The header contains the procedure number (C) 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_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_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." 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 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 parameter indicates that we transfer a file I 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 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 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 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) " "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) 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). 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 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." 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 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 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 CnameE> in the " "C directory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2895 +#: ../src/guestfs.pod:2901 msgid "" "For library actions, implement the function CnameE> " "(note: double underscore) in the C 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 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." 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 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 50MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2930 +#: ../src/guestfs.pod:2936 msgid "" "C is an ext2 filesystem used for testing filesystem write " "operations." msgstr "" #. type: =item -#: ../src/guestfs.pod:2933 +#: ../src/guestfs.pod:2939 msgid "C 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2939 +#: ../src/guestfs.pod:2945 msgid "ISO with fixed content (see C)." 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 expressions, described in C. 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." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2962 +#: ../src/guestfs.pod:2968 #, no-wrap msgid "" " SKIP_TEST__=1\n" @@ -45689,12 +45927,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2964 +#: ../src/guestfs.pod:2970 msgid "eg: C skips test #3 of L." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2968 +#: ../src/guestfs.pod:2974 #, no-wrap msgid "" " SKIP_TEST_=1\n" @@ -45702,17 +45940,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2970 +#: ../src/guestfs.pod:2976 msgid "eg: C skips all L 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 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3062 +#: ../src/guestfs.pod:3068 msgid "" "I Do I use these when you are passing parameters to the " "C 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 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3093 +#: ../src/guestfs.pod:3099 msgid "L 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3101 +#: ../src/guestfs.pod:3107 msgid "" "The L, L and L commands and " "documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3104 +#: ../src/guestfs.pod:3110 msgid "C" 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" 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3115 +#: ../src/guestfs.pod:3121 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3117 +#: ../src/guestfs.pod:3123 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3119 +#: ../src/guestfs.pod:3125 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3121 +#: ../src/guestfs.pod:3127 msgid "C" 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3127 +#: ../src/guestfs.pod:3133 msgid "" "L, the command-line shell, and various shell scripts built on " "top such as L, L, L, " @@ -46044,79 +46282,79 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3133 +#: ../src/guestfs.pod:3139 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3135 +#: ../src/guestfs.pod:3141 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3137 +#: ../src/guestfs.pod:3143 msgid "L, FUSE (userspace filesystem) built on top of libguestfs." msgstr "" #. type: =item -#: ../src/guestfs.pod:3139 +#: ../src/guestfs.pod:3145 msgid "C" 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3146 +#: ../src/guestfs.pod:3152 msgid "L, the virtual machine image inspector." msgstr "" #. type: =item -#: ../src/guestfs.pod:3148 +#: ../src/guestfs.pod:3154 msgid "C" 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" 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" 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" 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 directory, but that " @@ -46124,149 +46362,149 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:3166 +#: ../src/guestfs.pod:3172 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3168 +#: ../src/guestfs.pod:3174 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3170 +#: ../src/guestfs.pod:3176 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3172 +#: ../src/guestfs.pod:3178 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3174 +#: ../src/guestfs.pod:3180 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3176 +#: ../src/guestfs.pod:3182 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3178 +#: ../src/guestfs.pod:3184 msgid "C" 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3184 +#: ../src/guestfs.pod:3190 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:3186 +#: ../src/guestfs.pod:3192 msgid "C" 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" 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" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3197 +#: ../src/guestfs.pod:3203 msgid "Command line tools written in Perl (L and many others)." msgstr "" #. type: =item -#: ../src/guestfs.pod:3199 +#: ../src/guestfs.pod:3205 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:3201 +#: ../src/guestfs.pod:3207 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:3203 +#: ../src/guestfs.pod:3209 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:3205 +#: ../src/guestfs.pod:3211 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:3207 +#: ../src/guestfs.pod:3213 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:3209 +#: ../src/guestfs.pod:3215 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:3211 +#: ../src/guestfs.pod:3217 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:3213 +#: ../src/guestfs.pod:3219 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:3215 +#: ../src/guestfs.pod:3221 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:3217 +#: ../src/guestfs.pod:3223 msgid "C" 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 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 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." 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." 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 for " @@ -46369,7 +46607,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3290 +#: ../src/guestfs.pod:3296 msgid "" "A simple call such as L 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 " @@ -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)." 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 " @@ -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). 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, and C through C)." 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, L, " "L, L 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 to enable verbose messages. This has the same " "effect as calling C." 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 above." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3419 +#: ../src/guestfs.pod:3425 msgid "See also L above." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3423 +#: ../src/guestfs.pod:3429 msgid "" "Set C to enable command traces. This has the same " "effect as calling C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3441 +#: ../src/guestfs.pod:3447 msgid "" "L, L, L, " "L, L, L, " @@ -46593,7 +46831,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3483 +#: ../src/guestfs.pod:3489 msgid "" "Tools with a similar purpose: L, L, L, " "L, L." @@ -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" msgstr "" #. type: =item -#: ../tools/virt-win-reg.pl:567 +#: ../tools/virt-win-reg.pl:557 msgid "C" msgstr "" #. type: =item -#: ../tools/virt-win-reg.pl:569 +#: ../tools/virt-win-reg.pl:559 msgid "C" msgstr "" #. type: =item -#: ../tools/virt-win-reg.pl:571 +#: ../tools/virt-win-reg.pl:561 msgid "C" msgstr "" #. type: =item -#: ../tools/virt-win-reg.pl:573 +#: ../tools/virt-win-reg.pl:563 msgid "C" msgstr "" #. type: =item -#: ../tools/virt-win-reg.pl:575 +#: ../tools/virt-win-reg.pl:565 msgid "C>" msgstr "" #. type: textblock -#: ../tools/virt-win-reg.pl:577 +#: ../tools/virt-win-reg.pl:567 msgid "where I is a Windows User SID (eg. C)." msgstr "" #. type: =item -#: ../tools/virt-win-reg.pl:579 +#: ../tools/virt-win-reg.pl:569 msgid "C>" msgstr "" #. type: textblock -#: ../tools/virt-win-reg.pl:581 +#: ../tools/virt-win-reg.pl:571 msgid "where I 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 as a shorthand for C, and C for " "C." msgstr "" #. type: textblock -#: ../tools/virt-win-reg.pl:588 +#: ../tools/virt-win-reg.pl:578 msgid "" "The literal keys C and C 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 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." 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 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 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 is usually an alias for C. 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 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 " "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. For this example the script is called C 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 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 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 < 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 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." 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, L, L, L, " "L, L, L, " @@ -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 "" -- cgit