X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=po-docs%2Flibguestfs-docs.pot;h=2ebef8a402f000b59f9498ceea11be678e6bf4f3;hp=78e36f1e3236e8a301221b5718ea87983d897ef5;hb=0beebeb6225bd868fe36b28ff8ad15bfb8c6028e;hpb=4abb239dcc7b1d235783bb0b5e417c4b88b00fea;ds=sidebyside diff --git a/po-docs/libguestfs-docs.pot b/po-docs/libguestfs-docs.pot index 78e36f1..2ebef8a 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.13.17\n" +"Project-Id-Version: libguestfs 1.13.20\n" "Report-Msgid-Bugs-To: libguestfs@redhat.com\n" -"POT-Creation-Date: 2011-10-04 19:22+0200\n" +"POT-Creation-Date: 2011-10-11 20:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,278 +18,289 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #. type: =head1 -#: ../cat/virt-cat.pod:3 ../cat/virt-filesystems.pod:3 ../cat/virt-ls.pod:3 ../df/virt-df.pod:3 ../edit/virt-edit.pod:3 ../erlang/examples/guestfs-erlang.pod:3 ../examples/guestfs-examples.pod:3 ../examples/guestfs-recipes.pod:14 ../fish/guestfish.pod:3 ../fish/virt-copy-in.pod:3 ../fish/virt-copy-out.pod:3 ../fish/virt-tar-in.pod:3 ../fish/virt-tar-out.pod:3 ../fuse/guestmount.pod:3 ../inspector/virt-inspector.pod:3 ../java/examples/guestfs-java.pod:3 ../ocaml/examples/guestfs-ocaml.pod:3 ../perl/examples/guestfs-perl.pod:3 ../python/examples/guestfs-python.pod:3 ../rescue/virt-rescue.pod:3 ../resize/virt-resize.pod:3 ../ruby/examples/guestfs-ruby.pod:3 ../sparsify/virt-sparsify.pod:3 ../src/guestfs.pod:3 ../test-tool/libguestfs-test-tool.pod:3 ../tools/virt-list-filesystems.pl:30 ../tools/virt-list-partitions.pl:30 ../tools/virt-make-fs.pl:35 ../tools/virt-tar.pl:31 ../tools/virt-win-reg.pl:35 +#: ../align/virt-alignment-scan.pod:3 ../cat/virt-cat.pod:3 ../cat/virt-filesystems.pod:3 ../cat/virt-ls.pod:3 ../clone/virt-sysprep.pod:3 ../df/virt-df.pod:3 ../edit/virt-edit.pod:3 ../erlang/examples/guestfs-erlang.pod:3 ../examples/guestfs-examples.pod:3 ../examples/guestfs-recipes.pod:14 ../fish/guestfish.pod:3 ../fish/virt-copy-in.pod:3 ../fish/virt-copy-out.pod:3 ../fish/virt-tar-in.pod:3 ../fish/virt-tar-out.pod:3 ../fuse/guestmount.pod:3 ../inspector/virt-inspector.pod:3 ../java/examples/guestfs-java.pod:3 ../ocaml/examples/guestfs-ocaml.pod:3 ../perl/examples/guestfs-perl.pod:3 ../python/examples/guestfs-python.pod:3 ../rescue/virt-rescue.pod:3 ../resize/virt-resize.pod:3 ../ruby/examples/guestfs-ruby.pod:3 ../sparsify/virt-sparsify.pod:3 ../src/guestfs.pod:3 ../test-tool/libguestfs-test-tool.pod:3 ../tools/virt-list-filesystems.pl:30 ../tools/virt-list-partitions.pl:30 ../tools/virt-make-fs.pl:35 ../tools/virt-tar.pl:31 ../tools/virt-win-reg.pl:35 msgid "NAME" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:5 -msgid "virt-cat - Display files in a virtual machine" +#: ../align/virt-alignment-scan.pod:5 +msgid "virt-alignment-scan - Check alignment of virtual machine partitions" msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:7 ../cat/virt-filesystems.pod:7 ../cat/virt-ls.pod:7 ../df/virt-df.pod:7 ../edit/virt-edit.pod:7 ../erlang/examples/guestfs-erlang.pod:7 ../examples/guestfs-examples.pod:7 ../fish/guestfish.pod:7 ../fish/virt-copy-in.pod:7 ../fish/virt-copy-out.pod:7 ../fish/virt-tar-in.pod:7 ../fish/virt-tar-out.pod:7 ../fuse/guestmount.pod:7 ../inspector/virt-inspector.pod:7 ../java/examples/guestfs-java.pod:7 ../ocaml/examples/guestfs-ocaml.pod:7 ../perl/examples/guestfs-perl.pod:7 ../python/examples/guestfs-python.pod:7 ../rescue/virt-rescue.pod:7 ../resize/virt-resize.pod:7 ../ruby/examples/guestfs-ruby.pod:7 ../sparsify/virt-sparsify.pod:7 ../src/guestfs.pod:7 ../test-tool/libguestfs-test-tool.pod:7 ../tools/virt-list-filesystems.pl:34 ../tools/virt-list-partitions.pl:34 ../tools/virt-make-fs.pl:39 ../tools/virt-tar.pl:35 ../tools/virt-win-reg.pl:39 +#: ../align/virt-alignment-scan.pod:7 ../cat/virt-cat.pod:7 ../cat/virt-filesystems.pod:7 ../cat/virt-ls.pod:7 ../clone/virt-sysprep.pod:7 ../df/virt-df.pod:7 ../edit/virt-edit.pod:7 ../erlang/examples/guestfs-erlang.pod:7 ../examples/guestfs-examples.pod:7 ../fish/guestfish.pod:7 ../fish/virt-copy-in.pod:7 ../fish/virt-copy-out.pod:7 ../fish/virt-tar-in.pod:7 ../fish/virt-tar-out.pod:7 ../fuse/guestmount.pod:7 ../inspector/virt-inspector.pod:7 ../java/examples/guestfs-java.pod:7 ../ocaml/examples/guestfs-ocaml.pod:7 ../perl/examples/guestfs-perl.pod:7 ../python/examples/guestfs-python.pod:7 ../rescue/virt-rescue.pod:7 ../resize/virt-resize.pod:7 ../ruby/examples/guestfs-ruby.pod:7 ../sparsify/virt-sparsify.pod:7 ../src/guestfs.pod:7 ../test-tool/libguestfs-test-tool.pod:7 ../tools/virt-list-filesystems.pl:34 ../tools/virt-list-partitions.pl:34 ../tools/virt-make-fs.pl:39 ../tools/virt-tar.pl:35 ../tools/virt-win-reg.pl:39 msgid "SYNOPSIS" msgstr "" #. type: verbatim -#: ../cat/virt-cat.pod:9 -#, no-wrap -msgid "" -" virt-cat [--options] -d domname file [file ...]\n" -"\n" -msgstr "" - -#. type: verbatim -#: ../cat/virt-cat.pod:11 +#: ../align/virt-alignment-scan.pod:9 #, no-wrap msgid "" -" virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]\n" +" virt-alignment-scan [--options] -d domname\n" "\n" msgstr "" -#. type: textblock -#: ../cat/virt-cat.pod:13 ../edit/virt-edit.pod:15 ../inspector/virt-inspector.pod:13 -msgid "Old-style:" -msgstr "" - #. type: verbatim -#: ../cat/virt-cat.pod:15 +#: ../align/virt-alignment-scan.pod:11 #, no-wrap msgid "" -" virt-cat domname file\n" -"\n" -msgstr "" - -#. type: verbatim -#: ../cat/virt-cat.pod:17 -#, no-wrap -msgid "" -" virt-cat disk.img file\n" +" virt-alignment-scan [--options] -a disk.img [-a disk.img ...]\n" "\n" msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:19 ../cat/virt-filesystems.pod:13 ../cat/virt-ls.pod:19 ../df/virt-df.pod:21 ../edit/virt-edit.pod:27 ../erlang/examples/guestfs-erlang.pod:16 ../examples/guestfs-examples.pod:19 ../examples/guestfs-recipes.pod:18 ../fish/guestfish.pod:30 ../fish/virt-copy-in.pod:19 ../fish/virt-copy-out.pod:13 ../fish/virt-tar-in.pod:21 ../fish/virt-tar-out.pod:15 ../fuse/guestmount.pod:20 ../inspector/virt-inspector.pod:19 ../java/examples/guestfs-java.pod:15 ../ocaml/examples/guestfs-ocaml.pod:25 ../perl/examples/guestfs-perl.pod:18 ../python/examples/guestfs-python.pod:14 ../rescue/virt-rescue.pod:29 ../resize/virt-resize.pod:13 ../ruby/examples/guestfs-ruby.pod:15 ../sparsify/virt-sparsify.pod:11 ../src/guestfs.pod:23 ../test-tool/libguestfs-test-tool.pod:11 ../tools/virt-list-filesystems.pl:40 ../tools/virt-list-partitions.pl:40 ../tools/virt-make-fs.pl:47 ../tools/virt-tar.pl:77 ../tools/virt-win-reg.pl:63 +#: ../align/virt-alignment-scan.pod:13 ../cat/virt-cat.pod:19 ../cat/virt-filesystems.pod:13 ../cat/virt-ls.pod:19 ../clone/virt-sysprep.pod:13 ../df/virt-df.pod:21 ../edit/virt-edit.pod:27 ../erlang/examples/guestfs-erlang.pod:16 ../examples/guestfs-examples.pod:19 ../examples/guestfs-recipes.pod:18 ../fish/guestfish.pod:30 ../fish/virt-copy-in.pod:19 ../fish/virt-copy-out.pod:13 ../fish/virt-tar-in.pod:21 ../fish/virt-tar-out.pod:15 ../fuse/guestmount.pod:20 ../inspector/virt-inspector.pod:19 ../java/examples/guestfs-java.pod:15 ../ocaml/examples/guestfs-ocaml.pod:25 ../perl/examples/guestfs-perl.pod:18 ../python/examples/guestfs-python.pod:14 ../rescue/virt-rescue.pod:29 ../resize/virt-resize.pod:13 ../ruby/examples/guestfs-ruby.pod:15 ../sparsify/virt-sparsify.pod:11 ../src/guestfs.pod:23 ../test-tool/libguestfs-test-tool.pod:11 ../tools/virt-list-filesystems.pl:40 ../tools/virt-list-partitions.pl:40 ../tools/virt-make-fs.pl:47 ../tools/virt-tar.pl:77 ../tools/virt-win-reg.pl:63 msgid "DESCRIPTION" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:21 +#: ../align/virt-alignment-scan.pod:15 msgid "" -"C is a command line tool to display the contents of C where " -"C exists in the named virtual machine (or disk image)." +"When older operating systems install themselves, the partitioning tools " +"place partitions at a sector misaligned with the underlying storage " +"(commonly the first partition starts on sector C<63>). Misaligned " +"partitions can result in an operating system issuing more I/O than should be " +"necessary." msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:24 +#: ../align/virt-alignment-scan.pod:21 msgid "" -"Multiple filenames can be given, in which case they are concatenated " -"together. Each filename must be a full path, starting at the root directory " -"(starting with '/')." +"The virt-alignment-scan tool checks the alignment of partitions in virtual " +"machines and disk images and warns you if there are alignment problems." msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:28 +#: ../align/virt-alignment-scan.pod:25 msgid "" -"C can be used to quickly view a file. To edit a file, use " -"C. For more complex cases you should look at the L " -"tool (see L below)." +"Currently there is no virt tool for fixing alignment problems. You can only " +"reinstall the guest operating system. The following NetApp document " +"summarises the problem and possible solutions: " +"L" msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:32 ../cat/virt-ls.pod:35 ../df/virt-df.pod:43 ../edit/virt-edit.pod:44 ../fish/guestfish.pod:41 ../fish/guestfish.pod:1018 ../fish/virt-copy-in.pod:29 ../fish/virt-copy-out.pod:21 ../fish/virt-tar-in.pod:30 ../fish/virt-tar-out.pod:24 ../fuse/guestmount.pod:39 ../resize/virt-resize.pod:27 ../sparsify/virt-sparsify.pod:75 ../tools/virt-tar.pl:50 -msgid "EXAMPLES" +#: ../align/virt-alignment-scan.pod:30 +msgid "OUTPUT" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:34 -msgid "Display C file from inside the libvirt VM called C:" +#: ../align/virt-alignment-scan.pod:32 +msgid "To run this tool on a disk image directly, use the I<-a> option:" msgstr "" #. type: verbatim -#: ../cat/virt-cat.pod:37 +#: ../align/virt-alignment-scan.pod:34 #, no-wrap msgid "" -" virt-cat -d mydomain /etc/fstab\n" +" $ virt-alignment-scan -a winxp.img\n" +" /dev/sda1 32256 512 bad (alignment < 4K)\n" "\n" msgstr "" -#. type: textblock -#: ../cat/virt-cat.pod:39 -msgid "List syslog messages from a VM disk image file:" -msgstr "" - #. type: verbatim -#: ../cat/virt-cat.pod:41 +#: ../align/virt-alignment-scan.pod:37 #, no-wrap msgid "" -" virt-cat -a disk.img /var/log/messages | tail\n" +" $ virt-alignment-scan -a fedora16.img\n" +" /dev/sda1 1048576 1024K ok\n" +" /dev/sda2 2097152 2048K ok\n" +" /dev/sda3 526385152 2048K ok\n" "\n" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:43 -msgid "Find out what DHCP IP address a VM acquired:" +#: ../align/virt-alignment-scan.pod:42 +msgid "" +"To run the tool on a guest known to libvirt, use the I<-d> option and " +"possibly the I<-c> option:" msgstr "" #. type: verbatim -#: ../cat/virt-cat.pod:45 +#: ../align/virt-alignment-scan.pod:45 #, no-wrap msgid "" -" virt-cat -d mydomain /var/log/messages | \\\n" -" grep 'dhclient: bound to' | tail\n" +" # virt-alignment-scan -d RHEL5\n" +" /dev/sda1 32256 512 bad (alignment < 4K)\n" +" /dev/sda2 106928640 512 bad (alignment < 4K)\n" "\n" msgstr "" -#. type: textblock -#: ../cat/virt-cat.pod:48 -msgid "Find out what packages were recently installed:" -msgstr "" - #. type: verbatim -#: ../cat/virt-cat.pod:50 +#: ../align/virt-alignment-scan.pod:49 #, no-wrap msgid "" -" virt-cat -d mydomain /var/log/yum.log | tail\n" +" $ virt-alignment-scan -c qemu:///system -d Win7TwoDisks\n" +" /dev/sda1 1048576 1024K ok\n" +" /dev/sda2 105906176 1024K ok\n" +" /dev/sdb1 65536 64K ok\n" "\n" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:52 -msgid "Find out who is logged on inside a virtual machine:" +#: ../align/virt-alignment-scan.pod:54 +msgid "" +"The output consists of 4 or more whitespace-separated columns. Only the " +"first 4 columns are signficant if you want to parse this from a program. " +"The columns are:" msgstr "" -#. type: verbatim -#: ../cat/virt-cat.pod:54 -#, no-wrap +#. type: =item +#: ../align/virt-alignment-scan.pod:60 +msgid "col 1" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:62 msgid "" -" virt-cat -d mydomain /var/run/utmp > /tmp/utmp\n" -" who /tmp/utmp\n" -"\n" +"the device and partition name (eg. C meaning the first partition " +"on the first block device)" +msgstr "" + +#. type: =item +#: ../align/virt-alignment-scan.pod:65 +msgid "col 2" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:57 -msgid "or who was logged on:" +#: ../align/virt-alignment-scan.pod:67 +msgid "the start of the partition in bytes" msgstr "" -#. type: verbatim -#: ../cat/virt-cat.pod:59 -#, no-wrap +#. type: =item +#: ../align/virt-alignment-scan.pod:69 +msgid "col 3" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:71 +msgid "the alignment in bytes or Kbytes (eg. C<512> or C<4K>)" +msgstr "" + +#. type: =item +#: ../align/virt-alignment-scan.pod:73 +msgid "col 4" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:75 msgid "" -" virt-cat -d mydomain /var/log/wtmp > /tmp/wtmp\n" -" last -f /tmp/wtmp\n" -"\n" +"C if the alignment is best for performance, or C if the alignment " +"can cause performance problems" +msgstr "" + +#. type: =item +#: ../align/virt-alignment-scan.pod:78 +msgid "cols 5+" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:80 +msgid "optional free-text explanation." +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:84 +msgid "" +"The exit code from the program changes depending on whether poorly aligned " +"partitions were found. See L below." +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:87 +msgid "If you just want the exit code with no output, use the I<-q> option." msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:62 ../cat/virt-filesystems.pod:91 ../cat/virt-ls.pod:261 ../df/virt-df.pod:59 ../edit/virt-edit.pod:62 ../fish/guestfish.pod:148 ../fish/virt-copy-in.pod:45 ../fish/virt-copy-out.pod:34 ../fish/virt-tar-in.pod:42 ../fish/virt-tar-out.pod:36 ../fuse/guestmount.pod:83 ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:84 ../resize/virt-resize.pod:241 ../sparsify/virt-sparsify.pod:99 ../test-tool/libguestfs-test-tool.pod:36 ../tools/virt-list-filesystems.pl:53 ../tools/virt-list-partitions.pl:54 ../tools/virt-make-fs.pl:153 ../tools/virt-tar.pl:103 ../tools/virt-win-reg.pl:96 +#: ../align/virt-alignment-scan.pod:89 ../cat/virt-cat.pod:62 ../cat/virt-filesystems.pod:91 ../cat/virt-ls.pod:261 ../clone/virt-sysprep.pod:36 ../df/virt-df.pod:59 ../edit/virt-edit.pod:62 ../fish/guestfish.pod:148 ../fish/virt-copy-in.pod:45 ../fish/virt-copy-out.pod:34 ../fish/virt-tar-in.pod:42 ../fish/virt-tar-out.pod:36 ../fuse/guestmount.pod:83 ../inspector/virt-inspector.pod:55 ../rescue/virt-rescue.pod:84 ../resize/virt-resize.pod:241 ../sparsify/virt-sparsify.pod:99 ../test-tool/libguestfs-test-tool.pod:36 ../tools/virt-list-filesystems.pl:53 ../tools/virt-list-partitions.pl:54 ../tools/virt-make-fs.pl:153 ../tools/virt-tar.pl:103 ../tools/virt-win-reg.pl:96 msgid "OPTIONS" msgstr "" #. type: =item -#: ../cat/virt-cat.pod:66 ../cat/virt-filesystems.pod:95 ../cat/virt-ls.pod:265 ../df/virt-df.pod:63 ../edit/virt-edit.pod:66 ../fish/guestfish.pod:152 ../fuse/guestmount.pod:151 ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:88 ../resize/virt-resize.pod:245 ../sparsify/virt-sparsify.pod:103 ../test-tool/libguestfs-test-tool.pod:40 ../tools/virt-list-filesystems.pl:61 ../tools/virt-list-partitions.pl:62 ../tools/virt-make-fs.pl:161 ../tools/virt-tar.pl:111 ../tools/virt-win-reg.pl:104 +#: ../align/virt-alignment-scan.pod:93 ../cat/virt-cat.pod:66 ../cat/virt-filesystems.pod:95 ../cat/virt-ls.pod:265 ../clone/virt-sysprep.pod:40 ../df/virt-df.pod:63 ../edit/virt-edit.pod:66 ../fish/guestfish.pod:152 ../fuse/guestmount.pod:151 ../inspector/virt-inspector.pod:59 ../rescue/virt-rescue.pod:88 ../resize/virt-resize.pod:245 ../sparsify/virt-sparsify.pod:103 ../test-tool/libguestfs-test-tool.pod:40 ../tools/virt-list-filesystems.pl:61 ../tools/virt-list-partitions.pl:62 ../tools/virt-make-fs.pl:161 ../tools/virt-tar.pl:111 ../tools/virt-win-reg.pl:104 msgid "B<--help>" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:68 ../cat/virt-filesystems.pod:97 ../cat/virt-ls.pod:267 ../df/virt-df.pod:65 ../edit/virt-edit.pod:68 ../inspector/virt-inspector.pod:61 ../rescue/virt-rescue.pod:90 ../tools/virt-list-filesystems.pl:63 ../tools/virt-list-partitions.pl:64 ../tools/virt-make-fs.pl:163 ../tools/virt-tar.pl:113 ../tools/virt-win-reg.pl:106 +#: ../align/virt-alignment-scan.pod:95 ../cat/virt-cat.pod:68 ../cat/virt-filesystems.pod:97 ../cat/virt-ls.pod:267 ../clone/virt-sysprep.pod:42 ../df/virt-df.pod:65 ../edit/virt-edit.pod:68 ../inspector/virt-inspector.pod:61 ../rescue/virt-rescue.pod:90 ../tools/virt-list-filesystems.pl:63 ../tools/virt-list-partitions.pl:64 ../tools/virt-make-fs.pl:163 ../tools/virt-tar.pl:113 ../tools/virt-win-reg.pl:106 msgid "Display brief help." msgstr "" #. type: =item -#: ../cat/virt-cat.pod:70 ../cat/virt-filesystems.pod:99 ../cat/virt-ls.pod:269 ../df/virt-df.pod:67 ../edit/virt-edit.pod:70 ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:92 +#: ../align/virt-alignment-scan.pod:97 ../cat/virt-cat.pod:70 ../cat/virt-filesystems.pod:99 ../cat/virt-ls.pod:269 ../clone/virt-sysprep.pod:44 ../df/virt-df.pod:67 ../edit/virt-edit.pod:70 ../inspector/virt-inspector.pod:63 ../rescue/virt-rescue.pod:92 msgid "B<-a> file" msgstr "" #. type: =item -#: ../cat/virt-cat.pod:72 ../cat/virt-filesystems.pod:101 ../cat/virt-ls.pod:271 ../df/virt-df.pod:69 ../edit/virt-edit.pod:72 ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:94 +#: ../align/virt-alignment-scan.pod:99 ../cat/virt-cat.pod:72 ../cat/virt-filesystems.pod:101 ../cat/virt-ls.pod:271 ../clone/virt-sysprep.pod:46 ../df/virt-df.pod:69 ../edit/virt-edit.pod:72 ../inspector/virt-inspector.pod:65 ../rescue/virt-rescue.pod:94 msgid "B<--add> file" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:74 ../cat/virt-filesystems.pod:103 ../cat/virt-ls.pod:273 ../df/virt-df.pod:71 ../edit/virt-edit.pod:74 ../inspector/virt-inspector.pod:67 ../rescue/virt-rescue.pod:96 -msgid "" -"Add I which should be a disk image from a virtual machine. If the " -"virtual machine has multiple block devices, you must supply all of them with " -"separate I<-a> options." +#: ../align/virt-alignment-scan.pod:101 ../clone/virt-sysprep.pod:48 +msgid "Add I which should be a disk image from a virtual machine." msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:78 ../cat/virt-filesystems.pod:107 ../cat/virt-ls.pod:277 ../df/virt-df.pod:75 ../edit/virt-edit.pod:78 ../fish/guestfish.pod:174 ../fuse/guestmount.pod:93 ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:100 +#: ../align/virt-alignment-scan.pod:103 ../cat/virt-cat.pod:78 ../cat/virt-filesystems.pod:107 ../cat/virt-ls.pod:277 ../clone/virt-sysprep.pod:50 ../df/virt-df.pod:75 ../edit/virt-edit.pod:78 ../fish/guestfish.pod:174 ../fuse/guestmount.pod:93 ../inspector/virt-inspector.pod:71 ../rescue/virt-rescue.pod:100 msgid "" "The format of the disk image is auto-detected. To override this and force a " "particular format use the I<--format=..> option." msgstr "" #. type: =item -#: ../cat/virt-cat.pod:81 ../cat/virt-filesystems.pod:125 ../cat/virt-ls.pod:291 ../df/virt-df.pod:78 ../rescue/virt-rescue.pod:107 +#: ../align/virt-alignment-scan.pod:106 ../cat/virt-cat.pod:81 ../cat/virt-filesystems.pod:125 ../cat/virt-ls.pod:291 ../clone/virt-sysprep.pod:53 ../df/virt-df.pod:78 ../rescue/virt-rescue.pod:107 msgid "B<-c> URI" msgstr "" #. type: =item -#: ../cat/virt-cat.pod:83 ../cat/virt-filesystems.pod:127 ../cat/virt-ls.pod:293 ../df/virt-df.pod:80 ../rescue/virt-rescue.pod:109 +#: ../align/virt-alignment-scan.pod:108 ../cat/virt-cat.pod:83 ../cat/virt-filesystems.pod:127 ../cat/virt-ls.pod:293 ../clone/virt-sysprep.pod:55 ../df/virt-df.pod:80 ../rescue/virt-rescue.pod:109 msgid "B<--connect> URI" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:85 ../cat/virt-filesystems.pod:129 ../cat/virt-ls.pod:295 ../df/virt-df.pod:82 ../edit/virt-edit.pod:99 ../inspector/virt-inspector.pod:78 ../rescue/virt-rescue.pod:111 ../tools/virt-list-filesystems.pl:81 ../tools/virt-list-partitions.pl:82 ../tools/virt-tar.pl:131 ../tools/virt-win-reg.pl:132 +#: ../align/virt-alignment-scan.pod:110 ../cat/virt-cat.pod:85 ../cat/virt-filesystems.pod:129 ../cat/virt-ls.pod:295 ../clone/virt-sysprep.pod:57 ../df/virt-df.pod:82 ../edit/virt-edit.pod:99 ../inspector/virt-inspector.pod:78 ../rescue/virt-rescue.pod:111 ../tools/virt-list-filesystems.pl:81 ../tools/virt-list-partitions.pl:82 ../tools/virt-tar.pl:131 ../tools/virt-win-reg.pl:132 msgid "" "If using libvirt, connect to the given I. If omitted, then we connect " "to the default libvirt hypervisor." msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:88 ../cat/virt-filesystems.pod:132 ../cat/virt-ls.pod:298 ../df/virt-df.pod:85 ../rescue/virt-rescue.pod:114 +#: ../align/virt-alignment-scan.pod:113 ../cat/virt-cat.pod:88 ../cat/virt-filesystems.pod:132 ../cat/virt-ls.pod:298 ../clone/virt-sysprep.pod:60 ../df/virt-df.pod:85 ../rescue/virt-rescue.pod:114 msgid "" "If you specify guest block devices directly (I<-a>), then libvirt is not " "used at all." msgstr "" #. type: =item -#: ../cat/virt-cat.pod:91 ../cat/virt-filesystems.pod:141 ../cat/virt-ls.pod:307 ../df/virt-df.pod:94 ../edit/virt-edit.pod:105 ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:117 +#: ../align/virt-alignment-scan.pod:116 ../cat/virt-cat.pod:91 ../cat/virt-filesystems.pod:141 ../cat/virt-ls.pod:307 ../clone/virt-sysprep.pod:63 ../df/virt-df.pod:94 ../edit/virt-edit.pod:105 ../inspector/virt-inspector.pod:85 ../rescue/virt-rescue.pod:117 msgid "B<-d> guest" msgstr "" #. type: =item -#: ../cat/virt-cat.pod:93 ../cat/virt-filesystems.pod:143 ../cat/virt-ls.pod:309 ../df/virt-df.pod:96 ../edit/virt-edit.pod:107 ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:119 +#: ../align/virt-alignment-scan.pod:118 ../cat/virt-cat.pod:93 ../cat/virt-filesystems.pod:143 ../cat/virt-ls.pod:309 ../clone/virt-sysprep.pod:65 ../df/virt-df.pod:96 ../edit/virt-edit.pod:107 ../inspector/virt-inspector.pod:87 ../rescue/virt-rescue.pod:119 msgid "B<--domain> guest" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:95 ../cat/virt-filesystems.pod:145 ../cat/virt-ls.pod:311 ../df/virt-df.pod:98 ../edit/virt-edit.pod:109 ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:121 +#: ../align/virt-alignment-scan.pod:120 ../cat/virt-cat.pod:95 ../cat/virt-filesystems.pod:145 ../cat/virt-ls.pod:311 ../clone/virt-sysprep.pod:67 ../df/virt-df.pod:98 ../edit/virt-edit.pod:109 ../inspector/virt-inspector.pod:89 ../rescue/virt-rescue.pod:121 msgid "" "Add all the disks from the named libvirt guest. Domain UUIDs can be used " "instead of names." msgstr "" #. type: =item -#: ../cat/virt-cat.pod:98 ../cat/virt-filesystems.pod:148 ../cat/virt-ls.pod:314 ../edit/virt-edit.pod:112 ../fish/guestfish.pod:217 ../fuse/guestmount.pod:126 ../inspector/virt-inspector.pod:92 -msgid "B<--echo-keys>" -msgstr "" - -#. type: textblock -#: ../cat/virt-cat.pod:100 -msgid "" -"When prompting for keys and passphrases, virt-cat normally turns echoing off " -"so you cannot see what you are typing. If you are not worried about Tempest " -"attacks and there is no one else in the room you can specify this flag to " -"see what you are typing." -msgstr "" - -#. type: =item -#: ../cat/virt-cat.pod:105 ../cat/virt-filesystems.pod:170 ../cat/virt-ls.pod:328 ../df/virt-df.pod:101 ../fish/guestfish.pod:233 ../fuse/guestmount.pod:133 ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:124 +#: ../align/virt-alignment-scan.pod:123 ../cat/virt-cat.pod:105 ../cat/virt-filesystems.pod:170 ../cat/virt-ls.pod:328 ../clone/virt-sysprep.pod:89 ../df/virt-df.pod:101 ../fish/guestfish.pod:233 ../fuse/guestmount.pod:133 ../inspector/virt-inspector.pod:99 ../rescue/virt-rescue.pod:124 msgid "B<--format=raw|qcow2|..>" msgstr "" #. type: =item -#: ../cat/virt-cat.pod:107 ../cat/virt-filesystems.pod:172 ../cat/virt-ls.pod:330 ../df/virt-df.pod:103 ../edit/virt-edit.pod:134 ../fish/guestfish.pod:235 ../fuse/guestmount.pod:135 ../inspector/virt-inspector.pod:101 ../rescue/virt-rescue.pod:126 +#: ../align/virt-alignment-scan.pod:125 ../cat/virt-cat.pod:107 ../cat/virt-filesystems.pod:172 ../cat/virt-ls.pod:330 ../clone/virt-sysprep.pod:91 ../df/virt-df.pod:103 ../edit/virt-edit.pod:134 ../fish/guestfish.pod:235 ../fuse/guestmount.pod:135 ../inspector/virt-inspector.pod:101 ../rescue/virt-rescue.pod:126 msgid "B<--format>" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:109 ../cat/virt-filesystems.pod:174 ../cat/virt-ls.pod:332 ../df/virt-df.pod:105 ../edit/virt-edit.pod:136 ../fish/guestfish.pod:237 ../fuse/guestmount.pod:137 ../rescue/virt-rescue.pod:128 +#: ../align/virt-alignment-scan.pod:127 ../cat/virt-cat.pod:109 ../cat/virt-filesystems.pod:174 ../cat/virt-ls.pod:332 ../clone/virt-sysprep.pod:93 ../df/virt-df.pod:105 ../edit/virt-edit.pod:136 ../fish/guestfish.pod:237 ../fuse/guestmount.pod:137 ../rescue/virt-rescue.pod:128 msgid "" "The default for the I<-a> option is to auto-detect the format of the disk " "image. Using this forces the disk format for I<-a> options which follow on " @@ -298,40 +309,40 @@ msgid "" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../df/virt-df.pod:110 ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 ../fish/guestfish.pod:673 ../inspector/virt-inspector.pod:336 ../rescue/virt-rescue.pod:133 ../src/guestfs.pod:2791 +#: ../align/virt-alignment-scan.pod:132 ../cat/virt-cat.pod:114 ../cat/virt-filesystems.pod:179 ../cat/virt-ls.pod:337 ../clone/virt-sysprep.pod:98 ../df/virt-df.pod:110 ../edit/virt-edit.pod:141 ../fish/guestfish.pod:242 ../fish/guestfish.pod:673 ../inspector/virt-inspector.pod:336 ../rescue/virt-rescue.pod:133 ../src/guestfs.pod:2862 msgid "For example:" msgstr "" #. type: verbatim -#: ../cat/virt-cat.pod:116 +#: ../align/virt-alignment-scan.pod:134 #, no-wrap msgid "" -" virt-cat --format=raw -a disk.img file\n" +" virt-alignment-scan --format=raw -a disk.img\n" "\n" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:118 ../cat/virt-filesystems.pod:183 ../cat/virt-ls.pod:341 ../df/virt-df.pod:114 ../edit/virt-edit.pod:145 ../fish/guestfish.pod:246 ../rescue/virt-rescue.pod:137 +#: ../align/virt-alignment-scan.pod:136 ../cat/virt-cat.pod:118 ../cat/virt-filesystems.pod:183 ../cat/virt-ls.pod:341 ../clone/virt-sysprep.pod:102 ../df/virt-df.pod:114 ../edit/virt-edit.pod:145 ../fish/guestfish.pod:246 ../rescue/virt-rescue.pod:137 msgid "forces raw format (no auto-detection) for C." msgstr "" #. type: verbatim -#: ../cat/virt-cat.pod:120 +#: ../align/virt-alignment-scan.pod:138 #, no-wrap msgid "" -" virt-cat --format=raw -a disk.img --format -a another.img file\n" +" virt-alignment-scan --format=raw -a disk.img --format -a another.img\n" "\n" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:122 ../cat/virt-filesystems.pod:187 ../cat/virt-ls.pod:345 ../df/virt-df.pod:118 ../edit/virt-edit.pod:149 ../fish/guestfish.pod:250 ../rescue/virt-rescue.pod:141 +#: ../align/virt-alignment-scan.pod:140 ../cat/virt-cat.pod:122 ../cat/virt-filesystems.pod:187 ../cat/virt-ls.pod:345 ../clone/virt-sysprep.pod:106 ../df/virt-df.pod:118 ../edit/virt-edit.pod:149 ../fish/guestfish.pod:250 ../rescue/virt-rescue.pod:141 msgid "" "forces raw format (no auto-detection) for C and reverts to " "auto-detection for C." msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:125 ../cat/virt-filesystems.pod:190 ../cat/virt-ls.pod:348 ../df/virt-df.pod:121 ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:144 +#: ../align/virt-alignment-scan.pod:143 ../cat/virt-cat.pod:125 ../cat/virt-filesystems.pod:190 ../cat/virt-ls.pod:348 ../clone/virt-sysprep.pod:109 ../df/virt-df.pod:121 ../edit/virt-edit.pod:152 ../rescue/virt-rescue.pod:144 msgid "" "If you have untrusted raw-format guest disk images, you should use this " "option to specify the disk format. This avoids a possible security problem " @@ -339,163 +350,321 @@ msgid "" msgstr "" #. type: =item -#: ../cat/virt-cat.pod:129 ../cat/virt-filesystems.pod:200 ../cat/virt-ls.pod:361 ../edit/virt-edit.pod:156 ../fish/guestfish.pod:289 ../fuse/guestmount.pod:163 ../inspector/virt-inspector.pod:114 -msgid "B<--keys-from-stdin>" +#: ../align/virt-alignment-scan.pod:147 ../resize/virt-resize.pod:414 ../sparsify/virt-sparsify.pod:153 +msgid "B<-q>" +msgstr "" + +#. type: =item +#: ../align/virt-alignment-scan.pod:149 ../resize/virt-resize.pod:416 ../sparsify/virt-sparsify.pod:155 +msgid "B<--quiet>" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:131 ../cat/virt-filesystems.pod:202 ../cat/virt-ls.pod:363 ../edit/virt-edit.pod:158 ../fish/guestfish.pod:291 ../fuse/guestmount.pod:165 ../inspector/virt-inspector.pod:116 +#: ../align/virt-alignment-scan.pod:151 msgid "" -"Read key or passphrase parameters from stdin. The default is to try to read " -"passphrases from the user by opening C." +"Don't produce any output. Just set the exit code (see L " +"below)." msgstr "" #. type: =item -#: ../cat/virt-cat.pod:134 ../cat/virt-filesystems.pod:261 ../cat/virt-ls.pod:425 ../df/virt-df.pod:173 ../edit/virt-edit.pod:161 ../fish/guestfish.pod:390 ../fuse/guestmount.pod:257 ../inspector/virt-inspector.pod:119 ../rescue/virt-rescue.pod:182 ../sparsify/virt-sparsify.pod:159 +#: ../align/virt-alignment-scan.pod:154 ../cat/virt-cat.pod:134 ../cat/virt-filesystems.pod:261 ../cat/virt-ls.pod:425 ../clone/virt-sysprep.pod:122 ../df/virt-df.pod:173 ../edit/virt-edit.pod:161 ../fish/guestfish.pod:390 ../fuse/guestmount.pod:257 ../inspector/virt-inspector.pod:119 ../rescue/virt-rescue.pod:182 ../sparsify/virt-sparsify.pod:159 msgid "B<-v>" msgstr "" #. type: =item -#: ../cat/virt-cat.pod:136 ../cat/virt-filesystems.pod:263 ../cat/virt-ls.pod:427 ../df/virt-df.pod:175 ../edit/virt-edit.pod:163 ../fish/guestfish.pod:392 ../fuse/guestmount.pod:259 ../inspector/virt-inspector.pod:121 ../rescue/virt-rescue.pod:184 ../sparsify/virt-sparsify.pod:161 +#: ../align/virt-alignment-scan.pod:156 ../cat/virt-cat.pod:136 ../cat/virt-filesystems.pod:263 ../cat/virt-ls.pod:427 ../clone/virt-sysprep.pod:124 ../df/virt-df.pod:175 ../edit/virt-edit.pod:163 ../fish/guestfish.pod:392 ../fuse/guestmount.pod:259 ../inspector/virt-inspector.pod:121 ../rescue/virt-rescue.pod:184 ../sparsify/virt-sparsify.pod:161 msgid "B<--verbose>" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:138 ../cat/virt-filesystems.pod:265 ../cat/virt-ls.pod:429 ../df/virt-df.pod:177 ../edit/virt-edit.pod:165 ../inspector/virt-inspector.pod:123 ../rescue/virt-rescue.pod:186 ../sparsify/virt-sparsify.pod:163 +#: ../align/virt-alignment-scan.pod:158 ../cat/virt-cat.pod:138 ../cat/virt-filesystems.pod:265 ../cat/virt-ls.pod:429 ../clone/virt-sysprep.pod:126 ../df/virt-df.pod:177 ../edit/virt-edit.pod:165 ../inspector/virt-inspector.pod:123 ../rescue/virt-rescue.pod:186 ../sparsify/virt-sparsify.pod:163 msgid "Enable verbose messages for debugging." msgstr "" #. type: =item -#: ../cat/virt-cat.pod:140 ../cat/virt-filesystems.pod:267 ../cat/virt-ls.pod:431 ../df/virt-df.pod:179 ../edit/virt-edit.pod:167 ../fish/guestfish.pod:397 ../fuse/guestmount.pod:263 ../inspector/virt-inspector.pod:125 ../rescue/virt-rescue.pod:188 ../resize/virt-resize.pod:484 ../sparsify/virt-sparsify.pod:165 +#: ../align/virt-alignment-scan.pod:160 ../cat/virt-cat.pod:140 ../cat/virt-filesystems.pod:267 ../cat/virt-ls.pod:431 ../clone/virt-sysprep.pod:128 ../df/virt-df.pod:179 ../edit/virt-edit.pod:167 ../fish/guestfish.pod:397 ../fuse/guestmount.pod:263 ../inspector/virt-inspector.pod:125 ../rescue/virt-rescue.pod:188 ../resize/virt-resize.pod:484 ../sparsify/virt-sparsify.pod:165 msgid "B<-V>" msgstr "" #. type: =item -#: ../cat/virt-cat.pod:142 ../cat/virt-filesystems.pod:269 ../cat/virt-ls.pod:433 ../df/virt-df.pod:181 ../edit/virt-edit.pod:169 ../fish/guestfish.pod:399 ../fuse/guestmount.pod:265 ../inspector/virt-inspector.pod:127 ../rescue/virt-rescue.pod:190 ../resize/virt-resize.pod:486 ../sparsify/virt-sparsify.pod:167 ../tools/virt-list-filesystems.pl:69 ../tools/virt-list-partitions.pl:70 ../tools/virt-make-fs.pl:169 ../tools/virt-tar.pl:119 ../tools/virt-win-reg.pl:112 +#: ../align/virt-alignment-scan.pod:162 ../cat/virt-cat.pod:142 ../cat/virt-filesystems.pod:269 ../cat/virt-ls.pod:433 ../clone/virt-sysprep.pod:130 ../df/virt-df.pod:181 ../edit/virt-edit.pod:169 ../fish/guestfish.pod:399 ../fuse/guestmount.pod:265 ../inspector/virt-inspector.pod:127 ../rescue/virt-rescue.pod:190 ../resize/virt-resize.pod:486 ../sparsify/virt-sparsify.pod:167 ../tools/virt-list-filesystems.pl:69 ../tools/virt-list-partitions.pl:70 ../tools/virt-make-fs.pl:169 ../tools/virt-tar.pl:119 ../tools/virt-win-reg.pl:112 msgid "B<--version>" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:144 ../cat/virt-filesystems.pod:271 ../cat/virt-ls.pod:435 ../df/virt-df.pod:183 ../edit/virt-edit.pod:171 ../inspector/virt-inspector.pod:129 ../rescue/virt-rescue.pod:192 ../resize/virt-resize.pod:488 ../sparsify/virt-sparsify.pod:169 ../tools/virt-list-filesystems.pl:71 ../tools/virt-list-partitions.pl:72 ../tools/virt-make-fs.pl:171 ../tools/virt-tar.pl:121 ../tools/virt-win-reg.pl:114 +#: ../align/virt-alignment-scan.pod:164 ../cat/virt-cat.pod:144 ../cat/virt-filesystems.pod:271 ../cat/virt-ls.pod:435 ../clone/virt-sysprep.pod:132 ../df/virt-df.pod:183 ../edit/virt-edit.pod:171 ../inspector/virt-inspector.pod:129 ../rescue/virt-rescue.pod:192 ../resize/virt-resize.pod:488 ../sparsify/virt-sparsify.pod:169 ../tools/virt-list-filesystems.pl:71 ../tools/virt-list-partitions.pl:72 ../tools/virt-make-fs.pl:171 ../tools/virt-tar.pl:121 ../tools/virt-win-reg.pl:114 msgid "Display version number and exit." msgstr "" #. type: =item -#: ../cat/virt-cat.pod:146 ../cat/virt-filesystems.pod:281 ../cat/virt-ls.pod:437 ../df/virt-df.pod:185 ../edit/virt-edit.pod:173 ../fish/guestfish.pod:412 ../fuse/guestmount.pod:278 ../inspector/virt-inspector.pod:131 ../rescue/virt-rescue.pod:203 ../sparsify/virt-sparsify.pod:171 ../tools/virt-tar.pl:158 +#: ../align/virt-alignment-scan.pod:166 ../cat/virt-cat.pod:146 ../cat/virt-filesystems.pod:281 ../cat/virt-ls.pod:437 ../clone/virt-sysprep.pod:134 ../df/virt-df.pod:185 ../edit/virt-edit.pod:173 ../fish/guestfish.pod:412 ../fuse/guestmount.pod:278 ../inspector/virt-inspector.pod:131 ../rescue/virt-rescue.pod:203 ../sparsify/virt-sparsify.pod:171 ../tools/virt-tar.pl:158 msgid "B<-x>" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:148 ../cat/virt-filesystems.pod:283 ../cat/virt-ls.pod:439 ../df/virt-df.pod:187 ../edit/virt-edit.pod:175 ../inspector/virt-inspector.pod:133 ../rescue/virt-rescue.pod:205 ../sparsify/virt-sparsify.pod:173 +#: ../align/virt-alignment-scan.pod:168 ../cat/virt-cat.pod:148 ../cat/virt-filesystems.pod:283 ../cat/virt-ls.pod:439 ../clone/virt-sysprep.pod:136 ../df/virt-df.pod:187 ../edit/virt-edit.pod:175 ../inspector/virt-inspector.pod:133 ../rescue/virt-rescue.pod:205 ../sparsify/virt-sparsify.pod:173 msgid "Enable tracing of libguestfs API calls." msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:152 ../cat/virt-ls.pod:443 ../edit/virt-edit.pod:179 ../inspector/virt-inspector.pod:137 ../rescue/virt-rescue.pod:209 -msgid "OLD-STYLE COMMAND LINE ARGUMENTS" +#: ../align/virt-alignment-scan.pod:172 +msgid "RECOMMENDED ALIGNMENT" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:154 -msgid "Previous versions of virt-cat allowed you to write either:" +#: ../align/virt-alignment-scan.pod:174 +msgid "" +"Operating systems older than Windows 2008 and Linux before ca.2010 place the " +"first sector of the first partition at sector 63, with a 512 byte sector " +"size. This happens because of a historical accident. Drives have to report " +"a cylinder / head / sector (CHS) geometry to the BIOS. The geometry is " +"completely meaningless on modern drives, but it happens that the geometry " +"reported always has 63 sectors per track. The operating system therefore " +"places the first partition at the start of the second \"track\", at sector " +"63." +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:183 +msgid "" +"When the guest OS is virtualized, the host operating system and hypervisor " +"may prefer accesses aligned to one of:" +msgstr "" + +#. type: =item +#: ../align/virt-alignment-scan.pod:188 +msgid "* 512 bytes" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:190 +msgid "" +"if the host OS uses local storage directly on hard drive partitions, and the " +"hard drive has 512 byte physical sectors." +msgstr "" + +#. type: =item +#: ../align/virt-alignment-scan.pod:193 +msgid "* 4 Kbytes" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:195 +msgid "" +"for local storage on new hard drives with 4Kbyte physical sectors; for " +"file-backed storage on filesystems with 4Kbyte block size; or for some types " +"of network-attached storage." +msgstr "" + +#. type: =item +#: ../align/virt-alignment-scan.pod:199 +msgid "* 64 Kbytes" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:201 +msgid "" +"for high-end network-attached storage. This is the optimal block size for " +"some NetApp hardware." +msgstr "" + +#. type: =item +#: ../align/virt-alignment-scan.pod:204 +msgid "* 1 Mbyte" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:206 +msgid "see L below." +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:210 +msgid "" +"Partitions which are not aligned correctly to the underlying storage cause " +"extra I/O. For example:" msgstr "" #. type: verbatim -#: ../cat/virt-cat.pod:156 +#: ../align/virt-alignment-scan.pod:213 #, no-wrap msgid "" -" virt-cat disk.img [disk.img ...] file\n" +" sect#63\n" +" +--------------------------+------\n" +" | guest |\n" +" | filesystem block |\n" +" ---+------------------+------+-------------------+-----+---\n" +" | host block | host block |\n" +" | | |\n" +" ---+-------------------------+-------------------------+---\n" "\n" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:158 ../cat/virt-ls.pod:449 ../edit/virt-edit.pod:185 ../inspector/virt-inspector.pod:143 ../rescue/virt-rescue.pod:215 -msgid "or" +#: ../align/virt-alignment-scan.pod:222 +msgid "" +"In this example, each time a 4K guest block is read, two blocks on the host " +"must be accessed (so twice as much I/O is done). When a 4K guest block is " +"written, two host blocks must first be read, the old and new data combined, " +"and the two blocks written back (4x I/O)." +msgstr "" + +#. type: =head2 +#: ../align/virt-alignment-scan.pod:227 +msgid "LINUX HOST BLOCK AND I/O SIZE" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:229 +msgid "" +"New versions of the Linux kernel expose the physical and logical block size, " +"and minimum and recommended I/O size." +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:232 +msgid "For a typical hard drive with 512 byte sectors:" msgstr "" #. type: verbatim -#: ../cat/virt-cat.pod:160 +#: ../align/virt-alignment-scan.pod:234 #, no-wrap msgid "" -" virt-cat guestname file\n" +" $ cat /sys/block/sda/queue/physical_block_size\n" +" 512\n" +" $ cat /sys/block/sda/queue/logical_block_size\n" +" 512\n" +" $ cat /sys/block/sda/queue/minimum_io_size\n" +" 512\n" +" $ cat /sys/block/sda/queue/optimal_io_size\n" +" 0\n" "\n" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:162 ../cat/virt-ls.pod:453 ../edit/virt-edit.pod:189 ../inspector/virt-inspector.pod:147 ../rescue/virt-rescue.pod:219 +#: ../align/virt-alignment-scan.pod:243 +msgid "For a NetApp LUN:" +msgstr "" + +#. type: verbatim +#: ../align/virt-alignment-scan.pod:245 +#, no-wrap msgid "" -"whereas in this version you should use I<-a> or I<-d> respectively to avoid " -"the confusing case where a disk image might have the same name as a guest." +" $ cat /sys/block/sdc/queue/logical_block_size\n" +" 512\n" +" $ cat /sys/block/sdc/queue/physical_block_size\n" +" 512\n" +" $ cat /sys/block/sdc/queue/minimum_io_size\n" +" 4096\n" +" $ cat /sys/block/sdc/queue/optimal_io_size\n" +" 65536\n" +"\n" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:166 ../cat/virt-ls.pod:457 ../edit/virt-edit.pod:193 ../inspector/virt-inspector.pod:151 ../rescue/virt-rescue.pod:223 -msgid "For compatibility the old style is still supported." +#: ../align/virt-alignment-scan.pod:254 +msgid "" +"The NetApp allows 512 byte accesses (but they will be very inefficient), " +"prefers a minimum 4K I/O size, but the optimal I/O size is 64K." msgstr "" -#. type: =head1 -#: ../cat/virt-cat.pod:168 ../edit/virt-edit.pod:297 -msgid "USING GUESTFISH" +#. type: textblock +#: ../align/virt-alignment-scan.pod:258 +msgid "" +"For detailed information about what these numbers mean, see " +"L" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:170 +#: ../align/virt-alignment-scan.pod:261 msgid "" -"L is a more powerful, lower level tool which you can use when " -"C doesn't work." +"[Thanks to Mike Snitzer for providing NetApp data and additional " +"information.]" +msgstr "" + +#. type: =head2 +#: ../align/virt-alignment-scan.pod:264 +msgid "1 MB PARTITION ALIGNMENT" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:173 -msgid "Using C is approximately equivalent to doing:" +#: ../align/virt-alignment-scan.pod:266 +msgid "" +"Microsoft picked 1 MB as the default alignment for all partitions starting " +"with Windows 2008 Server, and Linux has followed this." msgstr "" -#. type: verbatim -#: ../cat/virt-cat.pod:175 -#, no-wrap +#. type: textblock +#: ../align/virt-alignment-scan.pod:269 msgid "" -" guestfish --ro -i -d domname download file -\n" -"\n" +"Assuming 512 byte sectors in the guest, you will now see the first partition " +"starting at sector 2048, and subsequent partitions (if any) will start at a " +"multiple of 2048 sectors." msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:177 +#: ../align/virt-alignment-scan.pod:273 msgid "" -"where C is the name of the libvirt guest, and C is the full " -"path to the file. Note the final C<-> (meaning \"output to stdout\")." +"1 MB alignment is compatible with all current alignment requirements (4K, " +"64K) and provides room for future growth in physical block sizes." +msgstr "" + +#. type: =head2 +#: ../align/virt-alignment-scan.pod:276 +msgid "SETTING ALIGNMENT" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:181 +#: ../align/virt-alignment-scan.pod:278 msgid "" -"The command above uses libguestfs's guest inspection feature and so does not " -"work on guests that libguestfs cannot inspect, or on things like arbitrary " -"disk images that don't contain guests. To display a file from a disk image " -"directly, use:" +"Currently there is no virt tool for fixing alignment problems in guests. " +"This is a difficult problem to fix because simply moving partitions around " +"breaks the bootloader, necessitating either manual reinstallation of the " +"bootloader using a rescue disk, or complex and error-prone hacks." msgstr "" -#. type: verbatim -#: ../cat/virt-cat.pod:186 -#, no-wrap +#. type: textblock +#: ../align/virt-alignment-scan.pod:284 msgid "" -" guestfish --ro -a disk.img -m /dev/sda1 download file -\n" -"\n" +"L does not change the alignment of the first partition, but " +"it does align the second and subsequent partitions to a multiple of 64 or " +"128 sectors (depending on the version of virt-resize, 128 in virt-resize " +"E 1.13.19). For operating systems that have a separate boot partition, " +"virt-resize could be used to align the main OS partition, so that the " +"majority of OS accesses except at boot will be aligned." msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:188 +#: ../align/virt-alignment-scan.pod:292 msgid "" -"where C is the disk image, C is the filesystem within " -"the disk image, and C is the full path to the file." +"The easiest way to correct partition alignment problems is to reinstall your " +"guest operating systems. If you install operating systems from templates, " +"ensure these have correct partition alignment too." +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:297 +msgid "" +"For older versions of Windows, the following NetApp document contains useful " +"information: L" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:300 +msgid "" +"For Red Hat Enterprise Linux E 5, use a Kickstart script that contains " +"an explicit C<%pre> section that creates aligned partitions using " +"L. Do not use the Kickstart C command. The NetApp " +"document above contains an example." msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:191 ../cat/virt-filesystems.pod:365 ../cat/virt-ls.pod:483 ../df/virt-df.pod:215 ../edit/virt-edit.pod:342 ../inspector/virt-inspector.pod:352 ../rescue/virt-rescue.pod:266 ../resize/virt-resize.pod:601 ../tools/virt-list-filesystems.pl:188 ../tools/virt-list-partitions.pl:258 ../tools/virt-make-fs.pl:532 ../tools/virt-tar.pl:289 ../tools/virt-win-reg.pl:733 +#: ../align/virt-alignment-scan.pod:305 ../cat/virt-cat.pod:191 ../cat/virt-filesystems.pod:365 ../cat/virt-ls.pod:483 ../clone/virt-sysprep.pod:359 ../df/virt-df.pod:215 ../edit/virt-edit.pod:342 ../inspector/virt-inspector.pod:352 ../rescue/virt-rescue.pod:266 ../resize/virt-resize.pod:601 ../tools/virt-list-filesystems.pl:188 ../tools/virt-list-partitions.pl:258 ../tools/virt-make-fs.pl:532 ../tools/virt-tar.pl:289 ../tools/virt-win-reg.pl:733 msgid "SHELL QUOTING" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:193 ../cat/virt-filesystems.pod:367 ../cat/virt-ls.pod:485 ../df/virt-df.pod:217 ../edit/virt-edit.pod:344 ../inspector/virt-inspector.pod:354 ../rescue/virt-rescue.pod:268 ../resize/virt-resize.pod:603 ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260 ../tools/virt-make-fs.pl:534 ../tools/virt-tar.pl:291 ../tools/virt-win-reg.pl:741 +#: ../align/virt-alignment-scan.pod:307 ../cat/virt-cat.pod:193 ../cat/virt-filesystems.pod:367 ../cat/virt-ls.pod:485 ../clone/virt-sysprep.pod:361 ../df/virt-df.pod:217 ../edit/virt-edit.pod:344 ../inspector/virt-inspector.pod:354 ../rescue/virt-rescue.pod:268 ../resize/virt-resize.pod:603 ../tools/virt-list-filesystems.pl:190 ../tools/virt-list-partitions.pl:260 ../tools/virt-make-fs.pl:534 ../tools/virt-tar.pl:291 ../tools/virt-win-reg.pl:741 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 " @@ -504,49 +673,98 @@ msgid "" msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:198 ../cat/virt-filesystems.pod:372 ../cat/virt-ls.pod:490 ../df/virt-df.pod:222 ../edit/virt-edit.pod:349 ../fish/guestfish.pod:1081 ../fuse/guestmount.pod:303 ../inspector/virt-inspector.pod:375 ../resize/virt-resize.pod:608 ../sparsify/virt-sparsify.pod:227 ../test-tool/libguestfs-test-tool.pod:90 +#: ../align/virt-alignment-scan.pod:312 ../cat/virt-cat.pod:198 ../cat/virt-filesystems.pod:372 ../cat/virt-ls.pod:490 ../clone/virt-sysprep.pod:366 ../df/virt-df.pod:222 ../edit/virt-edit.pod:349 ../fish/guestfish.pod:1113 ../fuse/guestmount.pod:303 ../inspector/virt-inspector.pod:375 ../resize/virt-resize.pod:608 ../sparsify/virt-sparsify.pod:227 ../test-tool/libguestfs-test-tool.pod:90 msgid "EXIT STATUS" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:200 ../cat/virt-filesystems.pod:374 ../cat/virt-ls.pod:492 ../df/virt-df.pod:224 ../edit/virt-edit.pod:351 ../fuse/guestmount.pod:305 ../inspector/virt-inspector.pod:377 ../resize/virt-resize.pod:610 ../sparsify/virt-sparsify.pod:229 -msgid "This program returns 0 if successful, or non-zero if there was an error." +#: ../align/virt-alignment-scan.pod:314 +msgid "This program returns:" +msgstr "" + +#. type: =item +#: ../align/virt-alignment-scan.pod:318 ../align/virt-alignment-scan.pod:324 ../align/virt-alignment-scan.pod:330 ../align/virt-alignment-scan.pod:337 ../clone/virt-sysprep.pod:213 ../clone/virt-sysprep.pod:217 ../clone/virt-sysprep.pod:221 ../clone/virt-sysprep.pod:225 ../clone/virt-sysprep.pod:240 ../clone/virt-sysprep.pod:244 ../clone/virt-sysprep.pod:248 ../clone/virt-sysprep.pod:252 ../clone/virt-sysprep.pod:256 ../clone/virt-sysprep.pod:292 ../clone/virt-sysprep.pod:314 ../clone/virt-sysprep.pod:318 ../df/virt-df.pod:148 ../df/virt-df.pod:154 ../edit/virt-edit.pod:266 ../edit/virt-edit.pod:271 ../edit/virt-edit.pod:276 ../edit/virt-edit.pod:287 ../edit/virt-edit.pod:291 ../examples/guestfs-recipes.pod:98 ../examples/guestfs-recipes.pod:102 ../examples/guestfs-recipes.pod:106 ../examples/guestfs-recipes.pod:132 ../examples/guestfs-recipes.pod:137 ../examples/guestfs-recipes.pod:227 ../examples/guestfs-recipes.pod:231 ../examples/guestfs-recipes.pod:235 ../examples/guestfs-recipes.pod:239 ../examples/guestfs-recipes.pod:243 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:390 ../fish/guestfish-actions.pod:398 ../fish/guestfish-actions.pod:405 ../fish/guestfish-actions.pod:412 ../fish/guestfish-actions.pod:1139 ../fish/guestfish-actions.pod:1143 ../fish/guestfish-actions.pod:1147 ../fish/guestfish-actions.pod:1151 ../fish/guestfish-actions.pod:1159 ../fish/guestfish-actions.pod:1163 ../fish/guestfish-actions.pod:1167 ../fish/guestfish-actions.pod:1177 ../fish/guestfish-actions.pod:1181 ../fish/guestfish-actions.pod:1185 ../fish/guestfish-actions.pod:1275 ../fish/guestfish-actions.pod:1279 ../fish/guestfish-actions.pod:1284 ../fish/guestfish-actions.pod:1289 ../fish/guestfish-actions.pod:1331 ../fish/guestfish-actions.pod:1335 ../fish/guestfish-actions.pod:1340 ../fish/guestfish-actions.pod:1596 ../fish/guestfish-actions.pod:1603 ../fish/guestfish-actions.pod:1610 ../fish/guestfish-actions.pod:2005 ../fish/guestfish-actions.pod:2011 ../fish/guestfish-actions.pod:2019 ../fish/guestfish-actions.pod:2026 ../fish/guestfish-actions.pod:2033 ../fish/guestfish.pod:445 ../fish/guestfish.pod:449 ../fish/guestfish.pod:453 ../fish/guestfish.pod:457 ../inspector/virt-inspector.pod:393 ../inspector/virt-inspector.pod:397 ../resize/virt-resize.pod:282 ../resize/virt-resize.pod:286 ../resize/virt-resize.pod:295 ../resize/virt-resize.pod:301 ../sparsify/virt-sparsify.pod:32 ../sparsify/virt-sparsify.pod:39 ../sparsify/virt-sparsify.pod:43 ../sparsify/virt-sparsify.pod:49 ../sparsify/virt-sparsify.pod:54 ../sparsify/virt-sparsify.pod:58 ../sparsify/virt-sparsify.pod:64 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:29 ../src/guestfs-actions.pod:588 ../src/guestfs-actions.pod:596 ../src/guestfs-actions.pod:603 ../src/guestfs-actions.pod:610 ../src/guestfs-actions.pod:1778 ../src/guestfs-actions.pod:1782 ../src/guestfs-actions.pod:1786 ../src/guestfs-actions.pod:1790 ../src/guestfs-actions.pod:1798 ../src/guestfs-actions.pod:1802 ../src/guestfs-actions.pod:1806 ../src/guestfs-actions.pod:1816 ../src/guestfs-actions.pod:1820 ../src/guestfs-actions.pod:1824 ../src/guestfs-actions.pod:1962 ../src/guestfs-actions.pod:1966 ../src/guestfs-actions.pod:1971 ../src/guestfs-actions.pod:1976 ../src/guestfs-actions.pod:2037 ../src/guestfs-actions.pod:2041 ../src/guestfs-actions.pod:2046 ../src/guestfs-actions.pod:2461 ../src/guestfs-actions.pod:2468 ../src/guestfs-actions.pod:2475 ../src/guestfs-actions.pod:3012 ../src/guestfs-actions.pod:3018 ../src/guestfs-actions.pod:3026 ../src/guestfs-actions.pod:3033 ../src/guestfs-actions.pod:3040 ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:398 ../src/guestfs.pod:402 ../src/guestfs.pod:407 ../src/guestfs.pod:411 ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1094 ../src/guestfs.pod:1098 ../src/guestfs.pod:1102 ../src/guestfs.pod:1107 ../src/guestfs.pod:1115 ../src/guestfs.pod:1134 ../src/guestfs.pod:1142 ../src/guestfs.pod:1164 ../src/guestfs.pod:1168 ../src/guestfs.pod:1172 ../src/guestfs.pod:1176 ../src/guestfs.pod:1180 ../src/guestfs.pod:1184 ../src/guestfs.pod:1674 ../src/guestfs.pod:1679 ../src/guestfs.pod:1683 ../src/guestfs.pod:1785 ../src/guestfs.pod:1790 ../src/guestfs.pod:1794 ../src/guestfs.pod:1804 ../src/guestfs.pod:2093 ../src/guestfs.pod:2098 ../src/guestfs.pod:2104 ../src/guestfs.pod:2112 ../src/guestfs.pod:2630 ../src/guestfs.pod:2636 ../src/guestfs.pod:2641 ../src/guestfs.pod:2647 ../src/guestfs.pod:3047 ../src/guestfs.pod:3052 ../src/guestfs.pod:3056 ../src/guestfs.pod:3060 ../src/guestfs.pod:3064 ../src/guestfs.pod:3078 ../src/guestfs.pod:3083 ../src/guestfs.pod:3314 ../src/guestfs.pod:3318 ../src/guestfs.pod:3322 ../src/guestfs.pod:3326 ../tools/virt-win-reg.pl:197 ../tools/virt-win-reg.pl:202 ../tools/virt-win-reg.pl:208 ../tools/virt-win-reg.pl:710 ../tools/virt-win-reg.pl:716 ../tools/virt-win-reg.pl:722 +msgid "*" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:320 +msgid "0" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:322 +msgid "successful exit, all partitions are aligned E 64K for best performance" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:326 +msgid "1" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:328 +msgid "an error scanning the disk image or guest" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:332 +msgid "2" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:334 +msgid "" +"successful exit, some partitions have alignment E 64K which can result " +"in poor performance on high end network storage" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:339 +msgid "3" +msgstr "" + +#. type: textblock +#: ../align/virt-alignment-scan.pod:341 +msgid "" +"successful exit, some partitions have alignment E 4K which can result in " +"poor performance on most hypervisors" msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:203 ../cat/virt-filesystems.pod:377 ../cat/virt-ls.pod:495 ../df/virt-df.pod:227 ../edit/virt-edit.pod:354 ../erlang/examples/guestfs-erlang.pod:97 ../examples/guestfs-examples.pod:33 ../examples/guestfs-recipes.pod:384 ../fish/guestfish.pod:1235 ../fish/virt-copy-in.pod:50 ../fish/virt-copy-out.pod:39 ../fish/virt-tar-in.pod:47 ../fish/virt-tar-out.pod:41 ../fuse/guestmount.pod:308 ../inspector/virt-inspector.pod:380 ../java/examples/guestfs-java.pod:45 ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:39 ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:288 ../resize/virt-resize.pod:613 ../ruby/examples/guestfs-ruby.pod:36 ../sparsify/virt-sparsify.pod:251 ../src/guestfs.pod:3167 ../test-tool/libguestfs-test-tool.pod:100 ../tools/virt-list-filesystems.pl:195 ../tools/virt-list-partitions.pl:265 ../tools/virt-make-fs.pl:539 ../tools/virt-tar.pl:296 ../tools/virt-win-reg.pl:746 +#: ../align/virt-alignment-scan.pod:346 ../cat/virt-cat.pod:203 ../cat/virt-filesystems.pod:377 ../cat/virt-ls.pod:495 ../clone/virt-sysprep.pod:370 ../df/virt-df.pod:227 ../edit/virt-edit.pod:354 ../erlang/examples/guestfs-erlang.pod:97 ../examples/guestfs-examples.pod:33 ../examples/guestfs-recipes.pod:384 ../fish/guestfish.pod:1267 ../fish/virt-copy-in.pod:50 ../fish/virt-copy-out.pod:39 ../fish/virt-tar-in.pod:47 ../fish/virt-tar-out.pod:41 ../fuse/guestmount.pod:308 ../inspector/virt-inspector.pod:380 ../java/examples/guestfs-java.pod:45 ../ocaml/examples/guestfs-ocaml.pod:78 ../perl/examples/guestfs-perl.pod:39 ../python/examples/guestfs-python.pod:42 ../rescue/virt-rescue.pod:288 ../resize/virt-resize.pod:613 ../ruby/examples/guestfs-ruby.pod:36 ../sparsify/virt-sparsify.pod:251 ../src/guestfs.pod:3255 ../test-tool/libguestfs-test-tool.pod:100 ../tools/virt-list-filesystems.pl:195 ../tools/virt-list-partitions.pl:265 ../tools/virt-make-fs.pl:539 ../tools/virt-tar.pl:296 ../tools/virt-win-reg.pl:746 msgid "SEE ALSO" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:205 +#: ../align/virt-alignment-scan.pod:348 msgid "" -"L, L, L, L, " -"L, L." +"L, L, L, L, " +"L, L." msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:212 ../cat/virt-filesystems.pod:388 ../cat/virt-ls.pod:507 ../df/virt-df.pod:235 ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:296 ../resize/virt-resize.pod:635 ../sparsify/virt-sparsify.pod:264 ../tools/virt-list-filesystems.pl:208 ../tools/virt-list-partitions.pl:277 ../tools/virt-make-fs.pl:564 ../tools/virt-tar.pl:311 ../tools/virt-win-reg.pl:772 +#: ../align/virt-alignment-scan.pod:355 ../cat/virt-cat.pod:212 ../cat/virt-filesystems.pod:388 ../cat/virt-ls.pod:507 ../clone/virt-sysprep.pod:384 ../df/virt-df.pod:235 ../edit/virt-edit.pod:368 ../rescue/virt-rescue.pod:296 ../resize/virt-resize.pod:635 ../sparsify/virt-sparsify.pod:264 ../tools/virt-list-filesystems.pl:208 ../tools/virt-list-partitions.pl:277 ../tools/virt-make-fs.pl:564 ../tools/virt-tar.pl:311 ../tools/virt-win-reg.pl:772 msgid "AUTHOR" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:214 ../cat/virt-filesystems.pod:390 ../cat/virt-ls.pod:509 ../df/virt-df.pod:237 ../edit/virt-edit.pod:370 ../inspector/virt-inspector.pod:395 ../rescue/virt-rescue.pod:298 ../resize/virt-resize.pod:637 ../sparsify/virt-sparsify.pod:266 ../tools/virt-list-filesystems.pl:210 ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:566 ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:774 +#: ../align/virt-alignment-scan.pod:357 ../cat/virt-cat.pod:214 ../cat/virt-filesystems.pod:390 ../cat/virt-ls.pod:509 ../clone/virt-sysprep.pod:386 ../df/virt-df.pod:237 ../edit/virt-edit.pod:370 ../inspector/virt-inspector.pod:395 ../rescue/virt-rescue.pod:298 ../resize/virt-resize.pod:637 ../sparsify/virt-sparsify.pod:266 ../tools/virt-list-filesystems.pl:210 ../tools/virt-list-partitions.pl:279 ../tools/virt-make-fs.pl:566 ../tools/virt-tar.pl:313 ../tools/virt-win-reg.pl:774 msgid "Richard W.M. Jones L" msgstr "" #. type: =head1 -#: ../cat/virt-cat.pod:216 ../cat/virt-filesystems.pod:392 ../cat/virt-ls.pod:511 ../df/virt-df.pod:239 ../edit/virt-edit.pod:372 ../erlang/examples/guestfs-erlang.pod:114 ../examples/guestfs-examples.pod:49 ../examples/guestfs-recipes.pod:401 ../fish/guestfish.pod:1265 ../fish/virt-copy-in.pod:64 ../fish/virt-copy-out.pod:53 ../fish/virt-tar-in.pod:62 ../fish/virt-tar-out.pod:55 ../fuse/guestmount.pod:323 ../inspector/virt-inspector.pod:403 ../java/examples/guestfs-java.pod:62 ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:56 ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:300 ../resize/virt-resize.pod:639 ../ruby/examples/guestfs-ruby.pod:52 ../sparsify/virt-sparsify.pod:268 ../src/guestfs.pod:3246 ../test-tool/libguestfs-test-tool.pod:110 ../tools/virt-list-filesystems.pl:212 ../tools/virt-list-partitions.pl:281 ../tools/virt-make-fs.pl:568 ../tools/virt-tar.pl:315 ../tools/virt-win-reg.pl:776 +#: ../align/virt-alignment-scan.pod:359 ../cat/virt-cat.pod:216 ../cat/virt-filesystems.pod:392 ../cat/virt-ls.pod:511 ../clone/virt-sysprep.pod:388 ../df/virt-df.pod:239 ../edit/virt-edit.pod:372 ../erlang/examples/guestfs-erlang.pod:114 ../examples/guestfs-examples.pod:49 ../examples/guestfs-recipes.pod:401 ../fish/guestfish.pod:1299 ../fish/virt-copy-in.pod:64 ../fish/virt-copy-out.pod:53 ../fish/virt-tar-in.pod:62 ../fish/virt-tar-out.pod:55 ../fuse/guestmount.pod:323 ../inspector/virt-inspector.pod:403 ../java/examples/guestfs-java.pod:62 ../ocaml/examples/guestfs-ocaml.pod:95 ../perl/examples/guestfs-perl.pod:56 ../python/examples/guestfs-python.pod:58 ../rescue/virt-rescue.pod:300 ../resize/virt-resize.pod:639 ../ruby/examples/guestfs-ruby.pod:52 ../sparsify/virt-sparsify.pod:268 ../src/guestfs.pod:3337 ../test-tool/libguestfs-test-tool.pod:110 ../tools/virt-list-filesystems.pl:212 ../tools/virt-list-partitions.pl:281 ../tools/virt-make-fs.pl:568 ../tools/virt-tar.pl:315 ../tools/virt-win-reg.pl:776 msgid "COPYRIGHT" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:218 ../inspector/virt-inspector.pod:405 ../resize/virt-resize.pod:641 -msgid "Copyright (C) 2010-2011 Red Hat Inc." +#: ../align/virt-alignment-scan.pod:361 ../clone/virt-sysprep.pod:390 ../sparsify/virt-sparsify.pod:270 +msgid "Copyright (C) 2011 Red Hat Inc." msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:220 ../cat/virt-filesystems.pod:396 ../cat/virt-ls.pod:515 ../df/virt-df.pod:243 ../edit/virt-edit.pod:376 ../fish/guestfish.pod:1270 ../fish/virt-copy-in.pod:69 ../fish/virt-copy-out.pod:58 ../fish/virt-tar-in.pod:67 ../fish/virt-tar-out.pod:60 ../fuse/guestmount.pod:328 ../inspector/virt-inspector.pod:407 ../rescue/virt-rescue.pod:304 ../resize/virt-resize.pod:643 ../sparsify/virt-sparsify.pod:272 ../test-tool/libguestfs-test-tool.pod:115 ../tools/virt-list-filesystems.pl:216 ../tools/virt-list-partitions.pl:285 ../tools/virt-make-fs.pl:572 ../tools/virt-tar.pl:319 ../tools/virt-win-reg.pl:780 +#: ../align/virt-alignment-scan.pod:363 ../cat/virt-cat.pod:220 ../cat/virt-filesystems.pod:396 ../cat/virt-ls.pod:515 ../clone/virt-sysprep.pod:392 ../df/virt-df.pod:243 ../edit/virt-edit.pod:376 ../fish/guestfish.pod:1304 ../fish/virt-copy-in.pod:69 ../fish/virt-copy-out.pod:58 ../fish/virt-tar-in.pod:67 ../fish/virt-tar-out.pod:60 ../fuse/guestmount.pod:328 ../inspector/virt-inspector.pod:407 ../rescue/virt-rescue.pod:304 ../resize/virt-resize.pod:643 ../sparsify/virt-sparsify.pod:272 ../test-tool/libguestfs-test-tool.pod:115 ../tools/virt-list-filesystems.pl:216 ../tools/virt-list-partitions.pl:285 ../tools/virt-make-fs.pl:572 ../tools/virt-tar.pl:319 ../tools/virt-win-reg.pl:780 msgid "" "This program is free software; you can redistribute it and/or modify it " "under the terms of the GNU General Public License as published by the Free " @@ -555,7 +773,7 @@ msgid "" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:225 ../cat/virt-filesystems.pod:401 ../cat/virt-ls.pod:520 ../df/virt-df.pod:248 ../edit/virt-edit.pod:381 ../fish/guestfish.pod:1275 ../fish/virt-copy-in.pod:74 ../fish/virt-copy-out.pod:63 ../fish/virt-tar-in.pod:72 ../fish/virt-tar-out.pod:65 ../fuse/guestmount.pod:333 ../inspector/virt-inspector.pod:412 ../rescue/virt-rescue.pod:309 ../resize/virt-resize.pod:648 ../sparsify/virt-sparsify.pod:277 ../test-tool/libguestfs-test-tool.pod:120 ../tools/virt-list-filesystems.pl:221 ../tools/virt-list-partitions.pl:290 ../tools/virt-make-fs.pl:577 ../tools/virt-tar.pl:324 ../tools/virt-win-reg.pl:785 +#: ../align/virt-alignment-scan.pod:368 ../cat/virt-cat.pod:225 ../cat/virt-filesystems.pod:401 ../cat/virt-ls.pod:520 ../clone/virt-sysprep.pod:397 ../df/virt-df.pod:248 ../edit/virt-edit.pod:381 ../fish/guestfish.pod:1309 ../fish/virt-copy-in.pod:74 ../fish/virt-copy-out.pod:63 ../fish/virt-tar-in.pod:72 ../fish/virt-tar-out.pod:65 ../fuse/guestmount.pod:333 ../inspector/virt-inspector.pod:412 ../rescue/virt-rescue.pod:309 ../resize/virt-resize.pod:648 ../sparsify/virt-sparsify.pod:277 ../test-tool/libguestfs-test-tool.pod:120 ../tools/virt-list-filesystems.pl:221 ../tools/virt-list-partitions.pl:290 ../tools/virt-make-fs.pl:577 ../tools/virt-tar.pl:324 ../tools/virt-win-reg.pl:785 msgid "" "This program is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -564,7 +782,7 @@ msgid "" msgstr "" #. type: textblock -#: ../cat/virt-cat.pod:230 ../cat/virt-filesystems.pod:406 ../cat/virt-ls.pod:525 ../df/virt-df.pod:253 ../edit/virt-edit.pod:386 ../fish/guestfish.pod:1280 ../fish/virt-copy-in.pod:79 ../fish/virt-copy-out.pod:68 ../fish/virt-tar-in.pod:77 ../fish/virt-tar-out.pod:70 ../fuse/guestmount.pod:338 ../inspector/virt-inspector.pod:417 ../rescue/virt-rescue.pod:314 ../resize/virt-resize.pod:653 ../sparsify/virt-sparsify.pod:282 ../test-tool/libguestfs-test-tool.pod:125 ../tools/virt-list-filesystems.pl:226 ../tools/virt-list-partitions.pl:295 ../tools/virt-make-fs.pl:582 ../tools/virt-tar.pl:329 ../tools/virt-win-reg.pl:790 +#: ../align/virt-alignment-scan.pod:373 ../cat/virt-cat.pod:230 ../cat/virt-filesystems.pod:406 ../cat/virt-ls.pod:525 ../clone/virt-sysprep.pod:402 ../df/virt-df.pod:253 ../edit/virt-edit.pod:386 ../fish/guestfish.pod:1314 ../fish/virt-copy-in.pod:79 ../fish/virt-copy-out.pod:68 ../fish/virt-tar-in.pod:77 ../fish/virt-tar-out.pod:70 ../fuse/guestmount.pod:338 ../inspector/virt-inspector.pod:417 ../rescue/virt-rescue.pod:314 ../resize/virt-resize.pod:653 ../sparsify/virt-sparsify.pod:282 ../test-tool/libguestfs-test-tool.pod:125 ../tools/virt-list-filesystems.pl:226 ../tools/virt-list-partitions.pl:295 ../tools/virt-make-fs.pl:582 ../tools/virt-tar.pl:329 ../tools/virt-win-reg.pl:790 msgid "" "You should have received a copy of the GNU General Public License along with " "this program; if not, write to the Free Software Foundation, Inc., 675 Mass " @@ -572,6 +790,323 @@ msgid "" msgstr "" #. type: textblock +#: ../cat/virt-cat.pod:5 +msgid "virt-cat - Display files in a virtual machine" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:9 +#, no-wrap +msgid "" +" virt-cat [--options] -d domname file [file ...]\n" +"\n" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:11 +#, no-wrap +msgid "" +" virt-cat [--options] -a disk.img [-a disk.img ...] file [file ...]\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:13 ../edit/virt-edit.pod:15 ../inspector/virt-inspector.pod:13 +msgid "Old-style:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:15 +#, no-wrap +msgid "" +" virt-cat domname file\n" +"\n" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:17 +#, no-wrap +msgid "" +" virt-cat disk.img file\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:21 +msgid "" +"C is a command line tool to display the contents of C where " +"C exists in the named virtual machine (or disk image)." +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:24 +msgid "" +"Multiple filenames can be given, in which case they are concatenated " +"together. Each filename must be a full path, starting at the root directory " +"(starting with '/')." +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:28 +msgid "" +"C can be used to quickly view a file. To edit a file, use " +"C. For more complex cases you should look at the L " +"tool (see L below)." +msgstr "" + +#. type: =head1 +#: ../cat/virt-cat.pod:32 ../cat/virt-ls.pod:35 ../df/virt-df.pod:43 ../edit/virt-edit.pod:44 ../fish/guestfish.pod:41 ../fish/guestfish.pod:1050 ../fish/virt-copy-in.pod:29 ../fish/virt-copy-out.pod:21 ../fish/virt-tar-in.pod:30 ../fish/virt-tar-out.pod:24 ../fuse/guestmount.pod:39 ../resize/virt-resize.pod:27 ../sparsify/virt-sparsify.pod:75 ../tools/virt-tar.pl:50 +msgid "EXAMPLES" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:34 +msgid "Display C file from inside the libvirt VM called C:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:37 +#, no-wrap +msgid "" +" virt-cat -d mydomain /etc/fstab\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:39 +msgid "List syslog messages from a VM disk image file:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:41 +#, no-wrap +msgid "" +" virt-cat -a disk.img /var/log/messages | tail\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:43 +msgid "Find out what DHCP IP address a VM acquired:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:45 +#, no-wrap +msgid "" +" virt-cat -d mydomain /var/log/messages | \\\n" +" grep 'dhclient: bound to' | tail\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:48 +msgid "Find out what packages were recently installed:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:50 +#, no-wrap +msgid "" +" virt-cat -d mydomain /var/log/yum.log | tail\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:52 +msgid "Find out who is logged on inside a virtual machine:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:54 +#, no-wrap +msgid "" +" virt-cat -d mydomain /var/run/utmp > /tmp/utmp\n" +" who /tmp/utmp\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:57 +msgid "or who was logged on:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:59 +#, no-wrap +msgid "" +" virt-cat -d mydomain /var/log/wtmp > /tmp/wtmp\n" +" last -f /tmp/wtmp\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:74 ../cat/virt-filesystems.pod:103 ../cat/virt-ls.pod:273 ../df/virt-df.pod:71 ../edit/virt-edit.pod:74 ../inspector/virt-inspector.pod:67 ../rescue/virt-rescue.pod:96 +msgid "" +"Add I which should be a disk image from a virtual machine. If the " +"virtual machine has multiple block devices, you must supply all of them with " +"separate I<-a> options." +msgstr "" + +#. type: =item +#: ../cat/virt-cat.pod:98 ../cat/virt-filesystems.pod:148 ../cat/virt-ls.pod:314 ../edit/virt-edit.pod:112 ../fish/guestfish.pod:217 ../fuse/guestmount.pod:126 ../inspector/virt-inspector.pod:92 +msgid "B<--echo-keys>" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:100 +msgid "" +"When prompting for keys and passphrases, virt-cat normally turns echoing off " +"so you cannot see what you are typing. If you are not worried about Tempest " +"attacks and there is no one else in the room you can specify this flag to " +"see what you are typing." +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:116 +#, no-wrap +msgid "" +" virt-cat --format=raw -a disk.img file\n" +"\n" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:120 +#, no-wrap +msgid "" +" virt-cat --format=raw -a disk.img --format -a another.img file\n" +"\n" +msgstr "" + +#. type: =item +#: ../cat/virt-cat.pod:129 ../cat/virt-filesystems.pod:200 ../cat/virt-ls.pod:361 ../edit/virt-edit.pod:156 ../fish/guestfish.pod:289 ../fuse/guestmount.pod:163 ../inspector/virt-inspector.pod:114 +msgid "B<--keys-from-stdin>" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:131 ../cat/virt-filesystems.pod:202 ../cat/virt-ls.pod:363 ../edit/virt-edit.pod:158 ../fish/guestfish.pod:291 ../fuse/guestmount.pod:165 ../inspector/virt-inspector.pod:116 +msgid "" +"Read key or passphrase parameters from stdin. The default is to try to read " +"passphrases from the user by opening C." +msgstr "" + +#. type: =head1 +#: ../cat/virt-cat.pod:152 ../cat/virt-ls.pod:443 ../edit/virt-edit.pod:179 ../inspector/virt-inspector.pod:137 ../rescue/virt-rescue.pod:209 +msgid "OLD-STYLE COMMAND LINE ARGUMENTS" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:154 +msgid "Previous versions of virt-cat allowed you to write either:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:156 +#, no-wrap +msgid "" +" virt-cat disk.img [disk.img ...] file\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:158 ../cat/virt-ls.pod:449 ../edit/virt-edit.pod:185 ../inspector/virt-inspector.pod:143 ../rescue/virt-rescue.pod:215 +msgid "or" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:160 +#, no-wrap +msgid "" +" virt-cat guestname file\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:162 ../cat/virt-ls.pod:453 ../edit/virt-edit.pod:189 ../inspector/virt-inspector.pod:147 ../rescue/virt-rescue.pod:219 +msgid "" +"whereas in this version you should use I<-a> or I<-d> respectively to avoid " +"the confusing case where a disk image might have the same name as a guest." +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:166 ../cat/virt-ls.pod:457 ../edit/virt-edit.pod:193 ../inspector/virt-inspector.pod:151 ../rescue/virt-rescue.pod:223 +msgid "For compatibility the old style is still supported." +msgstr "" + +#. type: =head1 +#: ../cat/virt-cat.pod:168 ../edit/virt-edit.pod:297 +msgid "USING GUESTFISH" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:170 +msgid "" +"L is a more powerful, lower level tool which you can use when " +"C doesn't work." +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:173 +msgid "Using C is approximately equivalent to doing:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:175 +#, no-wrap +msgid "" +" guestfish --ro -i -d domname download file -\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:177 +msgid "" +"where C is the name of the libvirt guest, and C is the full " +"path to the file. Note the final C<-> (meaning \"output to stdout\")." +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:181 +msgid "" +"The command above uses libguestfs's guest inspection feature and so does not " +"work on guests that libguestfs cannot inspect, or on things like arbitrary " +"disk images that don't contain guests. To display a file from a disk image " +"directly, use:" +msgstr "" + +#. type: verbatim +#: ../cat/virt-cat.pod:186 +#, no-wrap +msgid "" +" guestfish --ro -a disk.img -m /dev/sda1 download file -\n" +"\n" +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:188 +msgid "" +"where C is the disk image, C is the filesystem within " +"the disk image, and C is the full path to the file." +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:200 ../cat/virt-filesystems.pod:374 ../cat/virt-ls.pod:492 ../df/virt-df.pod:224 ../edit/virt-edit.pod:351 ../fuse/guestmount.pod:305 ../inspector/virt-inspector.pod:377 ../resize/virt-resize.pod:610 ../sparsify/virt-sparsify.pod:229 +msgid "This program returns 0 if successful, or non-zero if there was an error." +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:205 +msgid "" +"L, L, L, L, " +"L, L." +msgstr "" + +#. type: textblock +#: ../cat/virt-cat.pod:218 ../inspector/virt-inspector.pod:405 ../resize/virt-resize.pod:641 +msgid "Copyright (C) 2010-2011 Red Hat Inc." +msgstr "" + +#. type: textblock #: ../cat/virt-filesystems.pod:5 msgid "" "virt-filesystems - List filesystems, partitions, block devices, LVM in a " @@ -1963,6 +2498,546 @@ msgid "Copyright (C) 2009-2011 Red Hat Inc." msgstr "" #. type: textblock +#: ../clone/virt-sysprep.pod:5 +msgid "virt-sysprep - Reset or unconfigure a virtual machine so clones can be made" +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:9 +#, no-wrap +msgid "" +" virt-sysprep [--options] -d domname\n" +"\n" +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:11 +#, no-wrap +msgid "" +" virt-sysprep [--options] -a disk.img [-a disk.img ...]\n" +"\n" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:15 +msgid "" +"Virt-sysprep \"resets\" or \"unconfigures\" a virtual machine so that clones " +"can be made from it. Steps in this process include removing SSH host keys, " +"removing persistent network MAC configuration, and removing user accounts. " +"Each step can be enabled or disabled as required." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:21 +msgid "" +"Virt-sysprep is a simple shell script, allowing easy inspection or " +"customization by the system administrator." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:24 +msgid "" +"Virt-sysprep modifies the guest or disk image I. The guest must " +"be shut down. If you want to preserve the existing contents of the guest, " +"you I. See L " +"below." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:29 +msgid "" +"\"Sysprep\" stands for \"system preparation\" tool. The name comes from the " +"Microsoft program C which is used to unconfigure Windows " +"machines in preparation for cloning them. Having said that, virt-sysprep " +"does I currently work on Microsoft Windows guests. We plan to support " +"Windows sysprepping in a future version, and we already have code to do it." +msgstr "" + +#. type: =item +#: ../clone/virt-sysprep.pod:70 +msgid "B<--enable=...>" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:72 +msgid "" +"Choose which sysprep operations to perform. Give a comma-separated list of " +"operations, for example:" +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:75 +#, no-wrap +msgid "" +" --enable=ssh-hostkeys,udev-persistent-net\n" +"\n" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:77 +msgid "would enable ONLY C and C operations." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:79 +msgid "" +"If the I<--enable> option is not given, then we default to trying all " +"possible sysprep operations. But some sysprep operations are skipped for " +"some guest types." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:83 +msgid "" +"Use I<--list-operations> to list operations supported by a particular " +"version of virt-sysprep." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:86 +msgid "See L below for a list and an explanation of each operation." +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:100 +#, no-wrap +msgid "" +" virt-sysprep --format=raw -a disk.img\n" +"\n" +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:104 +#, no-wrap +msgid "" +" virt-sysprep --format=raw -a disk.img --format -a another.img\n" +"\n" +msgstr "" + +#. type: =item +#: ../clone/virt-sysprep.pod:113 +msgid "B<--hostname> newhostname" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:115 +msgid "" +"Change the hostname. See the L operation below. If not given, " +"defaults to C." +msgstr "" + +#. type: =item +#: ../clone/virt-sysprep.pod:118 +msgid "B<--list-operations>" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:120 +msgid "List the operations supported by the virt-sysprep program." +msgstr "" + +#. type: =head1 +#: ../clone/virt-sysprep.pod:140 +msgid "OPERATIONS" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:142 +msgid "" +"If the I<--enable> option is I given, then all sysprep operations in " +"the list below are enabled, although some are skipped depending on the type " +"of guest." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:146 +msgid "" +"Operations can be individually enabled using the I<--enable> option. Use a " +"comma-separated list, for example:" +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:149 +#, no-wrap +msgid "" +" virt-sysprep --enable=ssh-hostkeys,udev-persistent-net [etc..]\n" +"\n" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:151 +msgid "" +"To list the operations supported by the current version of virt-sysprep, use " +"I<--list-operations>." +msgstr "" + +#. type: =head2 +#: ../clone/virt-sysprep.pod:154 +msgid "hostname" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:156 +msgid "" +"This changes the hostname of the guest to the value given in the " +"I<--hostname> parameter." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:159 +msgid "" +"If the I<--hostname> parameter is not given, then the hostname is changed to " +"C." +msgstr "" + +#. type: =head2 +#: ../clone/virt-sysprep.pod:162 +msgid "net-hwaddr" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:164 +msgid "" +"Remove HWADDR (hard-coded MAC address) configuration. For Fedora and Red " +"Hat Enterprise Linux, this is removed from C files." +msgstr "" + +#. type: =head2 +#: ../clone/virt-sysprep.pod:167 +msgid "ssh-hostkeys" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:169 +msgid "This erases the SSH host keys in the guest." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:171 +msgid "" +"The SSH host keys are regenerated (differently) next time the guest is " +"booted." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:174 +msgid "" +"If, after cloning, the guest gets the same IP address, ssh will give you a " +"stark warning about the host key changing:" +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:177 +#, no-wrap +msgid "" +" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" +" @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @\n" +" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" +" IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!\n" +"\n" +msgstr "" + +#. type: =head2 +#: ../clone/virt-sysprep.pod:182 +msgid "udev-persistent-net" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:184 +msgid "" +"This erases udev persistent net rules which map the guest's existing MAC " +"address to a fixed ethernet device (eg. eth0)." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:187 +msgid "" +"After a guest is cloned, the MAC address usually changes. Since the old MAC " +"address occupies the old name (eg. eth0), this means the fresh MAC address " +"is assigned to a new name (eg. eth1) and this is usually undesirable. " +"Erasing the udev persistent net rules avoids this." +msgstr "" + +#. type: =head1 +#: ../clone/virt-sysprep.pod:192 +msgid "COPYING AND CLONING" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:194 +msgid "" +"Virt-sysprep can be used as part of a process of cloning guests, or to " +"prepare a template from which guests can be cloned. There are many " +"different ways to achieve this using the virt tools, and this section is " +"just an introduction." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:199 +msgid "A virtual machine (when switched off) consists of two parts:" +msgstr "" + +#. type: =item +#: ../clone/virt-sysprep.pod:203 +msgid "I" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:205 +msgid "" +"The configuration or description of the guest. eg. The libvirt XML (see " +"C), the running configuration of the guest, or another " +"external format like OVF." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:209 +msgid "Some configuration items that might need to be changed:" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:215 +msgid "name" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:219 ../clone/virt-sysprep.pod:246 +msgid "UUID" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:223 +msgid "path to block device(s)" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:227 +msgid "network card MAC address" +msgstr "" + +#. type: =item +#: ../clone/virt-sysprep.pod:231 +msgid "I" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:233 +msgid "" +"One or more hard disk images, themselves containing files, directories, " +"applications, kernels, configuration, etc." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:236 +msgid "Some things inside the block devices that might need to be changed:" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:242 +msgid "hostname and other net configuration" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:250 +msgid "SSH host keys" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:254 +msgid "Windows unique security ID (SID)" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:258 +msgid "Puppet registration" +msgstr "" + +#. type: =head2 +#: ../clone/virt-sysprep.pod:264 +msgid "COPYING THE BLOCK DEVICE" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:266 +msgid "" +"Starting with an original guest, you probably wish to copy the guest block " +"device and its configuration to make a template. Then once you are happy " +"with the template, you will want to make many clones from it." +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:271 +#, no-wrap +msgid "" +" virt-sysprep\n" +" |\n" +" v\n" +" original guest --------> template ---------->\n" +" \\------> cloned\n" +" \\-----> guests\n" +" \\---->\n" +"\n" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:279 +msgid "" +"You can, of course, just copy the block device on the host using L or " +"L." +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:282 +#, no-wrap +msgid "" +" dd dd\n" +" original guest --------> template ---------->\n" +" \\------> cloned\n" +" \\-----> guests\n" +" \\---->\n" +"\n" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:288 +msgid "There are some smarter (and faster) ways too:" +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:294 +#, no-wrap +msgid "" +" snapshot\n" +" template ---------->\n" +" \\------> cloned\n" +" \\-----> guests\n" +" \\---->\n" +"\n" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:300 +msgid "" +"Use the block device as a backing file and create a snapshot on top for each " +"guest. The advantage is that you don't need to copy the block device (very " +"fast) and only changes are stored (less storage required)." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:305 +msgid "" +"Note that writing to the backing file once you have created guests on top of " +"it is not possible: you will corrupt the guests." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:308 +msgid "" +"Tools that can do this include: L (with the I option), L (I<--snapshot> option). Some " +"filesystems (such as btrfs) and most Network Attached Storage devices can " +"also create cheap snapshots from files or LUNs." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:316 +msgid "Get your NAS to snapshot and/or duplicate the LUN." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:320 +msgid "Prepare your template using L. See below." +msgstr "" + +#. type: =head2 +#: ../clone/virt-sysprep.pod:324 +msgid "VIRT-CLONE" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:326 +msgid "" +"A separate tool, L, can be used to duplicate the block device " +"and/or modify the external libvirt configuration of a guest. It will reset " +"the name, UUID and MAC address of the guest in the libvirt XML." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:331 +msgid "" +"L does not use libguestfs and cannot look inside the disk " +"image. This was the original motivation to write virt-sysprep." +msgstr "" + +#. type: =head2 +#: ../clone/virt-sysprep.pod:334 +msgid "SPARSIFY" +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:336 +#, no-wrap +msgid "" +" virt-sparsify\n" +" original guest --------> template\n" +"\n" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:339 +msgid "" +"L can be used to make the cloning template smaller, making " +"it easier to compress and/or faster to copy." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:342 +msgid "" +"Notice that since virt-sparsify also copies the image, you can use it to " +"make the initial copy (instead of C
)." +msgstr "" + +#. type: =head2 +#: ../clone/virt-sysprep.pod:345 +msgid "RESIZE" +msgstr "" + +#. type: verbatim +#: ../clone/virt-sysprep.pod:347 +#, no-wrap +msgid "" +" virt-resize\n" +" template ---------->\n" +" \\------> cloned\n" +" \\-----> guests\n" +" \\---->\n" +"\n" +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:353 +msgid "" +"If you want to give people cloned guests, but let them pick the size of the " +"guest themselves (eg. depending on how much they are prepared to pay for " +"disk space), then instead of copying the template, you can run " +"L. Virt-resize performs a copy and resize, and thus is " +"ideal for cloning guests from a template." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:368 +msgid "This program returns 0 on success, or 1 if there was an error." +msgstr "" + +#. type: textblock +#: ../clone/virt-sysprep.pod:372 +msgid "" +"L, L, L, L, " +"L, L, L, L, " +"L, L, L." +msgstr "" + +#. type: textblock #: ../df/virt-df.pod:5 msgid "virt-df - Display free space on virtual filesystems" msgstr "" @@ -2133,11 +3208,6 @@ msgstr "" msgid "You might use this option in the following circumstances:" msgstr "" -#. type: =item -#: ../df/virt-df.pod:148 ../df/virt-df.pod:154 ../edit/virt-edit.pod:266 ../edit/virt-edit.pod:271 ../edit/virt-edit.pod:276 ../edit/virt-edit.pod:287 ../edit/virt-edit.pod:291 ../examples/guestfs-recipes.pod:98 ../examples/guestfs-recipes.pod:102 ../examples/guestfs-recipes.pod:106 ../examples/guestfs-recipes.pod:132 ../examples/guestfs-recipes.pod:137 ../examples/guestfs-recipes.pod:227 ../examples/guestfs-recipes.pod:231 ../examples/guestfs-recipes.pod:235 ../examples/guestfs-recipes.pod:239 ../examples/guestfs-recipes.pod:243 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:390 ../fish/guestfish-actions.pod:398 ../fish/guestfish-actions.pod:405 ../fish/guestfish-actions.pod:412 ../fish/guestfish-actions.pod:1139 ../fish/guestfish-actions.pod:1143 ../fish/guestfish-actions.pod:1147 ../fish/guestfish-actions.pod:1151 ../fish/guestfish-actions.pod:1159 ../fish/guestfish-actions.pod:1163 ../fish/guestfish-actions.pod:1167 ../fish/guestfish-actions.pod:1177 ../fish/guestfish-actions.pod:1181 ../fish/guestfish-actions.pod:1185 ../fish/guestfish-actions.pod:1275 ../fish/guestfish-actions.pod:1279 ../fish/guestfish-actions.pod:1284 ../fish/guestfish-actions.pod:1289 ../fish/guestfish-actions.pod:1331 ../fish/guestfish-actions.pod:1335 ../fish/guestfish-actions.pod:1340 ../fish/guestfish-actions.pod:1596 ../fish/guestfish-actions.pod:1603 ../fish/guestfish-actions.pod:1610 ../fish/guestfish-actions.pod:2005 ../fish/guestfish-actions.pod:2011 ../fish/guestfish-actions.pod:2019 ../fish/guestfish-actions.pod:2026 ../fish/guestfish-actions.pod:2033 ../fish/guestfish.pod:445 ../fish/guestfish.pod:449 ../fish/guestfish.pod:453 ../fish/guestfish.pod:457 ../inspector/virt-inspector.pod:393 ../inspector/virt-inspector.pod:397 ../resize/virt-resize.pod:282 ../resize/virt-resize.pod:286 ../resize/virt-resize.pod:295 ../resize/virt-resize.pod:301 ../sparsify/virt-sparsify.pod:32 ../sparsify/virt-sparsify.pod:39 ../sparsify/virt-sparsify.pod:43 ../sparsify/virt-sparsify.pod:49 ../sparsify/virt-sparsify.pod:54 ../sparsify/virt-sparsify.pod:58 ../sparsify/virt-sparsify.pod:64 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:29 ../src/guestfs-actions.pod:588 ../src/guestfs-actions.pod:596 ../src/guestfs-actions.pod:603 ../src/guestfs-actions.pod:610 ../src/guestfs-actions.pod:1778 ../src/guestfs-actions.pod:1782 ../src/guestfs-actions.pod:1786 ../src/guestfs-actions.pod:1790 ../src/guestfs-actions.pod:1798 ../src/guestfs-actions.pod:1802 ../src/guestfs-actions.pod:1806 ../src/guestfs-actions.pod:1816 ../src/guestfs-actions.pod:1820 ../src/guestfs-actions.pod:1824 ../src/guestfs-actions.pod:1962 ../src/guestfs-actions.pod:1966 ../src/guestfs-actions.pod:1971 ../src/guestfs-actions.pod:1976 ../src/guestfs-actions.pod:2037 ../src/guestfs-actions.pod:2041 ../src/guestfs-actions.pod:2046 ../src/guestfs-actions.pod:2461 ../src/guestfs-actions.pod:2468 ../src/guestfs-actions.pod:2475 ../src/guestfs-actions.pod:3012 ../src/guestfs-actions.pod:3018 ../src/guestfs-actions.pod:3026 ../src/guestfs-actions.pod:3033 ../src/guestfs-actions.pod:3040 ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:398 ../src/guestfs.pod:402 ../src/guestfs.pod:407 ../src/guestfs.pod:411 ../src/guestfs.pod:416 ../src/guestfs.pod:421 ../src/guestfs.pod:1094 ../src/guestfs.pod:1098 ../src/guestfs.pod:1102 ../src/guestfs.pod:1107 ../src/guestfs.pod:1115 ../src/guestfs.pod:1134 ../src/guestfs.pod:1142 ../src/guestfs.pod:1164 ../src/guestfs.pod:1168 ../src/guestfs.pod:1172 ../src/guestfs.pod:1176 ../src/guestfs.pod:1180 ../src/guestfs.pod:1184 ../src/guestfs.pod:1674 ../src/guestfs.pod:1679 ../src/guestfs.pod:1683 ../src/guestfs.pod:1785 ../src/guestfs.pod:1790 ../src/guestfs.pod:1794 ../src/guestfs.pod:1804 ../src/guestfs.pod:2093 ../src/guestfs.pod:2098 ../src/guestfs.pod:2104 ../src/guestfs.pod:2112 ../src/guestfs.pod:2559 ../src/guestfs.pod:2565 ../src/guestfs.pod:2570 ../src/guestfs.pod:2576 ../src/guestfs.pod:2959 ../src/guestfs.pod:2964 ../src/guestfs.pod:2968 ../src/guestfs.pod:2972 ../src/guestfs.pod:2976 ../src/guestfs.pod:2990 ../src/guestfs.pod:2995 ../src/guestfs.pod:3223 ../src/guestfs.pod:3227 ../src/guestfs.pod:3231 ../src/guestfs.pod:3235 ../tools/virt-win-reg.pl:197 ../tools/virt-win-reg.pl:202 ../tools/virt-win-reg.pl:208 ../tools/virt-win-reg.pl:710 ../tools/virt-win-reg.pl:716 ../tools/virt-win-reg.pl:722 -msgid "*" -msgstr "" - #. type: textblock #: ../df/virt-df.pod:150 msgid "" @@ -2721,7 +3791,7 @@ msgid "" msgstr "" #. type: =head1 -#: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1086 ../rescue/virt-rescue.pod:261 ../sparsify/virt-sparsify.pod:232 ../src/guestfs.pod:3106 ../test-tool/libguestfs-test-tool.pod:95 +#: ../edit/virt-edit.pod:329 ../fish/guestfish.pod:1118 ../rescue/virt-rescue.pod:261 ../sparsify/virt-sparsify.pod:232 ../src/guestfs.pod:3194 ../test-tool/libguestfs-test-tool.pod:95 msgid "ENVIRONMENT VARIABLES" msgstr "" @@ -2964,12 +4034,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../erlang/examples/guestfs-erlang.pod:110 ../examples/guestfs-examples.pod:45 ../examples/guestfs-recipes.pod:397 ../fish/guestfish.pod:1261 ../fish/virt-copy-in.pod:60 ../fish/virt-copy-out.pod:49 ../fish/virt-tar-in.pod:58 ../fish/virt-tar-out.pod:51 ../fuse/guestmount.pod:319 ../inspector/virt-inspector.pod:389 ../java/examples/guestfs-java.pod:58 ../ocaml/examples/guestfs-ocaml.pod:91 ../perl/examples/guestfs-perl.pod:52 ../python/examples/guestfs-python.pod:54 ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3242 ../test-tool/libguestfs-test-tool.pod:106 +#: ../erlang/examples/guestfs-erlang.pod:110 ../examples/guestfs-examples.pod:45 ../examples/guestfs-recipes.pod:397 ../fish/guestfish.pod:1295 ../fish/virt-copy-in.pod:60 ../fish/virt-copy-out.pod:49 ../fish/virt-tar-in.pod:58 ../fish/virt-tar-out.pod:51 ../fuse/guestmount.pod:319 ../inspector/virt-inspector.pod:389 ../java/examples/guestfs-java.pod:58 ../ocaml/examples/guestfs-ocaml.pod:91 ../perl/examples/guestfs-perl.pod:52 ../python/examples/guestfs-python.pod:54 ../ruby/examples/guestfs-ruby.pod:48 ../src/guestfs.pod:3333 ../test-tool/libguestfs-test-tool.pod:106 msgid "AUTHORS" msgstr "" #. type: textblock -#: ../erlang/examples/guestfs-erlang.pod:112 ../examples/guestfs-examples.pod:47 ../examples/guestfs-recipes.pod:399 ../fish/guestfish.pod:1263 ../fish/virt-copy-in.pod:62 ../fish/virt-copy-out.pod:51 ../fish/virt-tar-in.pod:60 ../fish/virt-tar-out.pod:53 ../fuse/guestmount.pod:321 ../java/examples/guestfs-java.pod:60 ../ocaml/examples/guestfs-ocaml.pod:93 ../perl/examples/guestfs-perl.pod:54 ../python/examples/guestfs-python.pod:56 ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3244 ../test-tool/libguestfs-test-tool.pod:108 +#: ../erlang/examples/guestfs-erlang.pod:112 ../examples/guestfs-examples.pod:47 ../examples/guestfs-recipes.pod:399 ../fish/guestfish.pod:1297 ../fish/virt-copy-in.pod:62 ../fish/virt-copy-out.pod:51 ../fish/virt-tar-in.pod:60 ../fish/virt-tar-out.pod:53 ../fuse/guestmount.pod:321 ../java/examples/guestfs-java.pod:60 ../ocaml/examples/guestfs-ocaml.pod:93 ../perl/examples/guestfs-perl.pod:54 ../python/examples/guestfs-python.pod:56 ../ruby/examples/guestfs-ruby.pod:50 ../src/guestfs.pod:3335 ../test-tool/libguestfs-test-tool.pod:108 msgid "Richard W.M. Jones (C)" msgstr "" @@ -2986,7 +4056,7 @@ msgid "" msgstr "" #. type: textblock -#: ../erlang/examples/guestfs-erlang.pod:121 ../examples/guestfs-examples.pod:56 ../examples/guestfs-recipes.pod:408 ../java/examples/guestfs-java.pod:69 ../ocaml/examples/guestfs-ocaml.pod:102 ../perl/examples/guestfs-perl.pod:63 ../python/examples/guestfs-python.pod:65 ../ruby/examples/guestfs-ruby.pod:59 ../src/guestfs.pod:3251 +#: ../erlang/examples/guestfs-erlang.pod:121 ../examples/guestfs-examples.pod:56 ../examples/guestfs-recipes.pod:408 ../java/examples/guestfs-java.pod:69 ../ocaml/examples/guestfs-ocaml.pod:102 ../perl/examples/guestfs-perl.pod:63 ../python/examples/guestfs-python.pod:65 ../ruby/examples/guestfs-ruby.pod:59 ../src/guestfs.pod:3342 msgid "" "This library is free software; you can redistribute it and/or modify it " "under the terms of the GNU Lesser General Public License as published by the " @@ -2995,7 +4065,7 @@ msgid "" msgstr "" #. type: textblock -#: ../erlang/examples/guestfs-erlang.pod:126 ../examples/guestfs-examples.pod:61 ../examples/guestfs-recipes.pod:413 ../java/examples/guestfs-java.pod:74 ../ocaml/examples/guestfs-ocaml.pod:107 ../perl/examples/guestfs-perl.pod:68 ../python/examples/guestfs-python.pod:70 ../ruby/examples/guestfs-ruby.pod:64 ../src/guestfs.pod:3256 +#: ../erlang/examples/guestfs-erlang.pod:126 ../examples/guestfs-examples.pod:61 ../examples/guestfs-recipes.pod:413 ../java/examples/guestfs-java.pod:74 ../ocaml/examples/guestfs-ocaml.pod:107 ../perl/examples/guestfs-perl.pod:68 ../python/examples/guestfs-python.pod:70 ../ruby/examples/guestfs-ruby.pod:64 ../src/guestfs.pod:3347 msgid "" "This library is distributed in the hope that it will be useful, but WITHOUT " "ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " @@ -3004,7 +4074,7 @@ msgid "" msgstr "" #. type: textblock -#: ../erlang/examples/guestfs-erlang.pod:131 ../examples/guestfs-examples.pod:66 ../examples/guestfs-recipes.pod:418 ../java/examples/guestfs-java.pod:79 ../ocaml/examples/guestfs-ocaml.pod:112 ../perl/examples/guestfs-perl.pod:73 ../python/examples/guestfs-python.pod:75 ../ruby/examples/guestfs-ruby.pod:69 ../src/guestfs.pod:3261 +#: ../erlang/examples/guestfs-erlang.pod:131 ../examples/guestfs-examples.pod:66 ../examples/guestfs-recipes.pod:418 ../java/examples/guestfs-java.pod:79 ../ocaml/examples/guestfs-ocaml.pod:112 ../perl/examples/guestfs-perl.pod:73 ../python/examples/guestfs-python.pod:75 ../ruby/examples/guestfs-ruby.pod:69 ../src/guestfs.pod:3352 msgid "" "You should have received a copy of the GNU Lesser General Public License " "along with this library; if not, write to the Free Software Foundation, " @@ -3413,7 +4483,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../examples/guestfs-recipes.pod:164 +#: ../examples/guestfs-recipes.pod:164 ../fish/guestfish.pod:984 #, no-wrap msgid "" " set -e\n" @@ -12697,7 +13767,7 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish-actions.pod:4140 ../src/guestfs-actions.pod:6325 ../src/guestfs.pod:2826 +#: ../fish/guestfish-actions.pod:4140 ../src/guestfs-actions.pod:6325 ../src/guestfs.pod:2901 msgid "C" msgstr "" @@ -16080,7 +17150,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:135 +#: ../fish/guestfish.pod:135 ../src/guestfs.pod:2228 #, no-wrap msgid "" " guestfish -N fs\n" @@ -16093,7 +17163,7 @@ msgid "To list what is available do:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:1009 +#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:1041 #, no-wrap msgid "" " guestfish -N help | less\n" @@ -17899,18 +18969,85 @@ msgstr "" #. type: =head2 #: ../fish/guestfish.pod:976 -msgid "REMOTE CONTROL RUN COMMAND HANGING" +msgid "USING REMOTE CONTROL ROBUSTLY FROM SHELL SCRIPTS" msgstr "" #. type: textblock #: ../fish/guestfish.pod:978 msgid "" +"From Bash, you can use the following code which creates a guestfish " +"instance, correctly quotes the command line, handles failure to start, and " +"cleans up guestfish when the script exits:" +msgstr "" + +#. type: verbatim +#: ../fish/guestfish.pod:982 ../src/guestfs.pod:965 +#, no-wrap +msgid "" +" #!/bin/bash -\n" +" \n" +msgstr "" + +#. type: verbatim +#: ../fish/guestfish.pod:986 +#, no-wrap +msgid "" +" guestfish[0]=\"guestfish\"\n" +" guestfish[1]=\"--listen\"\n" +" guestfish[2]=\"--ro\"\n" +" guestfish[3]=\"-a\"\n" +" guestfish[4]=\"disk.img\"\n" +" \n" +msgstr "" + +#. type: verbatim +#: ../fish/guestfish.pod:992 +#, no-wrap +msgid "" +" GUESTFISH_PID=\n" +" eval $(\"${guestfish[@]}\")\n" +" if [ -z \"$GUESTFISH_PID\" ]; then\n" +" echo \"error: guestfish didn't start up, see error messages above\"\n" +" exit 1\n" +" fi\n" +" \n" +msgstr "" + +#. type: verbatim +#: ../fish/guestfish.pod:999 +#, no-wrap +msgid "" +" kill_guestfish ()\n" +" {\n" +" kill $GUESTFISH_PID >/dev/null 2>&1 ||:\n" +" }\n" +" trap kill_guestfish EXIT\n" +" \n" +msgstr "" + +#. type: verbatim +#: ../fish/guestfish.pod:1005 +#, no-wrap +msgid "" +" guestfish --remote run\n" +" # etc.\n" +"\n" +msgstr "" + +#. type: =head2 +#: ../fish/guestfish.pod:1008 +msgid "REMOTE CONTROL RUN COMMAND HANGING" +msgstr "" + +#. type: textblock +#: ../fish/guestfish.pod:1010 +msgid "" "Using the C (or C) command remotely in a command substitution " "context hangs, ie. don't do (note the backquotes):" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:981 +#: ../fish/guestfish.pod:1013 #, no-wrap msgid "" " a=`guestfish --remote run`\n" @@ -17918,7 +19055,7 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:983 +#: ../fish/guestfish.pod:1015 msgid "" "Since the C command produces no output on stdout, this is not useful " "anyway. For further information see " @@ -17926,12 +19063,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../fish/guestfish.pod:987 +#: ../fish/guestfish.pod:1019 msgid "PREPARED DISK IMAGES" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:989 +#: ../fish/guestfish.pod:1021 msgid "" "Use the I<-N type> or I<--new type> parameter to select one of a set of " "preformatted disk images that guestfish can make for you to save typing. " @@ -17941,7 +19078,7 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:995 +#: ../fish/guestfish.pod:1027 msgid "" "The new disk is called C for the first I<-N>, C for " "the second and so on. Existing files in the current directory are " @@ -17949,7 +19086,7 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:999 +#: ../fish/guestfish.pod:1031 msgid "" "The type briefly describes how the disk should be sized, partitioned, how " "filesystem(s) should be created, and how content should be added. " @@ -17961,31 +19098,31 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1007 +#: ../fish/guestfish.pod:1039 msgid "To list the available types and any extra parameters they take, run:" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1011 +#: ../fish/guestfish.pod:1043 msgid "" "Note that the prepared filesystem is not mounted. You would usually have to " "use the C command or add the I<-m /dev/sda1> option." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1015 +#: ../fish/guestfish.pod:1047 msgid "" "If any I<-N> or I<--new> options are given, the guest is automatically " "launched." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1020 +#: ../fish/guestfish.pod:1052 msgid "Create a 100MB disk with an ext4-formatted partition:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1022 +#: ../fish/guestfish.pod:1054 #, no-wrap msgid "" " guestfish -N fs:ext4\n" @@ -17993,12 +19130,12 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1024 +#: ../fish/guestfish.pod:1056 msgid "Create a 32MB disk with a VFAT-formatted partition, and mount it:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1026 +#: ../fish/guestfish.pod:1058 #, no-wrap msgid "" " guestfish -N fs:vfat:32M -m /dev/sda1\n" @@ -18006,12 +19143,12 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1028 +#: ../fish/guestfish.pod:1060 msgid "Create a blank 200MB disk:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1030 +#: ../fish/guestfish.pod:1062 #, no-wrap msgid "" " guestfish -N disk:200M\n" @@ -18019,19 +19156,19 @@ msgid "" msgstr "" #. type: =head1 -#: ../fish/guestfish.pod:1032 +#: ../fish/guestfish.pod:1064 msgid "PROGRESS BARS" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1034 +#: ../fish/guestfish.pod:1066 msgid "" "Some (not all) long-running commands send progress notification messages as " "they are running. Guestfish turns these messages into progress bars." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1038 +#: ../fish/guestfish.pod:1070 msgid "" "When a command that supports progress bars takes longer than two seconds to " "run, and if progress bars are enabled, then you will see one appearing below " @@ -18039,7 +19176,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1042 +#: ../fish/guestfish.pod:1074 #, no-wrap msgid "" " > copy-size /large-file /another-file 2048M\n" @@ -18048,7 +19185,7 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1045 +#: ../fish/guestfish.pod:1077 msgid "" "The spinner on the left hand side moves round once for every progress " "notification received from the backend. This is a (reasonably) golden " @@ -18059,7 +19196,7 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1052 +#: ../fish/guestfish.pod:1084 msgid "" "Progress bars are enabled by default when guestfish is used interactively. " "You can enable them even for non-interactive modes using I<--progress-bars>, " @@ -18067,24 +19204,24 @@ msgid "" msgstr "" #. type: =head1 -#: ../fish/guestfish.pod:1057 +#: ../fish/guestfish.pod:1089 msgid "GUESTFISH COMMANDS" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1059 +#: ../fish/guestfish.pod:1091 msgid "" "The commands in this section are guestfish convenience commands, in other " "words, they are not part of the L API." msgstr "" #. type: =head2 -#: ../fish/guestfish.pod:1062 +#: ../fish/guestfish.pod:1094 msgid "help" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1064 +#: ../fish/guestfish.pod:1096 #, no-wrap msgid "" " help\n" @@ -18093,71 +19230,71 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1067 +#: ../fish/guestfish.pod:1099 msgid "Without any parameter, this provides general help." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1069 +#: ../fish/guestfish.pod:1101 msgid "With a C parameter, this displays detailed help for that command." msgstr "" #. type: =head2 -#: ../fish/guestfish.pod:1071 +#: ../fish/guestfish.pod:1103 msgid "quit | exit" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1073 +#: ../fish/guestfish.pod:1105 msgid "This exits guestfish. You can also use C<^D> key." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1075 +#: ../fish/guestfish.pod:1107 msgid "@FISH_COMMANDS@" msgstr "" #. type: =head1 -#: ../fish/guestfish.pod:1077 +#: ../fish/guestfish.pod:1109 msgid "COMMANDS" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1079 ../src/guestfs.pod:1505 +#: ../fish/guestfish.pod:1111 ../src/guestfs.pod:1505 msgid "@ACTIONS@" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1083 +#: ../fish/guestfish.pod:1115 msgid "" "guestfish returns 0 if the commands completed without error, or 1 if there " "was an error." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1090 +#: ../fish/guestfish.pod:1122 msgid "EDITOR" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1092 +#: ../fish/guestfish.pod:1124 msgid "" "The C command uses C<$EDITOR> as the editor. If not set, it uses " "C." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1095 ../src/guestfs.pod:3110 +#: ../fish/guestfish.pod:1127 ../src/guestfs.pod:3198 msgid "FEBOOTSTRAP_KERNEL" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1097 ../src/guestfs.pod:3112 +#: ../fish/guestfish.pod:1129 ../src/guestfs.pod:3200 msgid "FEBOOTSTRAP_MODULES" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1099 ../src/guestfs.pod:3114 +#: ../fish/guestfish.pod:1131 ../src/guestfs.pod:3202 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 " @@ -18167,87 +19304,87 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1105 +#: ../fish/guestfish.pod:1137 msgid "GUESTFISH_DISPLAY_IMAGE" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1107 +#: ../fish/guestfish.pod:1139 msgid "" "The C command uses C<$GUESTFISH_DISPLAY_IMAGE> to display images. " "If not set, it uses L." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1110 +#: ../fish/guestfish.pod:1142 msgid "GUESTFISH_PID" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1112 +#: ../fish/guestfish.pod:1144 msgid "" "Used with the I<--remote> option to specify the remote guestfish process to " "control. See section L." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1116 +#: ../fish/guestfish.pod:1148 msgid "HEXEDITOR" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1118 +#: ../fish/guestfish.pod:1150 msgid "" "The L command uses C<$HEXEDITOR> as the external hex editor. If " "not specified, the external L program is used." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1122 +#: ../fish/guestfish.pod:1154 msgid "HOME" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1124 +#: ../fish/guestfish.pod:1156 msgid "" "If compiled with GNU readline support, various files in the home directory " "can be used. See L." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1127 ../src/guestfs.pod:3120 +#: ../fish/guestfish.pod:1159 ../src/guestfs.pod:3208 msgid "LIBGUESTFS_APPEND" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1129 ../src/guestfs.pod:3122 +#: ../fish/guestfish.pod:1161 ../src/guestfs.pod:3210 msgid "Pass additional options to the guest kernel." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1131 ../src/guestfs.pod:3124 +#: ../fish/guestfish.pod:1163 ../src/guestfs.pod:3212 msgid "LIBGUESTFS_DEBUG" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1133 +#: ../fish/guestfish.pod:1165 msgid "" "Set C to enable verbose messages. This has the same " "effect as using the B<-v> option." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1136 ../src/guestfs.pod:3129 +#: ../fish/guestfish.pod:1168 ../src/guestfs.pod:3217 msgid "LIBGUESTFS_MEMSIZE" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1138 ../src/guestfs.pod:3131 +#: ../fish/guestfish.pod:1170 ../src/guestfs.pod:3219 msgid "Set the memory allocated to the qemu process, in megabytes. For example:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1141 ../src/guestfs.pod:3134 +#: ../fish/guestfish.pod:1173 ../src/guestfs.pod:3222 #, no-wrap msgid "" " LIBGUESTFS_MEMSIZE=700\n" @@ -18255,65 +19392,65 @@ msgid "" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1143 ../src/guestfs.pod:3136 +#: ../fish/guestfish.pod:1175 ../src/guestfs.pod:3224 msgid "LIBGUESTFS_PATH" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1145 +#: ../fish/guestfish.pod:1177 msgid "" "Set the path that guestfish uses to search for kernel and initrd.img. See " "the discussion of paths in L." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1148 ../src/guestfs.pod:3141 +#: ../fish/guestfish.pod:1180 ../src/guestfs.pod:3229 msgid "LIBGUESTFS_QEMU" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1150 ../src/guestfs.pod:3143 +#: ../fish/guestfish.pod:1182 ../src/guestfs.pod:3231 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:1154 ../src/guestfs.pod:3149 +#: ../fish/guestfish.pod:1186 ../src/guestfs.pod:3237 msgid "LIBGUESTFS_TRACE" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1156 +#: ../fish/guestfish.pod:1188 msgid "Set C to enable command traces." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1158 +#: ../fish/guestfish.pod:1190 msgid "PAGER" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1160 +#: ../fish/guestfish.pod:1192 msgid "" "The C command uses C<$PAGER> as the pager. If not set, it uses " "C." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1163 ../sparsify/virt-sparsify.pod:236 ../src/guestfs.pod:3154 +#: ../fish/guestfish.pod:1195 ../sparsify/virt-sparsify.pod:236 ../src/guestfs.pod:3242 msgid "TMPDIR" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1165 ../src/guestfs.pod:3156 +#: ../fish/guestfish.pod:1197 ../src/guestfs.pod:3244 msgid "" "Location of temporary directory, defaults to C except for the cached " "supermin appliance which defaults to C." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1168 ../src/guestfs.pod:3159 +#: ../fish/guestfish.pod:1200 ../src/guestfs.pod:3247 msgid "" "If libguestfs was compiled to use the supermin appliance then the real " "appliance is cached in this directory, shared between all handles belonging " @@ -18322,56 +19459,56 @@ msgid "" msgstr "" #. type: =head1 -#: ../fish/guestfish.pod:1176 ../fuse/guestmount.pod:288 ../rescue/virt-rescue.pod:273 +#: ../fish/guestfish.pod:1208 ../fuse/guestmount.pod:288 ../rescue/virt-rescue.pod:273 msgid "FILES" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1180 ../fuse/guestmount.pod:292 ../rescue/virt-rescue.pod:277 +#: ../fish/guestfish.pod:1212 ../fuse/guestmount.pod:292 ../rescue/virt-rescue.pod:277 msgid "$HOME/.libguestfs-tools.rc" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1182 ../fuse/guestmount.pod:294 ../rescue/virt-rescue.pod:279 +#: ../fish/guestfish.pod:1214 ../fuse/guestmount.pod:294 ../rescue/virt-rescue.pod:279 msgid "/etc/libguestfs-tools.conf" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1184 ../fuse/guestmount.pod:296 ../rescue/virt-rescue.pod:281 +#: ../fish/guestfish.pod:1216 ../fuse/guestmount.pod:296 ../rescue/virt-rescue.pod:281 msgid "" "This configuration file controls the default read-only or read-write mode " "(I<--ro> or I<--rw>)." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1187 +#: ../fish/guestfish.pod:1219 msgid "See L." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1189 +#: ../fish/guestfish.pod:1221 msgid "$HOME/.guestfish" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1191 +#: ../fish/guestfish.pod:1223 msgid "" "If compiled with GNU readline support, then the command history is saved in " "this file." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1194 +#: ../fish/guestfish.pod:1226 msgid "$HOME/.inputrc" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1196 +#: ../fish/guestfish.pod:1228 msgid "/etc/inputrc" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1198 +#: ../fish/guestfish.pod:1230 msgid "" "If compiled with GNU readline support, then these files can be used to " "configure readline. For further information, please see " @@ -18379,12 +19516,12 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1202 +#: ../fish/guestfish.pod:1234 msgid "To write rules which only apply to guestfish, use:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1204 +#: ../fish/guestfish.pod:1236 #, no-wrap msgid "" " $if guestfish\n" @@ -18394,26 +19531,26 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1208 +#: ../fish/guestfish.pod:1240 msgid "" "Variables that you can set in inputrc that change the behaviour of guestfish " "in useful ways include:" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1213 +#: ../fish/guestfish.pod:1245 msgid "completion-ignore-case (default: on)" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1215 +#: ../fish/guestfish.pod:1247 msgid "" "By default, guestfish will ignore case when tab-completing paths on the " "disk. Use:" msgstr "" #. type: verbatim -#: ../fish/guestfish.pod:1218 +#: ../fish/guestfish.pod:1250 #, no-wrap msgid "" " set completion-ignore-case off\n" @@ -18421,22 +19558,22 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1220 +#: ../fish/guestfish.pod:1252 msgid "to make guestfish case sensitive." msgstr "" #. type: =item -#: ../fish/guestfish.pod:1224 +#: ../fish/guestfish.pod:1256 msgid "test1.img" msgstr "" #. type: =item -#: ../fish/guestfish.pod:1226 +#: ../fish/guestfish.pod:1258 msgid "test2.img (etc)" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1228 +#: ../fish/guestfish.pod:1260 msgid "" "When using the I<-N> or I<--new> option, the prepared disk or filesystem " "will be created in the file C in the current directory. The " @@ -18445,19 +19582,20 @@ msgid "" msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1237 +#: ../fish/guestfish.pod:1269 msgid "" -"L, L, L, " -"L, L, L, L, " -"L, L, L, " -"L, L, L, " -"L, L, L, L, " -"L, L, L, L, " -"L, L." +"L, L, L, " +"L, L, L, L, " +"L, L, L, " +"L, L, L, " +"L, L, L, " +"L, L, L, L, " +"L, L, L, L, " +"L." msgstr "" #. type: textblock -#: ../fish/guestfish.pod:1267 ../src/guestfs.pod:3248 ../test-tool/libguestfs-test-tool.pod:112 +#: ../fish/guestfish.pod:1301 ../src/guestfs.pod:3339 ../test-tool/libguestfs-test-tool.pod:112 msgid "Copyright (C) 2009-2011 Red Hat Inc. L" msgstr "" @@ -20480,7 +21618,7 @@ msgid "" msgstr "" #. type: =item -#: ../resize/virt-resize.pod:31 ../resize/virt-resize.pod:520 ../sparsify/virt-sparsify.pod:203 ../src/guestfs.pod:469 ../src/guestfs.pod:1287 ../src/guestfs.pod:1426 ../src/guestfs.pod:2604 +#: ../resize/virt-resize.pod:31 ../resize/virt-resize.pod:520 ../sparsify/virt-sparsify.pod:203 ../src/guestfs.pod:469 ../src/guestfs.pod:1287 ../src/guestfs.pod:1426 ../src/guestfs.pod:2675 msgid "1." msgstr "" @@ -20518,7 +21656,7 @@ msgid "" msgstr "" #. type: =item -#: ../resize/virt-resize.pod:44 ../resize/virt-resize.pod:527 ../sparsify/virt-sparsify.pod:210 ../src/guestfs.pod:475 ../src/guestfs.pod:1291 ../src/guestfs.pod:1430 ../src/guestfs.pod:2629 +#: ../resize/virt-resize.pod:44 ../resize/virt-resize.pod:527 ../sparsify/virt-sparsify.pod:210 ../src/guestfs.pod:475 ../src/guestfs.pod:1291 ../src/guestfs.pod:1430 ../src/guestfs.pod:2700 msgid "2." msgstr "" @@ -21277,16 +22415,6 @@ msgid "" "NON-SPARSE RAW FORMATS>." msgstr "" -#. type: =item -#: ../resize/virt-resize.pod:414 ../sparsify/virt-sparsify.pod:153 -msgid "B<-q>" -msgstr "" - -#. type: =item -#: ../resize/virt-resize.pod:416 ../sparsify/virt-sparsify.pod:155 -msgid "B<--quiet>" -msgstr "" - #. type: textblock #: ../resize/virt-resize.pod:418 msgid "Don't print the summary." @@ -21718,7 +22846,7 @@ msgstr "" #: ../sparsify/virt-sparsify.pod:24 msgid "" "Virt-sparsify can operate on any disk image, not just ones from virtual " -"machines. If a virtual machine has multiple disk images, then you must " +"machines. If a virtual machine has more than one attached disk, you must " "sparsify each one separately." msgstr "" @@ -21986,11 +23114,6 @@ msgid "" "L, L." msgstr "" -#. type: textblock -#: ../sparsify/virt-sparsify.pod:270 -msgid "Copyright (C) 2011 Red Hat Inc." -msgstr "" - #. type: =head2 #: ../src/guestfs-actions.pod:1 msgid "guestfs_add_cdrom" @@ -32852,14 +33975,6 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:965 -#, no-wrap -msgid "" -" #!/bin/bash -\n" -" \n" -msgstr "" - -#. type: verbatim #: ../src/guestfs.pod:967 #, no-wrap msgid "" @@ -35058,25 +36173,180 @@ msgid "" "visited." msgstr "" +#. type: =head1 +#: ../src/guestfs.pod:2168 +msgid "SYSTEMTAP" +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2170 +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 " +"static markers to help in probing internal operations." +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2174 +msgid "You can list all the static markers by doing:" +msgstr "" + +#. type: verbatim +#: ../src/guestfs.pod:2176 +#, no-wrap +msgid "" +" stap -l 'process(\"/usr/lib*/libguestfs.so.0\")\n" +" .provider(\"guestfs\").mark(\"*\")'\n" +"\n" +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2179 +msgid "" +"B These static markers are I part of the stable API and may " +"change in future versions." +msgstr "" + +#. type: =head2 +#: ../src/guestfs.pod:2182 +msgid "SYSTEMTAP SCRIPT EXAMPLE" +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2184 +msgid "" +"This script contains examples of displaying both the static markers and some " +"ordinary C entry points:" +msgstr "" + +#. type: verbatim +#: ../src/guestfs.pod:2187 +#, no-wrap +msgid "" +" global last;\n" +" \n" +msgstr "" + +#. type: verbatim +#: ../src/guestfs.pod:2189 +#, no-wrap +msgid "" +" function display_time () {\n" +" now = gettimeofday_us ();\n" +" delta = 0;\n" +" if (last > 0)\n" +" delta = now - last;\n" +" last = now;\n" +" \n" +msgstr "" + +#. type: verbatim +#: ../src/guestfs.pod:2196 +#, no-wrap +msgid "" +" printf (\"%d (+%d):\", now, delta);\n" +" }\n" +" \n" +msgstr "" + +#. type: verbatim +#: ../src/guestfs.pod:2199 +#, no-wrap +msgid "" +" probe begin {\n" +" last = 0;\n" +" printf (\"ready\\n\");\n" +" }\n" +" \n" +msgstr "" + +#. type: verbatim +#: ../src/guestfs.pod:2204 +#, no-wrap +msgid "" +" /* Display all calls to static markers. */\n" +" probe process(\"/usr/lib*/libguestfs.so.0\")\n" +" .provider(\"guestfs\").mark(\"*\") ? {\n" +" display_time();\n" +" printf (\"\\t%s %s\\n\", $$name, $$parms);\n" +" }\n" +" \n" +msgstr "" + +#. type: verbatim +#: ../src/guestfs.pod:2211 +#, no-wrap +msgid "" +" /* Display all calls to guestfs_mkfs* functions. */\n" +" probe process(\"/usr/lib*/libguestfs.so.0\")\n" +" .function(\"guestfs_mkfs*\") ? {\n" +" display_time();\n" +" printf (\"\\t%s %s\\n\", probefunc(), $$parms);\n" +" }\n" +"\n" +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2218 +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 " +"to several special stap groups. Consult the systemtap documentation for " +"more information." +msgstr "" + +#. type: verbatim +#: ../src/guestfs.pod:2223 +#, no-wrap +msgid "" +" # stap /tmp/test.stap\n" +" ready\n" +"\n" +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2226 +msgid "In another terminal, run a guestfish command such as this:" +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2230 +msgid "In the first terminal, stap trace output similar to this is shown:" +msgstr "" + +#. type: verbatim +#: ../src/guestfs.pod:2232 +#, no-wrap +msgid "" +" 1318248056692655 (+0):\tlaunch_start\n" +" 1318248056692850 (+195): launch_build_appliance_start\n" +" 1318248056818285 (+125435): launch_build_appliance_end\n" +" 1318248056838059 (+19774): launch_run_qemu\n" +" 1318248061071167 (+4233108): launch_end\n" +" 1318248061280324 (+209157): guestfs_mkfs g=0x1024ab0 fstype=0x46116f " +"device=0x1024e60\n" +"\n" +msgstr "" + #. type: =end -#: ../src/guestfs.pod:2168 ../src/guestfs.pod:2173 +#: ../src/guestfs.pod:2239 ../src/guestfs.pod:2244 msgid "html" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2170 +#: ../src/guestfs.pod:2241 msgid "" " " msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2175 +#: ../src/guestfs.pod:2246 msgid "ARCHITECTURE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2177 +#: ../src/guestfs.pod:2248 msgid "" "Internally, libguestfs is implemented by running an appliance (a special " "type of small virtual machine) using L. Qemu runs as a child " @@ -35084,7 +36354,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2181 +#: ../src/guestfs.pod:2252 #, no-wrap msgid "" " ___________________\n" @@ -35110,14 +36380,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2201 +#: ../src/guestfs.pod:2272 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:2204 +#: ../src/guestfs.pod:2275 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 " @@ -35129,7 +36399,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2213 +#: ../src/guestfs.pod:2284 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 " @@ -35140,17 +36410,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2220 +#: ../src/guestfs.pod:2291 msgid "STATE MACHINE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2222 +#: ../src/guestfs.pod:2293 msgid "libguestfs uses a state machine to model the child process:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2224 +#: ../src/guestfs.pod:2295 #, no-wrap msgid "" " |\n" @@ -35178,7 +36448,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2246 +#: ../src/guestfs.pod:2317 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), " @@ -35187,7 +36457,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2251 +#: ../src/guestfs.pod:2322 msgid "" "The guest may be killed by L, or may die " "asynchronously at any time (eg. due to some internal error), and that causes " @@ -35195,14 +36465,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2255 +#: ../src/guestfs.pod:2326 msgid "" "Configuration commands for qemu such as L can only be " "issued when in the CONFIG state." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2258 +#: ../src/guestfs.pod:2329 msgid "" "The API offers one call that goes from CONFIG through LAUNCHING to READY. " "L blocks until the child process is READY to accept " @@ -35211,7 +36481,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2264 +#: ../src/guestfs.pod:2335 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 " @@ -35221,7 +36491,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2270 +#: ../src/guestfs.pod:2341 msgid "" "Finally, the child process sends asynchronous messages back to the main " "program, such as kernel log messages. You can register a callback to " @@ -35229,17 +36499,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2274 +#: ../src/guestfs.pod:2345 msgid "INTERNALS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2276 +#: ../src/guestfs.pod:2347 msgid "APPLIANCE BOOT PROCESS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2278 +#: ../src/guestfs.pod:2349 msgid "" "This process has evolved and continues to evolve. The description here " "corresponds only to the current version of libguestfs and is provided for " @@ -35247,55 +36517,55 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2282 +#: ../src/guestfs.pod:2353 msgid "" "In order to follow the stages involved below, enable libguestfs debugging " "(set the environment variable C)." msgstr "" #. type: =item -#: ../src/guestfs.pod:2287 +#: ../src/guestfs.pod:2358 msgid "Create the appliance" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2289 +#: ../src/guestfs.pod:2360 msgid "" "C is invoked to create the kernel, a small " "initrd and the appliance." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2292 +#: ../src/guestfs.pod:2363 msgid "" "The appliance is cached in CUIDE> (or in another " "directory if C is set)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2295 +#: ../src/guestfs.pod:2366 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:2299 +#: ../src/guestfs.pod:2370 msgid "Start qemu and boot the kernel" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2301 +#: ../src/guestfs.pod:2372 msgid "qemu is invoked to boot the kernel." msgstr "" #. type: =item -#: ../src/guestfs.pod:2303 +#: ../src/guestfs.pod:2374 msgid "Run the initrd" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2305 +#: ../src/guestfs.pod:2376 msgid "" "C builds a small initrd. The initrd is not the " "appliance. The purpose of the initrd is to load enough kernel modules in " @@ -35303,21 +36573,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2309 +#: ../src/guestfs.pod:2380 msgid "" "The initrd is a cpio archive called " "CUIDE/initrd>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2312 +#: ../src/guestfs.pod:2383 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:2315 +#: ../src/guestfs.pod:2386 #, no-wrap msgid "" " febootstrap: ext2 mini initrd starting up\n" @@ -35328,12 +36598,12 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2320 +#: ../src/guestfs.pod:2391 msgid "Find and mount the appliance device" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2322 +#: ../src/guestfs.pod:2393 msgid "" "The appliance is a sparse file containing an ext2 filesystem which contains " "a familiar (although reduced in size) Linux operating system. It would " @@ -35341,33 +36611,33 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2326 +#: ../src/guestfs.pod:2397 msgid "" "The regular disks being inspected by libguestfs are the first devices " "exposed by qemu (eg. as C)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2329 +#: ../src/guestfs.pod:2400 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:2332 +#: ../src/guestfs.pod:2403 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:2336 +#: ../src/guestfs.pod:2407 msgid "If this works successfully you will see messages such as:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2338 +#: ../src/guestfs.pod:2409 #, no-wrap msgid "" " febootstrap: picked /sys/block/vdb/dev as root device\n" @@ -35379,19 +36649,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2344 +#: ../src/guestfs.pod:2415 msgid "" "Note that C indicates that the appliance's init " "script is now running." msgstr "" #. type: =item -#: ../src/guestfs.pod:2347 +#: ../src/guestfs.pod:2418 msgid "Initialize the appliance" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2349 +#: ../src/guestfs.pod:2420 msgid "" "The appliance itself now initializes itself. This involves starting certain " "processes like C, possibly printing some debug information, and " @@ -35399,19 +36669,19 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2353 +#: ../src/guestfs.pod:2424 msgid "The daemon" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2355 +#: ../src/guestfs.pod:2426 msgid "" "Finally the daemon (C) runs inside the appliance. If it runs you " "should see:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2358 +#: ../src/guestfs.pod:2429 #, no-wrap msgid "" " verbose daemon enabled\n" @@ -35419,14 +36689,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2360 +#: ../src/guestfs.pod:2431 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:2363 +#: ../src/guestfs.pod:2434 msgid "" "The daemon connects to this port (and hence to the library) and sends a four " "byte message C, which initiates the communication " @@ -35434,19 +36704,19 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2369 +#: ../src/guestfs.pod:2440 msgid "COMMUNICATION PROTOCOL" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2371 +#: ../src/guestfs.pod:2442 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:2374 +#: ../src/guestfs.pod:2445 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 " @@ -35454,14 +36724,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2378 +#: ../src/guestfs.pod:2449 msgid "" "The detailed format of structures is in C (note: " "this file is automatically generated)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2381 +#: ../src/guestfs.pod:2452 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 " @@ -35471,17 +36741,17 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2388 +#: ../src/guestfs.pod:2459 msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2390 +#: ../src/guestfs.pod:2461 msgid "For ordinary functions, the request message is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2392 +#: ../src/guestfs.pod:2463 #, no-wrap msgid "" " total length (header + arguments,\n" @@ -35492,7 +36762,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2397 +#: ../src/guestfs.pod:2468 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 " @@ -35501,21 +36771,21 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2403 +#: ../src/guestfs.pod:2474 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:2406 +#: ../src/guestfs.pod:2477 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:2410 +#: ../src/guestfs.pod:2481 msgid "" "For functions that take optional arguments, the optional arguments are " "encoded in the C_args> structure in the same way as ordinary " @@ -35527,12 +36797,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2418 +#: ../src/guestfs.pod:2489 msgid "The reply message for ordinary functions is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2420 +#: ../src/guestfs.pod:2491 #, no-wrap msgid "" " total length (header + ret,\n" @@ -35543,26 +36813,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2425 +#: ../src/guestfs.pod:2496 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:2428 +#: ../src/guestfs.pod:2499 msgid "As above the total length of the reply is limited to C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2431 +#: ../src/guestfs.pod:2502 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:2434 +#: ../src/guestfs.pod:2505 #, no-wrap msgid "" " total length (header + error,\n" @@ -35573,19 +36843,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2439 +#: ../src/guestfs.pod:2510 msgid "" "The C structure contains the error message as a " "string." msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2442 +#: ../src/guestfs.pod:2513 msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2444 +#: ../src/guestfs.pod:2515 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 " @@ -35593,7 +36863,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2448 +#: ../src/guestfs.pod:2519 #, no-wrap msgid "" " total length (header + arguments,\n" @@ -35607,12 +36877,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2456 +#: ../src/guestfs.pod:2527 msgid "The \"sequence of chunks\" is:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2458 +#: ../src/guestfs.pod:2529 #, no-wrap msgid "" " length of chunk (not including length word itself)\n" @@ -35626,7 +36896,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2466 +#: ../src/guestfs.pod:2537 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 " @@ -35634,7 +36904,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2470 +#: ../src/guestfs.pod:2541 msgid "" "At time of writing there are no functions that have more than one FileIn " "parameter. However this is (theoretically) supported, by sending the " @@ -35643,7 +36913,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2475 +#: ../src/guestfs.pod:2546 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 " @@ -35652,7 +36922,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2481 +#: ../src/guestfs.pod:2552 msgid "" "The daemon may also cancel. It does this by writing a special word " "C to the socket. The library listens for this during " @@ -35664,7 +36934,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2490 +#: ../src/guestfs.pod:2561 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 " @@ -35674,19 +36944,19 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2496 +#: ../src/guestfs.pod:2567 msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2498 +#: ../src/guestfs.pod:2569 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:2501 +#: ../src/guestfs.pod:2572 #, no-wrap msgid "" " total length (header + ret,\n" @@ -35700,12 +36970,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2509 +#: ../src/guestfs.pod:2580 msgid "INITIAL MESSAGE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2511 +#: ../src/guestfs.pod:2582 msgid "" "When the daemon launches it sends an initial word (C) " "which indicates that the guest and daemon is alive. This is what " @@ -35713,12 +36983,12 @@ msgid "" msgstr "" #. type: =head3 -#: ../src/guestfs.pod:2515 +#: ../src/guestfs.pod:2586 msgid "PROGRESS NOTIFICATION MESSAGES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2517 +#: ../src/guestfs.pod:2588 msgid "" "The daemon may send progress notification messages at any time. These are " "distinguished by the normal length word being replaced by " @@ -35726,7 +36996,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2521 +#: ../src/guestfs.pod:2592 msgid "" "The library turns them into progress callbacks (see " "L) if there is a callback registered, or discards " @@ -35734,7 +37004,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2525 +#: ../src/guestfs.pod:2596 msgid "" "The daemon self-limits the frequency of progress messages it sends (see " "C). Not all calls generate progress " @@ -35742,12 +37012,12 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2529 +#: ../src/guestfs.pod:2600 msgid "LIBGUESTFS VERSION NUMBERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2531 +#: ../src/guestfs.pod:2602 msgid "" "Since April 2010, libguestfs has started to make separate development and " "stable releases, along with corresponding branches in our git repository. " @@ -35755,7 +37025,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2536 +#: ../src/guestfs.pod:2607 #, no-wrap msgid "" " even numbers for stable: 1.2.x, 1.4.x, ...\n" @@ -35772,12 +37042,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2547 +#: ../src/guestfs.pod:2618 msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2549 +#: ../src/guestfs.pod:2620 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 " @@ -35787,26 +37057,26 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2555 +#: ../src/guestfs.pod:2626 msgid "Our criteria for backporting changes are:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2561 +#: ../src/guestfs.pod:2632 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:2567 +#: ../src/guestfs.pod:2638 msgid "" "Bug fixes which are not controversial, fix obvious problems, and have been " "well tested are backported." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2572 +#: ../src/guestfs.pod:2643 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 " @@ -35814,7 +37084,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2578 +#: ../src/guestfs.pod:2649 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 " @@ -35822,7 +37092,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2584 +#: ../src/guestfs.pod:2655 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 " @@ -35833,17 +37103,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:2592 +#: ../src/guestfs.pod:2663 msgid "EXTENDING LIBGUESTFS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2594 +#: ../src/guestfs.pod:2665 msgid "ADDING A NEW API ACTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2596 +#: ../src/guestfs.pod:2667 msgid "" "Large amounts of boilerplate code in libguestfs (RPC, bindings, " "documentation) are generated, and this makes it easy to extend the " @@ -35851,19 +37121,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2600 +#: ../src/guestfs.pod:2671 msgid "To add a new API action there are two changes:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2606 +#: ../src/guestfs.pod:2677 msgid "" "You need to add a description of the call (name, parameters, return type, " "tests, documentation) to C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2609 +#: ../src/guestfs.pod:2680 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 " @@ -35874,7 +37144,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2617 +#: ../src/guestfs.pod:2688 msgid "" "Most new actions are of the first type, and get added to the " "C list. Each function has a unique procedure number used " @@ -35884,7 +37154,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2623 +#: ../src/guestfs.pod:2694 msgid "" "For library-only actions of the second type, add to the " "C list. Since these functions are serviced by the " @@ -35894,36 +37164,36 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2631 +#: ../src/guestfs.pod:2702 msgid "Implement the action (in C):" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2633 +#: ../src/guestfs.pod:2704 msgid "" "For daemon actions, implement the function CnameE> in the " "C directory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2636 +#: ../src/guestfs.pod:2707 msgid "" "For library actions, implement the function CnameE> " "(note: double underscore) in the C directory." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2639 +#: ../src/guestfs.pod:2710 msgid "In either case, use another function as an example of what to do." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2643 +#: ../src/guestfs.pod:2714 msgid "After making these changes, use C to compile." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2645 +#: ../src/guestfs.pod:2716 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 " @@ -35931,12 +37201,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2649 +#: ../src/guestfs.pod:2720 msgid "ADDING TESTS FOR AN API ACTION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2651 +#: ../src/guestfs.pod:2722 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 " @@ -35946,61 +37216,61 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2657 +#: ../src/guestfs.pod:2728 msgid "" "The following describes the test environment used when you add an API test " "in C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2660 +#: ../src/guestfs.pod:2731 msgid "The test environment has 4 block devices:" msgstr "" #. type: =item -#: ../src/guestfs.pod:2664 +#: ../src/guestfs.pod:2735 msgid "C 500MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2666 +#: ../src/guestfs.pod:2737 msgid "General block device for testing." msgstr "" #. type: =item -#: ../src/guestfs.pod:2668 +#: ../src/guestfs.pod:2739 msgid "C 50MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2670 +#: ../src/guestfs.pod:2741 msgid "" "C is an ext2 filesystem used for testing filesystem write " "operations." msgstr "" #. type: =item -#: ../src/guestfs.pod:2673 +#: ../src/guestfs.pod:2744 msgid "C 10MB" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2675 +#: ../src/guestfs.pod:2746 msgid "Used in a few tests where two block devices are needed." msgstr "" #. type: =item -#: ../src/guestfs.pod:2677 +#: ../src/guestfs.pod:2748 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2679 +#: ../src/guestfs.pod:2750 msgid "ISO with fixed content (see C)." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2683 +#: ../src/guestfs.pod:2754 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 " @@ -36008,7 +37278,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2687 +#: ../src/guestfs.pod:2758 msgid "" "Each test starts with an initial scenario, selected using one of the " "C expressions, described in C. These " @@ -36018,7 +37288,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2693 +#: ../src/guestfs.pod:2764 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 " @@ -36028,14 +37298,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2699 +#: ../src/guestfs.pod:2770 msgid "" "In addition, packagers can skip individual tests by setting environment " "variables before running C." msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2702 +#: ../src/guestfs.pod:2773 #, no-wrap msgid "" " SKIP_TEST__=1\n" @@ -36043,17 +37313,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2704 +#: ../src/guestfs.pod:2775 msgid "eg: C skips test #3 of L." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2706 +#: ../src/guestfs.pod:2777 msgid "or:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2708 +#: ../src/guestfs.pod:2779 #, no-wrap msgid "" " SKIP_TEST_=1\n" @@ -36061,17 +37331,17 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2710 +#: ../src/guestfs.pod:2781 msgid "eg: C skips all L tests." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2712 +#: ../src/guestfs.pod:2783 msgid "Packagers can run only certain tests by setting for example:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2714 +#: ../src/guestfs.pod:2785 #, no-wrap msgid "" " TEST_ONLY=\"vfs_type zerofree\"\n" @@ -36079,29 +37349,29 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2716 +#: ../src/guestfs.pod:2787 msgid "" "See C for more details of how these environment variables " "work." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2719 +#: ../src/guestfs.pod:2790 msgid "DEBUGGING NEW API ACTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2721 +#: ../src/guestfs.pod:2792 msgid "Test new actions work before submitting them." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2723 +#: ../src/guestfs.pod:2794 msgid "You can use guestfish to try out new commands." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2725 +#: ../src/guestfs.pod:2796 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 " @@ -36109,12 +37379,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2729 +#: ../src/guestfs.pod:2800 msgid "FORMATTING CODE AND OTHER CONVENTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2731 +#: ../src/guestfs.pod:2802 msgid "" "Our C source code generally adheres to some basic code-formatting " "conventions. The existing code base is not totally consistent on this " @@ -36124,14 +37394,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2737 +#: ../src/guestfs.pod:2808 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:2740 +#: ../src/guestfs.pod:2811 #, no-wrap msgid "" " ;;; In libguestfs, indent with spaces everywhere (not TABs).\n" @@ -36147,7 +37417,7 @@ msgid "" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2750 +#: ../src/guestfs.pod:2821 #, no-wrap msgid "" " ;;; When editing C sources in libguestfs, use this style.\n" @@ -36165,12 +37435,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2762 +#: ../src/guestfs.pod:2833 msgid "Enable warnings when compiling (and fix any problems this finds):" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2765 +#: ../src/guestfs.pod:2836 #, no-wrap msgid "" " ./configure --enable-gcc-warnings\n" @@ -36178,12 +37448,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2767 +#: ../src/guestfs.pod:2838 msgid "Useful targets are:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2769 +#: ../src/guestfs.pod:2840 #, no-wrap msgid "" " make syntax-check # checks the syntax of the C code\n" @@ -36192,43 +37462,43 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2772 +#: ../src/guestfs.pod:2843 msgid "DAEMON CUSTOM PRINTF FORMATTERS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2774 +#: ../src/guestfs.pod:2845 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:2779 +#: ../src/guestfs.pod:2850 msgid "%Q" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2781 +#: ../src/guestfs.pod:2852 msgid "" "Simple shell quoted string. Any spaces or other shell characters are " "escaped for you." msgstr "" #. type: =item -#: ../src/guestfs.pod:2784 +#: ../src/guestfs.pod:2855 msgid "%R" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2786 +#: ../src/guestfs.pod:2857 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:2793 +#: ../src/guestfs.pod:2864 #, no-wrap msgid "" " asprintf (&cmd, \"cat %R\", path);\n" @@ -36236,12 +37506,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2795 +#: ../src/guestfs.pod:2866 msgid "would produce C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2797 +#: ../src/guestfs.pod:2868 msgid "" "I Do I use these when you are passing parameters to the " "C functions. These parameters do NOT need to be quoted " @@ -36250,12 +37520,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2803 +#: ../src/guestfs.pod:2874 msgid "SUBMITTING YOUR NEW API ACTIONS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2805 +#: ../src/guestfs.pod:2876 msgid "" "Submit patches to the mailing list: " "L and CC to " @@ -36263,17 +37533,17 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2809 +#: ../src/guestfs.pod:2880 msgid "INTERNATIONALIZATION (I18N) SUPPORT" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2811 +#: ../src/guestfs.pod:2882 msgid "We support i18n (gettext anyhow) in the library." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2813 +#: ../src/guestfs.pod:2884 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 " @@ -36282,115 +37552,137 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2819 +#: ../src/guestfs.pod:2890 msgid "" "Debugging messages are never translated, since they are intended for the " "programmers." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2822 +#: ../src/guestfs.pod:2893 msgid "SOURCE CODE SUBDIRECTORIES" msgstr "" +#. type: =item +#: ../src/guestfs.pod:2897 +msgid "C" +msgstr "" + #. type: textblock -#: ../src/guestfs.pod:2828 +#: ../src/guestfs.pod:2899 +msgid "L command and documentation." +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2903 msgid "The libguestfs appliance, build scripts and so on." msgstr "" #. type: =item -#: ../src/guestfs.pod:2830 +#: ../src/guestfs.pod:2905 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2832 +#: ../src/guestfs.pod:2907 msgid "Automated tests of the C API." msgstr "" #. type: =item -#: ../src/guestfs.pod:2834 +#: ../src/guestfs.pod:2909 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2836 +#: ../src/guestfs.pod:2911 msgid "" "The L, L and L commands and " "documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2839 +#: ../src/guestfs.pod:2914 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2841 +#: ../src/guestfs.pod:2916 msgid "" "Safety and liveness tests of components that libguestfs depends upon (not of " "libguestfs itself). Mainly this is for qemu and the kernel." msgstr "" #. type: =item -#: ../src/guestfs.pod:2844 +#: ../src/guestfs.pod:2919 +msgid "C" +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2921 +msgid "" +"Tools for cloning virtual machines. Currently contains L " +"command and documentation." +msgstr "" + +#. type: =item +#: ../src/guestfs.pod:2924 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2846 +#: ../src/guestfs.pod:2926 msgid "Outside contributions, experimental parts." msgstr "" #. type: =item -#: ../src/guestfs.pod:2848 +#: ../src/guestfs.pod:2928 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2850 +#: ../src/guestfs.pod:2930 msgid "" "The daemon that runs inside the libguestfs appliance and carries out " "actions." msgstr "" #. type: =item -#: ../src/guestfs.pod:2853 +#: ../src/guestfs.pod:2933 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2855 +#: ../src/guestfs.pod:2935 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2857 +#: ../src/guestfs.pod:2937 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2859 +#: ../src/guestfs.pod:2939 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2861 +#: ../src/guestfs.pod:2941 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2863 +#: ../src/guestfs.pod:2943 msgid "C API example code." msgstr "" #. type: =item -#: ../src/guestfs.pod:2865 +#: ../src/guestfs.pod:2945 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2867 +#: ../src/guestfs.pod:2947 msgid "" "L, the command-line shell, and various shell scripts built on " "top such as L, L, L, " @@ -36398,89 +37690,89 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2871 +#: ../src/guestfs.pod:2951 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2873 +#: ../src/guestfs.pod:2953 msgid "L, FUSE (userspace filesystem) built on top of libguestfs." msgstr "" #. type: =item -#: ../src/guestfs.pod:2875 +#: ../src/guestfs.pod:2955 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2877 +#: ../src/guestfs.pod:2957 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:2880 +#: ../src/guestfs.pod:2960 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2882 +#: ../src/guestfs.pod:2962 msgid "Files used by the test suite." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2884 +#: ../src/guestfs.pod:2964 msgid "Some \"phony\" guest images which we test against." msgstr "" #. type: =item -#: ../src/guestfs.pod:2886 +#: ../src/guestfs.pod:2966 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2888 +#: ../src/guestfs.pod:2968 msgid "L, the virtual machine image inspector." msgstr "" #. type: =item -#: ../src/guestfs.pod:2890 +#: ../src/guestfs.pod:2970 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2892 +#: ../src/guestfs.pod:2972 msgid "Logo used on the website. The fish is called Arthur by the way." msgstr "" #. type: =item -#: ../src/guestfs.pod:2894 +#: ../src/guestfs.pod:2974 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2896 +#: ../src/guestfs.pod:2976 msgid "M4 macros used by autoconf." msgstr "" #. type: =item -#: ../src/guestfs.pod:2898 +#: ../src/guestfs.pod:2978 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2900 +#: ../src/guestfs.pod:2980 msgid "Translations of simple gettext strings." msgstr "" #. type: =item -#: ../src/guestfs.pod:2902 +#: ../src/guestfs.pod:2982 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2904 +#: ../src/guestfs.pod:2984 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 " @@ -36488,114 +37780,134 @@ msgid "" msgstr "" #. type: =item -#: ../src/guestfs.pod:2908 +#: ../src/guestfs.pod:2988 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2910 +#: ../src/guestfs.pod:2990 msgid "Regression tests." msgstr "" #. type: =item -#: ../src/guestfs.pod:2912 +#: ../src/guestfs.pod:2992 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2914 +#: ../src/guestfs.pod:2994 msgid "L command and documentation." msgstr "" #. type: =item -#: ../src/guestfs.pod:2916 +#: ../src/guestfs.pod:2996 +msgid "C" +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:2998 +msgid "L command and documentation." +msgstr "" + +#. type: =item +#: ../src/guestfs.pod:3000 +msgid "C" +msgstr "" + +#. type: textblock +#: ../src/guestfs.pod:3002 +msgid "L command and documentation." +msgstr "" + +#. type: =item +#: ../src/guestfs.pod:3004 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2918 +#: ../src/guestfs.pod:3006 msgid "Source code to the C library." msgstr "" #. type: =item -#: ../src/guestfs.pod:2920 +#: ../src/guestfs.pod:3008 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2922 +#: ../src/guestfs.pod:3010 msgid "Command line tools written in Perl (L and many others)." msgstr "" #. type: =item -#: ../src/guestfs.pod:2924 +#: ../src/guestfs.pod:3012 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2926 +#: ../src/guestfs.pod:3014 msgid "" "Test tool for end users to test if their qemu/kernel combination will work " "with libguestfs." msgstr "" #. type: =item -#: ../src/guestfs.pod:2929 +#: ../src/guestfs.pod:3017 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:2931 +#: ../src/guestfs.pod:3019 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:2933 +#: ../src/guestfs.pod:3021 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:2935 +#: ../src/guestfs.pod:3023 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:2937 +#: ../src/guestfs.pod:3025 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:2939 +#: ../src/guestfs.pod:3027 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:2941 +#: ../src/guestfs.pod:3029 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:2943 +#: ../src/guestfs.pod:3031 msgid "C" msgstr "" #. type: =item -#: ../src/guestfs.pod:2945 +#: ../src/guestfs.pod:3033 msgid "C" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2947 +#: ../src/guestfs.pod:3035 msgid "Language bindings." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:2951 +#: ../src/guestfs.pod:3039 msgid "MAKING A STABLE RELEASE" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2953 +#: ../src/guestfs.pod:3041 msgid "" "When we make a stable release, there are several steps documented here. See " "L for general information about the stable " @@ -36603,37 +37915,37 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2961 +#: ../src/guestfs.pod:3049 msgid "Check C works on at least Fedora, Debian and Ubuntu." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2966 +#: ../src/guestfs.pod:3054 msgid "Finalize RELEASE-NOTES." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2970 +#: ../src/guestfs.pod:3058 msgid "Update ROADMAP." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2974 +#: ../src/guestfs.pod:3062 msgid "Run C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2978 +#: ../src/guestfs.pod:3066 msgid "Push and pull from Transifex." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2980 +#: ../src/guestfs.pod:3068 msgid "Run:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2982 +#: ../src/guestfs.pod:3070 #, no-wrap msgid "" " tx push -s\n" @@ -36641,12 +37953,12 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2984 +#: ../src/guestfs.pod:3072 msgid "to push the latest POT files to Transifex. Then run:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2986 +#: ../src/guestfs.pod:3074 #, no-wrap msgid "" " ./tx-pull.sh\n" @@ -36654,24 +37966,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:2988 +#: ../src/guestfs.pod:3076 msgid "which is a wrapper to pull the latest translated C<*.po> files." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2992 +#: ../src/guestfs.pod:3080 msgid "" "Create new stable and development directories under " "L." msgstr "" #. type: textblock -#: ../src/guestfs.pod:2997 +#: ../src/guestfs.pod:3085 msgid "Create the branch in git:" msgstr "" #. type: verbatim -#: ../src/guestfs.pod:2999 +#: ../src/guestfs.pod:3087 #, no-wrap msgid "" " git tag -a 1.XX.0 -m \"Version 1.XX.0 (stable)\"\n" @@ -36682,17 +37994,17 @@ msgid "" msgstr "" #. type: =head1 -#: ../src/guestfs.pod:3006 +#: ../src/guestfs.pod:3094 msgid "LIMITS" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3008 +#: ../src/guestfs.pod:3096 msgid "PROTOCOL LIMITS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3010 +#: ../src/guestfs.pod:3098 msgid "" "Internally libguestfs uses a message-based protocol to pass API calls and " "their responses to and from a small \"appliance\" (see L for " @@ -36703,7 +38015,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3018 +#: ../src/guestfs.pod:3106 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 " @@ -36712,7 +38024,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3024 +#: ../src/guestfs.pod:3112 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 " @@ -36720,24 +38032,24 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3028 +#: ../src/guestfs.pod:3116 msgid "" "You might also consider mounting the disk image using our FUSE filesystem " "support (L)." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3031 +#: ../src/guestfs.pod:3119 msgid "MAXIMUM NUMBER OF DISKS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3033 +#: ../src/guestfs.pod:3121 msgid "When using virtio disks (the default) the current limit is B<25> disks." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3036 +#: ../src/guestfs.pod:3124 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 " @@ -36746,14 +38058,14 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3041 +#: ../src/guestfs.pod:3129 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:3044 +#: ../src/guestfs.pod:3132 msgid "" "In future versions of libguestfs it should also be possible to \"hot plug\" " "disks (add and remove disks after calling L). This also " @@ -36761,41 +38073,41 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3048 +#: ../src/guestfs.pod:3136 msgid "MAXIMUM NUMBER OF PARTITIONS PER DISK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3050 +#: ../src/guestfs.pod:3138 msgid "Virtio limits the maximum number of partitions per disk to B<15>." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3052 +#: ../src/guestfs.pod:3140 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:3055 +#: ../src/guestfs.pod:3143 msgid "" "If you attach a disk with more than 15 partitions, the extra partitions are " "ignored by libguestfs." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3058 +#: ../src/guestfs.pod:3146 msgid "MAXIMUM SIZE OF A DISK" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3060 +#: ../src/guestfs.pod:3148 msgid "Probably the limit is between 2**63-1 and 2**64-1 bytes." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3062 +#: ../src/guestfs.pod:3150 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 " @@ -36803,7 +38115,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3066 +#: ../src/guestfs.pod:3154 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 " @@ -36813,19 +38125,19 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3072 +#: ../src/guestfs.pod:3160 msgid "" "For the hugest disk image files, we recommend using XFS on the host for " "storage." msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3075 +#: ../src/guestfs.pod:3163 msgid "MAXIMUM SIZE OF A PARTITION" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3077 +#: ../src/guestfs.pod:3165 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 " @@ -36833,7 +38145,7 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3081 +#: ../src/guestfs.pod:3169 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 " @@ -36841,12 +38153,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3086 +#: ../src/guestfs.pod:3174 msgid "MAXIMUM SIZE OF A FILESYSTEM, FILES, DIRECTORIES" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3088 +#: ../src/guestfs.pod:3176 msgid "" "This depends on the filesystem type. libguestfs itself does not impose any " "known limit. Consult Wikipedia or the filesystem documentation to find out " @@ -36854,12 +38166,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3092 +#: ../src/guestfs.pod:3180 msgid "MAXIMUM UPLOAD AND DOWNLOAD" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3094 +#: ../src/guestfs.pod:3182 msgid "" "The API functions L, L, " "L, L and the like allow unlimited sized " @@ -36867,12 +38179,12 @@ msgid "" msgstr "" #. type: =head2 -#: ../src/guestfs.pod:3098 +#: ../src/guestfs.pod:3186 msgid "INSPECTION LIMITS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3100 +#: ../src/guestfs.pod:3188 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 " @@ -36882,100 +38194,102 @@ msgid "" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3126 +#: ../src/guestfs.pod:3214 msgid "" "Set C to enable verbose messages. This has the same " "effect as calling C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3138 +#: ../src/guestfs.pod:3226 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:3147 +#: ../src/guestfs.pod:3235 msgid "See also L above." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3151 +#: ../src/guestfs.pod:3239 msgid "" "Set C to enable command traces. This has the same " "effect as calling C." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3169 +#: ../src/guestfs.pod:3257 msgid "" "L, L, L, " "L, L, L, " -"L, L, L, L, " -"L, L, L, L, " -"L, L, L, " +"L, L, L, " +"L, L, L, " +"L, L, L, L, " +"L, L, " "L, L, L, " -"L, L, L, L, " -"L, L, L, L, " -"L, L, L, " +"L, L, L, " +"L, L, L, L, " +"L, L, L, " +"L, L, L, " "L." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3202 +#: ../src/guestfs.pod:3293 msgid "" "Tools with a similar purpose: L, L, L, " "L, L." msgstr "" #. type: =head1 -#: ../src/guestfs.pod:3209 ../tools/virt-make-fs.pl:553 ../tools/virt-win-reg.pl:761 +#: ../src/guestfs.pod:3300 ../tools/virt-make-fs.pl:553 ../tools/virt-win-reg.pl:761 msgid "BUGS" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3211 +#: ../src/guestfs.pod:3302 msgid "To get a list of bugs against libguestfs use this link:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3213 +#: ../src/guestfs.pod:3304 msgid "L" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3215 +#: ../src/guestfs.pod:3306 msgid "To report a new bug against libguestfs use this link:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3217 +#: ../src/guestfs.pod:3308 msgid "L" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3219 +#: ../src/guestfs.pod:3310 msgid "When reporting a bug, please check:" msgstr "" #. type: textblock -#: ../src/guestfs.pod:3225 +#: ../src/guestfs.pod:3316 msgid "That the bug hasn't been reported already." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3229 +#: ../src/guestfs.pod:3320 msgid "That you are testing a recent version." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3233 +#: ../src/guestfs.pod:3324 msgid "Describe the bug accurately, and give a way to reproduce it." msgstr "" #. type: textblock -#: ../src/guestfs.pod:3237 +#: ../src/guestfs.pod:3328 msgid "" "Run libguestfs-test-tool and paste the B output into the " "bug report."