NOTE: This file is automatically generated from "update-bugs".
-Last updated: 2010-11-05 15:21:17
+Last updated: 2010-11-18 12:58:43
This contains a local list of the bugs that are open against
libguestfs. Bugs are tracked in the Red Hat Bugzilla database
646822 MODIFIED https://bugzilla.redhat.com/show_bug.cgi?id=646822
libguestfs trace mode should not print long binary strings
+652796 MODIFIED https://bugzilla.redhat.com/show_bug.cgi?id=652796
+ ruby bindings not installed by 'make install', hence omitted from the binary distribution
+
--------------------------------------------------
These bugs are in the VERIFIED state.
-613562 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=613562
- virt-v2v | rhel6 v2v doesn't support install the guest driver by rhn
-
-617165 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=617165
- mount operation failed and hung on some images which running in read-only mode
-
579664 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=579664
guestfish doesn't report error when there is not enough space for image allocation
-598771 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=598771
- guestfish 'help' command should indicate error in exit status with an unknown command
-
-598807 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=598807
- add_cdrom does not work in RHEL 6
-
-600148 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=600148
- mkfs-b does not support vfat/ntfs
-
-604552 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=604552
- libguestfs has extra characters after %{?dist}
-
-609990 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=609990
- guestfish: using -m option in conjunction with --listen option causes appliance to die
-
-615870 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=615870
- libguestfs-find-requires.sh is not autogenerating dependencies for libguestfs
-
-616438 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=616438
- libguestfs missing runtime Requires: binutils
-
-616753 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=616753
- libguestfs will use the wrong augeas lens for /etc/modules.conf
-
-619826 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=619826
- [RFE] Need a way to determine if a particular block device is a logical volume
-
636454 VERIFIED https://bugzilla.redhat.com/show_bug.cgi?id=636454
[RFE] Need a way to determine if a particular block device is a logical volume
# major/minor/release must be numbers
m4_define([libguestfs_major], [1])
m4_define([libguestfs_minor], [6])
-m4_define([libguestfs_release], [1])
+m4_define([libguestfs_release], [2])
# extra can be any string
m4_define([libguestfs_extra], [])
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
-"POT-Creation-Date: 2010-11-05 15:21+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-09-02 14:46+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
# type: =item
#: ../src/guestfs.pod:360 ../src/guestfs.pod:365 ../src/guestfs.pod:370
#: ../src/guestfs.pod:374 ../src/guestfs.pod:379 ../src/guestfs.pod:383
-#: ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:1186
-#: ../src/guestfs.pod:1191 ../src/guestfs.pod:1195 ../src/guestfs.pod:1411
-#: ../src/guestfs.pod:1416 ../src/guestfs.pod:1420 ../src/guestfs.pod:1522
-#: ../src/guestfs.pod:1526 ../src/guestfs.pod:1530 ../src/guestfs.pod:1535
-#: ../src/guestfs.pod:1543 ../src/guestfs.pod:1562 ../src/guestfs.pod:1570
-#: ../src/guestfs.pod:1800 ../src/guestfs.pod:1806 ../src/guestfs.pod:1811
-#: ../src/guestfs.pod:1817 ../src/guestfs.pod:1924 ../src/guestfs.pod:1928
-#: ../src/guestfs.pod:1932 ../src/guestfs.pod:1936
+#: ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:966
+#: ../src/guestfs.pod:970 ../src/guestfs.pod:974 ../src/guestfs.pod:979
+#: ../src/guestfs.pod:987 ../src/guestfs.pod:1006 ../src/guestfs.pod:1014
+#: ../src/guestfs.pod:1036 ../src/guestfs.pod:1040 ../src/guestfs.pod:1044
+#: ../src/guestfs.pod:1048 ../src/guestfs.pod:1052 ../src/guestfs.pod:1056
+#: ../src/guestfs.pod:1481 ../src/guestfs.pod:1486 ../src/guestfs.pod:1490
+#: ../src/guestfs.pod:1600 ../src/guestfs.pod:1605 ../src/guestfs.pod:1609
+#: ../src/guestfs.pod:1953 ../src/guestfs.pod:1959 ../src/guestfs.pod:1964
+#: ../src/guestfs.pod:1970 ../src/guestfs.pod:2077 ../src/guestfs.pod:2081
+#: ../src/guestfs.pod:2085 ../src/guestfs.pod:2089
#: ../src/guestfs-actions.pod:15 ../src/guestfs-actions.pod:22
#: ../src/guestfs-actions.pod:461 ../src/guestfs-actions.pod:469
#: ../src/guestfs-actions.pod:476 ../src/guestfs-actions.pod:483
#: ../src/guestfs-actions.pod:1596 ../src/guestfs-actions.pod:1600
#: ../src/guestfs-actions.pod:1605 ../src/guestfs-actions.pod:1610
#: ../src/guestfs-actions.pod:1665 ../src/guestfs-actions.pod:1669
-#: ../src/guestfs-actions.pod:1674 ../fish/guestfish.pod:364
-#: ../fish/guestfish.pod:368 ../fish/guestfish.pod:372
-#: ../fish/guestfish.pod:376 ../fish/guestfish-actions.pod:13
+#: ../src/guestfs-actions.pod:1674 ../fish/guestfish.pod:371
+#: ../fish/guestfish.pod:375 ../fish/guestfish.pod:379
+#: ../fish/guestfish.pod:383 ../fish/guestfish-actions.pod:13
#: ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:339
#: ../fish/guestfish-actions.pod:347 ../fish/guestfish-actions.pod:354
#: ../fish/guestfish-actions.pod:361 ../fish/guestfish-actions.pod:1056
"A secure alternative is to use libguestfs to install a \"firstboot\" script "
"(a script which runs when the guest next boots normally), and to have this "
"script run the commands you want in the normal context of the running guest, "
-"network security and so on."
+"network security and so on. For information about other security issues, "
+"see L</SECURITY>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:411
+#: ../src/guestfs.pod:412
msgid ""
"The two main API calls to run commands are L</guestfs_command> and L</"
"guestfs_sh> (there are also variations)."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:414
+#: ../src/guestfs.pod:415
msgid ""
"The difference is that L</guestfs_sh> runs commands using the shell, so any "
"shell globs, redirections, etc will work."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:417
+#: ../src/guestfs.pod:418
msgid "CONFIGURATION FILES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:419
+#: ../src/guestfs.pod:420
msgid ""
"To read and write configuration files in Linux guest filesystems, we "
"strongly recommend using Augeas. For example, Augeas understands how to "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:424
+#: ../src/guestfs.pod:425
msgid ""
"The main Augeas calls are bound through the C<guestfs_aug_*> APIs. We don't "
"document Augeas itself here because there is excellent documentation on the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:428
+#: ../src/guestfs.pod:429
msgid ""
"If you don't want to use Augeas (you fool!) then try calling L</"
"guestfs_read_lines> to get the file as a list of lines which you can iterate "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:432
+#: ../src/guestfs.pod:433
msgid "SELINUX"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:434
+#: ../src/guestfs.pod:435
msgid ""
"We support SELinux guests. To ensure that labeling happens correctly in "
"SELinux guests, you need to enable SELinux and load the guest's policy:"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:440
+#: ../src/guestfs.pod:441 ../src/guestfs.pod:1151
msgid "1."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:442
+#: ../src/guestfs.pod:443
msgid "Before launching, do:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:444
+#: ../src/guestfs.pod:445
#, no-wrap
msgid ""
" guestfs_set_selinux (g, 1);\n"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:446
+#: ../src/guestfs.pod:447 ../src/guestfs.pod:1155
msgid "2."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:448
+#: ../src/guestfs.pod:449
msgid ""
"After mounting the guest's filesystem(s), load the policy. This is best "
"done by running the L<load_policy(8)> command in the guest itself:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:452
+#: ../src/guestfs.pod:453
#, no-wrap
msgid ""
" guestfs_sh (g, \"/usr/sbin/load_policy\");\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:454
+#: ../src/guestfs.pod:455
msgid ""
"(Older versions of C<load_policy> require you to specify the name of the "
"policy file)."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:457
+#: ../src/guestfs.pod:458
msgid "3."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:459
+#: ../src/guestfs.pod:460
msgid ""
"Optionally, set the security context for the API. The correct security "
"context to use can only be known by inspecting the guest. As an example:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:463
+#: ../src/guestfs.pod:464
#, no-wrap
msgid ""
" guestfs_setcon (g, \"unconfined_u:unconfined_r:unconfined_t:s0\");\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:467
+#: ../src/guestfs.pod:468
msgid "This will work for running commands and editing existing files."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:469
+#: ../src/guestfs.pod:470
msgid ""
"When new files are created, you may need to label them explicitly, for "
"example by running the external command C<restorecon pathname>."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:473
+#: ../src/guestfs.pod:474
msgid "UMASK"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:475
+#: ../src/guestfs.pod:476
msgid ""
"Certain calls are affected by the current file mode creation mask (the "
"\"umask\"). In particular ones which create files or directories, such as "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:481
+#: ../src/guestfs.pod:482
msgid ""
"The default umask is C<022>, so files are created with modes such as C<0644> "
"and directories with C<0755>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:484
+#: ../src/guestfs.pod:485
msgid ""
"There are two ways to avoid being affected by umask. Either set umask to 0 "
"(call C<guestfs_umask (g, 0)> early after launching). Or call L</"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:488
+#: ../src/guestfs.pod:489
msgid "For more information about umask, see L<umask(2)>."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:490 ../fish/guestfish.pod:630
+#: ../src/guestfs.pod:491 ../fish/guestfish.pod:664
msgid "ENCRYPTED DISKS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:492
+#: ../src/guestfs.pod:493
msgid ""
"Libguestfs allows you to access Linux guests which have been encrypted using "
"whole disk encryption that conforms to the Linux Unified Key Setup (LUKS) "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:498
+#: ../src/guestfs.pod:499
msgid ""
"Use L</guestfs_vfs_type> to identify LUKS-encrypted block devices (it "
"returns the string C<crypto_LUKS>)."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:501
+#: ../src/guestfs.pod:502
msgid ""
"Then open these devices by calling L</guestfs_luks_open>. Obviously you "
"will require the passphrase!"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:504
+#: ../src/guestfs.pod:505
msgid ""
"Opening a LUKS device creates a new device mapper device called C</dev/"
"mapper/mapname> (where C<mapname> is the string you supply to L</"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:510
+#: ../src/guestfs.pod:511
msgid ""
"LVM volume groups on the device can be made visible by calling L</"
"guestfs_vgscan> followed by L</guestfs_vg_activate_all>. The logical volume"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:514
+#: ../src/guestfs.pod:515
msgid ""
"Use the reverse process to close a LUKS device. Unmount any logical volumes "
"on it, deactivate the volume groups by caling C<guestfs_vg_activate (g, 0, "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:521
+#: ../src/guestfs.pod:522
msgid "INSPECTION"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:523
+#: ../src/guestfs.pod:524
msgid ""
"Libguestfs has APIs for inspecting an unknown disk image to find out if it "
"contains operating systems. (These APIs used to be in a separate Perl-only "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:529
+#: ../src/guestfs.pod:530
msgid ""
"Add all disks belonging to the unknown virtual machine and call L</"
"guestfs_launch> in the usual way."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:532
+#: ../src/guestfs.pod:533
msgid ""
"Then call L</guestfs_inspect_os>. This function uses other libguestfs calls "
"and certain heuristics, and returns a list of operating systems that were "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:541
+#: ../src/guestfs.pod:542
msgid ""
"For each root, you can then call various C<guestfs_inspect_get_*> functions "
"to get additional details about that operating system. For example, call L</"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:547
+#: ../src/guestfs.pod:548
msgid ""
"Un*x-like and Linux-based operating systems usually consist of several "
"filesystems which are mounted at boot time (for example, a separate boot "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:554
+#: ../src/guestfs.pod:555
#, no-wrap
msgid ""
" /boot => /dev/sda1\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:558
+#: ../src/guestfs.pod:559
msgid ""
"The caller can then make calls to L</guestfs_mount_options> to mount the "
"filesystems as suggested."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:561
+#: ../src/guestfs.pod:562
msgid ""
"Be careful to mount filesystems in the right order (eg. C</> before C</"
"usr>). Sorting the keys of the hash by length, shortest first, should work."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:565
+#: ../src/guestfs.pod:566
msgid ""
"Inspection currently only works for some common operating systems. "
"Contributors are welcome to send patches for other operating systems that we "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:569
+#: ../src/guestfs.pod:570
msgid ""
"Encrypted disks must be opened before inspection. See L</ENCRYPTED DISKS> "
"for more details. The L</guestfs_inspect_os> function just ignores any "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:573
+#: ../src/guestfs.pod:574
msgid ""
"A note on the implementation: The call L</guestfs_inspect_os> performs "
"inspection and caches the results in the guest handle. Subsequent calls to "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:580
+#: ../src/guestfs.pod:581
msgid "SPECIAL CONSIDERATIONS FOR WINDOWS GUESTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:582
+#: ../src/guestfs.pod:583
msgid ""
"Libguestfs can mount NTFS partitions. It does this using the L<http://www."
"ntfs-3g.org/> driver."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:585
+#: ../src/guestfs.pod:586
msgid ""
"DOS and Windows still use drive letters, and the filesystems are always "
"treated as case insensitive by Windows itself, and therefore you might find "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:591
+#: ../src/guestfs.pod:592
msgid ""
"Drive letter mappings are outside the scope of libguestfs. You have to use "
"libguestfs to read the appropriate Windows Registry and configuration files, "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:596
+#: ../src/guestfs.pod:597
msgid ""
"Replacing backslash characters with forward slash characters is also outside "
"the scope of libguestfs, but something that you can easily do."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:599
+#: ../src/guestfs.pod:600
msgid ""
"Where we can help is in resolving the case insensitivity of paths. For "
"this, call L</guestfs_case_sensitive_path>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:602
+#: ../src/guestfs.pod:603
msgid ""
"Libguestfs also provides some help for decoding Windows Registry \"hive\" "
"files, through the library C<hivex> which is part of the libguestfs project "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:610
+#: ../src/guestfs.pod:611
msgid "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:612
+#: ../src/guestfs.pod:613
msgid ""
"Although we don't want to discourage you from using the C API, we will "
"mention here that the same API is also available in other languages."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:615
+#: ../src/guestfs.pod:616
msgid ""
"The API is broadly identical in all supported languages. This means that "
"the C call C<guestfs_mount(g,path)> is C<$g-E<gt>mount($path)> in Perl, C<g."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:621
+#: ../src/guestfs.pod:622
msgid ""
"Error messages are automatically transformed into exceptions if the language "
"supports it."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:624
+#: ../src/guestfs.pod:625
msgid ""
"We don't try to \"object orientify\" parts of the API in OO languages, "
"although contributors are welcome to write higher level APIs above what we "
msgstr ""
# type: =item
-#: ../src/guestfs.pod:630
+#: ../src/guestfs.pod:631
msgid "B<C++>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:632
+#: ../src/guestfs.pod:633
msgid ""
"You can use the I<guestfs.h> header file from C++ programs. The C++ API is "
"identical to the C API. C++ classes and exceptions are not used."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:636
+#: ../src/guestfs.pod:637
msgid "B<C#>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:638
+#: ../src/guestfs.pod:639
msgid ""
"The C# bindings are highly experimental. Please read the warnings at the "
"top of C<csharp/Libguestfs.cs>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:641
+#: ../src/guestfs.pod:642
msgid "B<Haskell>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:643
+#: ../src/guestfs.pod:644
msgid ""
"This is the only language binding that is working but incomplete. Only "
"calls which return simple integers have been bound in Haskell, and we are "
msgstr ""
# type: =item
-#: ../src/guestfs.pod:647
+#: ../src/guestfs.pod:648
msgid "B<Java>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:649
+#: ../src/guestfs.pod:650
msgid ""
"Full documentation is contained in the Javadoc which is distributed with "
"libguestfs."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:652
+#: ../src/guestfs.pod:653
msgid "B<OCaml>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:654
+#: ../src/guestfs.pod:655
msgid "For documentation see the file C<guestfs.mli>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:656
+#: ../src/guestfs.pod:657
msgid "B<Perl>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:658
+#: ../src/guestfs.pod:659
msgid "For documentation see L<Sys::Guestfs(3)>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:660
+#: ../src/guestfs.pod:661
msgid "B<PHP>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:662
+#: ../src/guestfs.pod:663
msgid ""
"For documentation see C<README-PHP> supplied with libguestfs sources or in "
"the php-libguestfs package for your distribution."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:665
+#: ../src/guestfs.pod:666
msgid "The PHP binding only works correctly on 64 bit machines."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:667
+#: ../src/guestfs.pod:668
msgid "B<Python>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:669
+#: ../src/guestfs.pod:670
msgid "For documentation do:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:671
+#: ../src/guestfs.pod:672
#, no-wrap
msgid ""
" $ python\n"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:675
+#: ../src/guestfs.pod:676
msgid "B<Ruby>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:677
+#: ../src/guestfs.pod:678
msgid ""
"Use the Guestfs module. There is no Ruby-specific documentation, but you "
"can find examples written in Ruby in the libguestfs source."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:680
+#: ../src/guestfs.pod:681
msgid "B<shell scripts>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:682
+#: ../src/guestfs.pod:683
msgid "For documentation see L<guestfish(1)>."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:686
+#: ../src/guestfs.pod:687
msgid "LIBGUESTFS GOTCHAS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:688
+#: ../src/guestfs.pod:689
msgid ""
"L<http://en.wikipedia.org/wiki/Gotcha_(programming)>: \"A feature of a "
"system [...] that works in the way it is documented but is counterintuitive "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:692
+#: ../src/guestfs.pod:693
msgid ""
"Since we developed libguestfs and the associated tools, there are several "
"things we would have designed differently, but are now stuck with for "
msgstr ""
# type: =item
-#: ../src/guestfs.pod:700
+#: ../src/guestfs.pod:701
msgid "Autosync / forgetting to sync."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:702
+#: ../src/guestfs.pod:703
msgid ""
"When modifying a filesystem from C or another language, you B<must> unmount "
"all filesystems and call L</guestfs_sync> explicitly before you close the "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:706
+#: ../src/guestfs.pod:707
#, no-wrap
msgid ""
" guestfs_set_autosync (g, 1);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:708
+#: ../src/guestfs.pod:709
msgid ""
"to have the unmount/sync done automatically for you when the handle 'g' is "
"closed. (This feature is called \"autosync\", L</guestfs_set_autosync> q.v.)"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:712
+#: ../src/guestfs.pod:713
msgid ""
"If you forget to do this, then it is entirely possible that your changes "
"won't be written out, or will be partially written, or (very rarely) that "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:716
+#: ../src/guestfs.pod:717
msgid ""
"Note that in L<guestfish(3)> autosync is the default. So quick and dirty "
"guestfish scripts that forget to sync will work just fine, which can make "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:720
+#: ../src/guestfs.pod:721
msgid ""
"Update: Autosync is enabled by default for all API users starting from "
"libguestfs 1.5.24."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:723
+#: ../src/guestfs.pod:724
msgid "Mount option C<-o sync> should not be the default."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:725
+#: ../src/guestfs.pod:726
msgid ""
"If you use L</guestfs_mount>, then C<-o sync,noatime> are added implicitly. "
"However C<-o sync> does not add any reliability benefit, but does have a "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:729
+#: ../src/guestfs.pod:730
msgid ""
"The work around is to use L</guestfs_mount_options> and set the mount "
"options that you actually want to use."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:732
+#: ../src/guestfs.pod:733
msgid "Read-only should be the default."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:734
+#: ../src/guestfs.pod:735
msgid ""
"In L<guestfish(3)>, I<--ro> should be the default, and you should have to "
"specify I<--rw> if you want to make changes to the image."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:737
+#: ../src/guestfs.pod:738
msgid "This would reduce the potential to corrupt live VM images."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:739
+#: ../src/guestfs.pod:740
msgid ""
"Note that many filesystems change the disk when you just mount and unmount, "
"even if you didn't perform any writes. You need to use L</"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:743
+#: ../src/guestfs.pod:744
msgid "guestfish command line is hard to use."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:745
+#: ../src/guestfs.pod:746
msgid ""
"C<guestfish disk.img> doesn't do what people expect (open C<disk.img> for "
"examination). It tries to run a guestfish command C<disk.img> which doesn't "
msgstr ""
# type: =item
-#: ../src/guestfs.pod:752
+#: ../src/guestfs.pod:753
msgid "guestfish megabyte modifiers don't work right on all commands"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:754
+#: ../src/guestfs.pod:755
msgid ""
"In recent guestfish you can use C<1M> to mean 1 megabyte (and similarly for "
"other modifiers). What guestfish actually does is to multiply the number "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:761
+#: ../src/guestfs.pod:762
msgid "The most common is L</guestfs_lvcreate>. The guestfish command:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:763
+#: ../src/guestfs.pod:764
#, no-wrap
msgid ""
" lvcreate LV VG 100M\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:765
+#: ../src/guestfs.pod:766
msgid ""
"does not do what you might expect. Instead because L</guestfs_lvcreate> is "
"already expecting megabytes, this tries to create a 100 I<terabyte> (100 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:770
+#: ../src/guestfs.pod:771
msgid ""
"This could be fixed in the generator by specially marking parameters and "
"return values which take bytes or other units."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:773
+#: ../src/guestfs.pod:774
msgid "Library should return errno with error messages."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:775
+#: ../src/guestfs.pod:776
msgid ""
"It would be a nice-to-have to be able to get the original value of 'errno' "
"from inside the appliance along error paths (where set). Currently "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:781
+#: ../src/guestfs.pod:782
msgid ""
"In libguestfs 1.5.4, the protocol was changed so that the Linux errno is "
"sent back from the daemon."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:784
+#: ../src/guestfs.pod:785
msgid "Ambiguity between devices and paths"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:786
+#: ../src/guestfs.pod:787
msgid ""
"There is a subtle ambiguity in the API between a device name (eg. C</dev/"
"sdb2>) and a similar pathname. A file might just happen to be called "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:791
+#: ../src/guestfs.pod:792
msgid ""
"In the current API we usually resolve this ambiguity by having two separate "
"calls, for example L</guestfs_checksum> and L</guestfs_checksum_device>. "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:797
+#: ../src/guestfs.pod:798
msgid ""
"To avoid both the ambiguity and the need to duplicate some calls, we could "
"make paths/devices into structured names. One way to do this would be to "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:803
+#: ../src/guestfs.pod:804
#, no-wrap
msgid ""
" type path = Path of string | Device of int | Partition of int * int\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:805
+#: ../src/guestfs.pod:806
msgid "which would allow you to pass arguments like:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:807
+#: ../src/guestfs.pod:808
#, no-wrap
msgid ""
" Path \"/foo/bar\"\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:812
+#: ../src/guestfs.pod:813
msgid ""
"As you can see there are still problems to resolve even with this "
"representation. Also consider how it might work in guestfish."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:817
+#: ../src/guestfs.pod:818
msgid "PROTOCOL LIMITS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:819
+#: ../src/guestfs.pod:820
msgid ""
"Internally libguestfs uses a message-based protocol to pass API calls and "
"their responses to and from a small \"appliance\" (see L</INTERNALS> for "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:827
+#: ../src/guestfs.pod:828
msgid ""
"A simple call such as L</guestfs_cat> returns its result (the file data) in "
"a simple string. Because this string is at some point internally encoded as "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:833
+#: ../src/guestfs.pod:834
msgid ""
"In order to transfer large files into and out of the guest filesystem, you "
"need to use particular calls that support this. The sections L</UPLOADING> "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:837
+#: ../src/guestfs.pod:838
msgid ""
"You might also consider mounting the disk image using our FUSE filesystem "
"support (L<guestmount(1)>)."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:840
+#: ../src/guestfs.pod:841
msgid "KEYS AND PASSPHRASES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:842
+#: ../src/guestfs.pod:843
msgid ""
"Certain libguestfs calls take a parameter that contains sensitive key "
"material, passed in as a C string."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:845
+#: ../src/guestfs.pod:846
msgid ""
"In the future we would hope to change the libguestfs implementation so that "
"keys are L<mlock(2)>-ed into physical RAM, and thus can never end up in "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:850
+#: ../src/guestfs.pod:851
msgid ""
"Therefore you should be aware that any key parameter you pass to libguestfs "
"might end up being written out to the swap partition. If this is a concern, "
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:855
+#: ../src/guestfs.pod:856
+msgid "MULTIPLE HANDLES AND MULTIPLE THREADS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:858
+msgid ""
+"All high-level libguestfs actions are synchronous. If you want to use "
+"libguestfs asynchronously then you must create a thread."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:861
+msgid ""
+"Only use the handle from a single thread. Either use the handle exclusively "
+"from one thread, or provide your own mutex so that two threads cannot issue "
+"calls on the same handle at the same time."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:865
+msgid ""
+"See the graphical program guestfs-browser for one possible architecture for "
+"multithreaded programs using libvirt and libguestfs."
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:868
+msgid "PATH"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:870
+msgid ""
+"Libguestfs needs a kernel and initrd.img, which it finds by looking along an "
+"internal path."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:873
+msgid ""
+"By default it looks for these in the directory C<$libdir/guestfs> (eg. C</"
+"usr/local/lib/guestfs> or C</usr/lib64/guestfs>)."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:876
+msgid ""
+"Use L</guestfs_set_path> or set the environment variable L</LIBGUESTFS_PATH> "
+"to change the directories that libguestfs will search in. The value is a "
+"colon-separated list of paths. The current directory is I<not> searched "
+"unless the path contains an empty element or C<.>. For example "
+"C<LIBGUESTFS_PATH=:/usr/lib/guestfs> would search the current directory and "
+"then C</usr/lib/guestfs>."
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:883
+msgid "QEMU WRAPPERS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:885
+msgid ""
+"If you want to compile your own qemu, run qemu from a non-standard location, "
+"or pass extra arguments to qemu, then you can write a shell-script wrapper "
+"around qemu."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:889
+msgid ""
+"There is one important rule to remember: you I<must C<exec qemu>> as the "
+"last command in the shell script (so that qemu replaces the shell and "
+"becomes the direct child of the libguestfs-using program). If you don't do "
+"this, then the qemu process won't be cleaned up correctly."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:894
+msgid ""
+"Here is an example of a wrapper, where I have built my own copy of qemu from "
+"source:"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:897
+#, no-wrap
+msgid ""
+" #!/bin/sh -\n"
+" qemudir=/home/rjones/d/qemu\n"
+" exec $qemudir/x86_64-softmmu/qemu-system-x86_64 -L $qemudir/pc-bios \"$@\"\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:901
+msgid ""
+"Save this script as C</tmp/qemu.wrapper> (or wherever), C<chmod +x>, and "
+"then use it by setting the LIBGUESTFS_QEMU environment variable. For "
+"example:"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:905
+#, no-wrap
+msgid ""
+" LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:907
+msgid ""
+"Note that libguestfs also calls qemu with the -help and -version options in "
+"order to determine features."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:910
+msgid "ABI GUARANTEE"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:912
+msgid ""
+"We guarantee the libguestfs ABI (binary interface), for public, high-level "
+"actions as outlined in this section. Although we will deprecate some "
+"actions, for example if they get replaced by newer calls, we will keep the "
+"old actions forever. This allows you the developer to program in confidence "
+"against the libguestfs API."
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:918
+msgid "BLOCK DEVICE NAMING"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:920
+msgid ""
+"In the kernel there is now quite a profusion of schemata for naming block "
+"devices (in this context, by I<block device> I mean a physical or virtual "
+"hard drive). The original Linux IDE driver used names starting with C</dev/"
+"hd*>. SCSI devices have historically used a different naming scheme, C</dev/"
+"sd*>. When the Linux kernel I<libata> driver became a popular replacement "
+"for the old IDE driver (particularly for SATA devices) those devices also "
+"used the C</dev/sd*> scheme. Additionally we now have virtual machines with "
+"paravirtualized drivers. This has created several different naming systems, "
+"such as C</dev/vd*> for virtio disks and C</dev/xvd*> for Xen PV disks."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:932
+msgid ""
+"As discussed above, libguestfs uses a qemu appliance running an embedded "
+"Linux kernel to access block devices. We can run a variety of appliances "
+"based on a variety of Linux kernels."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:936
+msgid ""
+"This causes a problem for libguestfs because many API calls use device or "
+"partition names. Working scripts and the recipe (example) scripts that we "
+"make available over the internet could fail if the naming scheme changes."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:941
+msgid ""
+"Therefore libguestfs defines C</dev/sd*> as the I<standard naming scheme>. "
+"Internally C</dev/sd*> names are translated, if necessary, to other names as "
+"required. For example, under RHEL 5 which uses the C</dev/hd*> scheme, any "
+"device parameter C</dev/sda2> is translated to C</dev/hda2> transparently."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:947
+msgid ""
+"Note that this I<only> applies to parameters. The L</guestfs_list_devices>, "
+"L</guestfs_list_partitions> and similar calls return the true names of the "
+"devices and partitions as known to the appliance."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:952
+msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:954
+msgid ""
+"Usually this translation is transparent. However in some (very rare) cases "
+"you may need to know the exact algorithm. Such cases include where you use "
+"L</guestfs_config> to add a mixture of virtio and IDE devices to the qemu-"
+"based appliance, so have a mixture of C</dev/sd*> and C</dev/vd*> devices."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:960
+msgid ""
+"The algorithm is applied only to I<parameters> which are known to be either "
+"device or partition names. Return values from functions such as L</"
+"guestfs_list_devices> are never changed."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:968
+msgid "Is the string a parameter which is a device or partition name?"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:972
+msgid "Does the string begin with C</dev/sd>?"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:976
+msgid ""
+"Does the named device exist? If so, we use that device. However if I<not> "
+"then we continue with this algorithm."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:981
+msgid "Replace initial C</dev/sd> string with C</dev/hd>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:983
+msgid "For example, change C</dev/sda2> to C</dev/hda2>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:985
+msgid "If that named device exists, use it. If not, continue."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:989
+msgid "Replace initial C</dev/sd> string with C</dev/vd>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:991
+msgid "If that named device exists, use it. If not, return an error."
+msgstr ""
+
+# type: =head3
+#: ../src/guestfs.pod:995
+msgid "PORTABILITY CONCERNS WITH BLOCK DEVICE NAMING"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:997
+msgid ""
+"Although the standard naming scheme and automatic translation is useful for "
+"simple programs and guestfish scripts, for larger programs it is best not to "
+"rely on this mechanism."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1001
+msgid ""
+"Where possible for maximum future portability programs using libguestfs "
+"should use these future-proof techniques:"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1008
+msgid ""
+"Use L</guestfs_list_devices> or L</guestfs_list_partitions> to list actual "
+"device names, and then use those names directly."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1011
+msgid ""
+"Since those device names exist by definition, they will never be translated."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1016
+msgid ""
+"Use higher level ways to identify filesystems, such as LVM names, UUIDs and "
+"filesystem labels."
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:1021
+msgid "SECURITY"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1023
+msgid ""
+"This section discusses security implications of using libguestfs, "
+"particularly with untrusted or malicious guests or disk images."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1026
+msgid "GENERAL SECURITY CONSIDERATIONS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1028
+msgid ""
+"Be careful with any files or data that you download from a guest (by "
+"\"download\" we mean not just the L</guestfs_download> command but any "
+"command that reads files, filenames, directories or anything else from a "
+"disk image). An attacker could manipulate the data to fool your program "
+"into doing the wrong thing. Consider cases such as:"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1038
+msgid "the data (file etc) not being present"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1042
+msgid "being present but empty"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1046
+msgid "being much larger than normal"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1050
+msgid "containing arbitrary 8 bit data"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1054
+msgid "being in an unexpected character encoding"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1058
+msgid "containing homoglyphs."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1062
+msgid "SECURITY OF MOUNTING FILESYSTEMS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1064
+msgid ""
+"When you mount a filesystem under Linux, mistakes in the kernel filesystem "
+"(VFS) module can sometimes be escalated into exploits by deliberately "
+"creating a malicious, malformed filesystem. These exploits are very severe "
+"for two reasons. Firstly there are very many filesystem drivers in the "
+"kernel, and many of them are infrequently used and not much developer "
+"attention has been paid to the code. Linux userspace helps potential "
+"crackers by detecting the filesystem type and automatically choosing the "
+"right VFS driver, even if that filesystem type is obscure or unexpected for "
+"the administrator. Secondly, a kernel-level exploit is like a local root "
+"exploit (worse in some ways), giving immediate and total access to the "
+"system right down to the hardware level."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1077
+msgid ""
+"That explains why you should never mount a filesystem from an untrusted "
+"guest on your host kernel. How about libguestfs? We run a Linux kernel "
+"inside a qemu virtual machine, usually running as a non-root user. The "
+"attacker would need to write a filesystem which first exploited the kernel, "
+"and then exploited either qemu virtualization (eg. a faulty qemu driver) or "
+"the libguestfs protocol, and finally to be as serious as the host kernel "
+"exploit it would need to escalate its privileges to root. This multi-step "
+"escalation, performed by a static piece of data, is thought to be extremely "
+"hard to do, although we never say 'never' about security issues."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1088
+msgid ""
+"In any case callers can reduce the attack surface by forcing the filesystem "
+"type when mounting (use L</guestfs_mount_vfs>)."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1091
+msgid "PROTOCOL SECURITY"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1093
+msgid ""
+"The protocol is designed to be secure, being based on RFC 4506 (XDR) with a "
+"defined upper message size. However a program that uses libguestfs must "
+"also take care - for example you can write a program that downloads a binary "
+"from a disk image and executes it locally, and no amount of protocol "
+"security will save you from the consequences."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1099
+msgid "INSPECTION SECURITY"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1101
+msgid ""
+"Parts of the inspection API (see L</INSPECTION>) return untrusted strings "
+"directly from the guest, and these could contain any 8 bit data. Callers "
+"should be careful to escape these before printing them to a structured file "
+"(for example, use HTML escaping if creating a web page)."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1107
+msgid ""
+"The inspection API parses guest configuration using two external libraries: "
+"Augeas (Linux configuration) and hivex (Windows Registry). Both are "
+"designed to be robust in the face of malicious data, although denial of "
+"service attacks are still possible, for example with oversized configuration "
+"files."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1113
+msgid "RUNNING UNTRUSTED GUEST COMMANDS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1115
+msgid ""
+"Be very cautious about running commands from the guest. By running a "
+"command in the guest, you are giving CPU time to a binary that you do not "
+"control, under the same user account as the library, albeit wrapped in qemu "
+"virtualization. More information and alternatives can be found in the "
+"section L</RUNNING COMMANDS>."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1121
+msgid "CVE-2010-3851"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1123
+msgid "https://bugzilla.redhat.com/642934"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1125
+msgid ""
+"This security bug concerns the automatic disk format detection that qemu "
+"does on disk images."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1128
+msgid ""
+"A raw disk image is just the raw bytes, there is no header. Other disk "
+"images like qcow2 contain a special header. Qemu deals with this by looking "
+"for one of the known headers, and if none is found then assuming the disk "
+"image must be raw."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1133
+msgid ""
+"This allows a guest which has been given a raw disk image to write some "
+"other header. At next boot (or when the disk image is accessed by "
+"libguestfs) qemu would do autodetection and think the disk image format was, "
+"say, qcow2 based on the header written by the guest."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1138
+msgid ""
+"This in itself would not be a problem, but qcow2 offers many features, one "
+"of which is to allow a disk image to refer to another image (called the "
+"\"backing disk\"). It does this by placing the path to the backing disk "
+"into the qcow2 header. This path is not validated and could point to any "
+"host file (eg. \"/etc/passwd\"). The backing disk is then exposed through "
+"\"holes\" in the qcow2 disk image, which of course is completely under the "
+"control of the attacker."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1146
+msgid ""
+"In libguestfs this is rather hard to exploit except under two circumstances:"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1153
+msgid "You have enabled the network or have opened the disk in write mode."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1157
+msgid ""
+"You are also running untrusted code from the guest (see L</RUNNING "
+"COMMANDS>)."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1162
+msgid ""
+"The way to avoid this is to specify the expected disk format when adding "
+"disks (the optional C<format> option to L</guestfs_add_drive_opts>). You "
+"should always do this if the disk is raw format, and it's a good idea for "
+"other cases too."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1167
+msgid ""
+"For disks added from libvirt using calls like L</guestfs_add_domain>, the "
+"format is fetched from libvirt and passed through."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1170
+msgid ""
+"For libguestfs tools, use the I<--format> command line parameter as "
+"appropriate."
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:1173
msgid "CONNECTION MANAGEMENT"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:857
+#: ../src/guestfs.pod:1175
msgid "guestfs_h *"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:859
+#: ../src/guestfs.pod:1177
msgid ""
"C<guestfs_h> is the opaque type representing a connection handle. Create a "
"handle by calling L</guestfs_create>. Call L</guestfs_close> to free the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:863
+#: ../src/guestfs.pod:1181
msgid ""
"For information on using multiple handles and threads, see the section L</"
"MULTIPLE HANDLES AND MULTIPLE THREADS> below."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:866
+#: ../src/guestfs.pod:1184
msgid "guestfs_create"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:868
+#: ../src/guestfs.pod:1186
#, no-wrap
msgid ""
" guestfs_h *guestfs_create (void);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:870
+#: ../src/guestfs.pod:1188
msgid "Create a connection handle."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:872
+#: ../src/guestfs.pod:1190
msgid ""
"You have to call L</guestfs_add_drive_opts> (or one of the equivalent calls) "
"on the handle at least once."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:875
+#: ../src/guestfs.pod:1193
msgid ""
"This function returns a non-NULL pointer to a handle on success or NULL on "
"error."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:878
+#: ../src/guestfs.pod:1196
msgid "After configuring the handle, you have to call L</guestfs_launch>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:880
+#: ../src/guestfs.pod:1198
msgid ""
"You may also want to configure error handling for the handle. See L</ERROR "
"HANDLING> section below."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:883
+#: ../src/guestfs.pod:1201
msgid "guestfs_close"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:885
+#: ../src/guestfs.pod:1203
#, no-wrap
msgid ""
" void guestfs_close (guestfs_h *g);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:887
+#: ../src/guestfs.pod:1205
msgid "This closes the connection handle and frees up all resources used."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:889
+#: ../src/guestfs.pod:1207
msgid "ERROR HANDLING"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:891
+#: ../src/guestfs.pod:1209
msgid ""
"API functions can return errors. For example, almost all functions that "
"return C<int> will return C<-1> to indicate an error. You can get "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:897
+#: ../src/guestfs.pod:1215
msgid ""
"When the handle is created, a default error handler is installed which "
"prints the error message string to C<stderr>. For small short-running "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:901
+#: ../src/guestfs.pod:1219
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1)\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:904
+#: ../src/guestfs.pod:1222
msgid ""
"since the default error handler will ensure that an error message has been "
"printed to C<stderr> before the program exits."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:907
+#: ../src/guestfs.pod:1225
msgid ""
"For other programs the caller will almost certainly want to install an "
"alternate error handler or do error handling in-line like this:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:910
+#: ../src/guestfs.pod:1228
#, no-wrap
msgid ""
" g = guestfs_create ();\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:912
+#: ../src/guestfs.pod:1230
#, no-wrap
msgid ""
" /* This disables the default behaviour of printing errors\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:916
+#: ../src/guestfs.pod:1234
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1) {\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:923
+#: ../src/guestfs.pod:1241
msgid ""
"Out of memory errors are handled differently. The default action is to call "
"L<abort(3)>. If this is undesirable, then you can set a handler using L</"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:927
+#: ../src/guestfs.pod:1245
msgid ""
"L</guestfs_create> returns C<NULL> if the handle cannot be created, and "
"because there is no handle if this happens there is no way to get additional "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:933
+#: ../src/guestfs.pod:1251
msgid "guestfs_last_error"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:935
+#: ../src/guestfs.pod:1253
#, no-wrap
msgid ""
" const char *guestfs_last_error (guestfs_h *g);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:937
+#: ../src/guestfs.pod:1255
msgid ""
"This returns the last error message that happened on C<g>. If there has not "
"been an error since the handle was created, then this returns C<NULL>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:941
+#: ../src/guestfs.pod:1259
msgid ""
"The lifetime of the returned string is until the next error occurs, or L</"
"guestfs_close> is called."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:944
+#: ../src/guestfs.pod:1262
msgid "guestfs_set_error_handler"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:946
+#: ../src/guestfs.pod:1264
#, no-wrap
msgid ""
" typedef void (*guestfs_error_handler_cb) (guestfs_h *g,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:953
+#: ../src/guestfs.pod:1271
msgid ""
"The callback C<cb> will be called if there is an error. The parameters "
"passed to the callback are an opaque data pointer and the error message "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:957
+#: ../src/guestfs.pod:1275
msgid ""
"Note that the message string C<msg> is freed as soon as the callback "
"function returns, so if you want to stash it somewhere you must make your "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:961
+#: ../src/guestfs.pod:1279
msgid "The default handler prints messages on C<stderr>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:963
+#: ../src/guestfs.pod:1281
msgid "If you set C<cb> to C<NULL> then I<no> handler is called."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:965
+#: ../src/guestfs.pod:1283
msgid "guestfs_get_error_handler"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:967
+#: ../src/guestfs.pod:1285
#, no-wrap
msgid ""
" guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:970
+#: ../src/guestfs.pod:1288
msgid "Returns the current error handler callback."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:972
+#: ../src/guestfs.pod:1290
msgid "guestfs_set_out_of_memory_handler"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:974
+#: ../src/guestfs.pod:1292
#, no-wrap
msgid ""
" typedef void (*guestfs_abort_cb) (void);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:978
+#: ../src/guestfs.pod:1296
msgid ""
"The callback C<cb> will be called if there is an out of memory situation. "
"I<Note this callback must not return>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:981
+#: ../src/guestfs.pod:1299
msgid "The default is to call L<abort(3)>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:983
+#: ../src/guestfs.pod:1301
msgid ""
"You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:986
+#: ../src/guestfs.pod:1304
msgid "guestfs_get_out_of_memory_handler"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:988
+#: ../src/guestfs.pod:1306
#, no-wrap
msgid ""
" guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:990
+#: ../src/guestfs.pod:1308
msgid "This returns the current out of memory handler."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:992
-msgid "PATH"
+#: ../src/guestfs.pod:1310
+msgid "API CALLS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:994
-msgid ""
-"Libguestfs needs a kernel and initrd.img, which it finds by looking along an "
-"internal path."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:997
-msgid ""
-"By default it looks for these in the directory C<$libdir/guestfs> (eg. C</"
-"usr/local/lib/guestfs> or C</usr/lib64/guestfs>)."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1000
-msgid ""
-"Use L</guestfs_set_path> or set the environment variable L</LIBGUESTFS_PATH> "
-"to change the directories that libguestfs will search in. The value is a "
-"colon-separated list of paths. The current directory is I<not> searched "
-"unless the path contains an empty element or C<.>. For example "
-"C<LIBGUESTFS_PATH=:/usr/lib/guestfs> would search the current directory and "
-"then C</usr/lib/guestfs>."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1007
-msgid "HIGH-LEVEL API ACTIONS"
-msgstr ""
-
-# type: =head2
-#: ../src/guestfs.pod:1009
-msgid "ABI GUARANTEE"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1011
-msgid ""
-"We guarantee the libguestfs ABI (binary interface), for public, high-level "
-"actions as outlined in this section. Although we will deprecate some "
-"actions, for example if they get replaced by newer calls, we will keep the "
-"old actions forever. This allows you the developer to program in confidence "
-"against the libguestfs API."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1017 ../fish/guestfish.pod:860
+#: ../src/guestfs.pod:1312 ../fish/guestfish.pod:894
msgid "@ACTIONS@"
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1019
+#: ../src/guestfs.pod:1314
msgid "STRUCTURES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1021
+#: ../src/guestfs.pod:1316
msgid "@STRUCTS@"
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1023
+#: ../src/guestfs.pod:1318
msgid "AVAILABILITY"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1025
+#: ../src/guestfs.pod:1320
msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1027
+#: ../src/guestfs.pod:1322
msgid ""
"Using L</guestfs_available> you can test availability of the following "
"groups of functions. This test queries the appliance to see if the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1032
+#: ../src/guestfs.pod:1327
msgid "@AVAILABILITY@"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1034
+#: ../src/guestfs.pod:1329
msgid "GUESTFISH supported COMMAND"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1036
+#: ../src/guestfs.pod:1331
msgid ""
"In L<guestfish(3)> there is a handy interactive command C<supported> which "
"prints out the available groups and whether they are supported by this build "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1041
+#: ../src/guestfs.pod:1336
msgid "SINGLE CALLS AT COMPILE TIME"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1043
+#: ../src/guestfs.pod:1338
msgid ""
"Since version 1.5.8, C<E<lt>guestfs.hE<gt>> defines symbols for each C API "
"function, such as:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1046
+#: ../src/guestfs.pod:1341
#, no-wrap
msgid ""
" #define LIBGUESTFS_HAVE_DD 1\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1048
+#: ../src/guestfs.pod:1343
msgid "if L</guestfs_dd> is available."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1050
+#: ../src/guestfs.pod:1345
msgid ""
"Before version 1.5.8, if you needed to test whether a single libguestfs "
"function is available at compile time, we recommended using build tools such "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1055
+#: ../src/guestfs.pod:1350
#, no-wrap
msgid ""
" AC_CHECK_LIB([guestfs],[guestfs_create])\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1058
+#: ../src/guestfs.pod:1353
msgid ""
"which would result in C<HAVE_GUESTFS_DD> being either defined or not defined "
"in your program."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1061
+#: ../src/guestfs.pod:1356
msgid "SINGLE CALLS AT RUN TIME"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1063
+#: ../src/guestfs.pod:1358
msgid ""
"Testing at compile time doesn't guarantee that a function really exists in "
"the library. The reason is that you might be dynamically linked against a "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1070
+#: ../src/guestfs.pod:1365
msgid ""
"You can use L<dlopen(3)> to test if a function is available at run time, as "
"in this example program (note that you still need the compile time check as "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1074
+#: ../src/guestfs.pod:1369
#, no-wrap
msgid ""
" #include <stdio.h>\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1080
+#: ../src/guestfs.pod:1375
#, no-wrap
msgid ""
" main ()\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1086
+#: ../src/guestfs.pod:1381
#, no-wrap
msgid ""
" /* Test if the function guestfs_dd is really available. */\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1095
+#: ../src/guestfs.pod:1390
#, no-wrap
msgid ""
" if (!has_function)\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1108
+#: ../src/guestfs.pod:1403
msgid ""
"You may think the above is an awful lot of hassle, and it is. There are "
"other ways outside of the C linking system to ensure that this kind of "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1113
+#: ../src/guestfs.pod:1408
#, no-wrap
msgid ""
" Requires: libguestfs >= 1.0.80\n"
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1115
+#: ../src/guestfs.pod:1410
msgid "CALLS WITH OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1117
+#: ../src/guestfs.pod:1412
msgid ""
"A recent feature of the API is the introduction of calls which take optional "
"arguments. In C these are declared 3 ways. The main way is as a call which "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1122
+#: ../src/guestfs.pod:1417
#, no-wrap
msgid ""
" int guestfs_add_drive_opts (guestfs_h *g, const char *filename, ...);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1124
+#: ../src/guestfs.pod:1419
msgid ""
"Call this with a list of optional arguments, terminated by C<-1>. So to "
"call with no optional arguments specified:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1127
+#: ../src/guestfs.pod:1422
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename, -1);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1129
+#: ../src/guestfs.pod:1424
msgid "With a single optional argument:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1131
+#: ../src/guestfs.pod:1426
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1135
+#: ../src/guestfs.pod:1430
msgid "With two:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1137
+#: ../src/guestfs.pod:1432
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1142
+#: ../src/guestfs.pod:1437
msgid ""
"and so forth. Don't forget the terminating C<-1> otherwise Bad Things will "
"happen!"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1145
+#: ../src/guestfs.pod:1440
msgid "USING va_list FOR OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1147
+#: ../src/guestfs.pod:1442
msgid ""
"The second variant has the same name with the suffix C<_va>, which works the "
"same way but takes a C<va_list>. See the C manual for details. For the "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1151
+#: ../src/guestfs.pod:1446
#, no-wrap
msgid ""
" int guestfs_add_drive_opts_va (guestfs_h *g, const char *filename,\n"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1154
+#: ../src/guestfs.pod:1449
msgid "CONSTRUCTING OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1156
+#: ../src/guestfs.pod:1451
msgid ""
"The third variant is useful where you need to construct these calls. You "
"pass in a structure where you fill in the optional fields. The structure "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1162
+#: ../src/guestfs.pod:1457
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv {\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1171
+#: ../src/guestfs.pod:1466
msgid "You could call it like this:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1173
+#: ../src/guestfs.pod:1468
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv optargs = {\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1180
+#: ../src/guestfs.pod:1475
#, no-wrap
msgid ""
" guestfs_add_drive_opts_argv (g, filename, &optargs);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1182 ../src/guestfs-actions.pod:11
+#: ../src/guestfs.pod:1477 ../src/guestfs-actions.pod:11
#: ../src/guestfs-actions.pod:1661 ../fish/guestfish-actions.pod:9
#: ../fish/guestfish-actions.pod:1244
msgid "Notes:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1188
+#: ../src/guestfs.pod:1483
msgid "The C<_BITMASK> suffix on each option name when specifying the bitmask."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1193
+#: ../src/guestfs.pod:1488
msgid "You do not need to fill in all fields of the structure."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1197
+#: ../src/guestfs.pod:1492
msgid ""
"There must be a one-to-one correspondence between fields of the structure "
"that are filled in, and bits set in the bitmask."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1202
+#: ../src/guestfs.pod:1497
msgid "OPTIONAL ARGUMENTS IN OTHER LANGUAGES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1204
+#: ../src/guestfs.pod:1499
msgid ""
"In other languages, optional arguments are expressed in the way that is "
"natural for that language. We refer you to the language-specific "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1208
+#: ../src/guestfs.pod:1503
msgid "For guestfish, see L<guestfish(1)/OPTIONAL ARGUMENTS>."
msgstr ""
-# type: =end
-#: ../src/guestfs.pod:1210 ../src/guestfs.pod:1215
-msgid "html"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1212
-msgid ""
-"<!-- old anchor for the next section --> <a name="
-"\"state_machine_and_low_level_event_api\"/>"
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1217
-msgid "ARCHITECTURE"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1219
-msgid ""
-"Internally, libguestfs is implemented by running an appliance (a special "
-"type of small virtual machine) using L<qemu(1)>. Qemu runs as a child "
-"process of the main program."
-msgstr ""
-
-# type: verbatim
-#: ../src/guestfs.pod:1223
-#, no-wrap
-msgid ""
-" ___________________\n"
-" / \\\n"
-" | main program |\n"
-" | |\n"
-" | | child process / appliance\n"
-" | | __________________________\n"
-" | | / qemu \\\n"
-" +-------------------+ RPC | +-----------------+ |\n"
-" | libguestfs <--------------------> guestfsd | |\n"
-" | | | +-----------------+ |\n"
-" \\___________________/ | | Linux kernel | |\n"
-" | +--^--------------+ |\n"
-" \\_________|________________/\n"
-" |\n"
-" _______v______\n"
-" / \\\n"
-" | Device or |\n"
-" | disk image |\n"
-" \\______________/\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1243
-msgid ""
-"The library, linked to the main program, creates the child process and hence "
-"the appliance in the L</guestfs_launch> function."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1246
-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 "
-"L</guestfsd>. The library talks to L</guestfsd> using remote procedure "
-"calls (RPC). There is a mostly one-to-one correspondence between libguestfs "
-"API calls and RPC calls to the daemon. Lastly the disk image(s) are "
-"attached to the qemu process which translates device access by the "
-"appliance's Linux kernel into accesses to the image."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1255
-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 "
-"virtual machine, libguestfs doesn't know or care about this. (But you will "
-"care if both libguestfs's qemu process and your virtual machine are trying "
-"to update the disk image at the same time, since these usually results in "
-"massive disk corruption)."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1262
-msgid "STATE MACHINE"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1264
-msgid "libguestfs uses a state machine to model the child process:"
-msgstr ""
-
-# type: verbatim
-#: ../src/guestfs.pod:1266
-#, no-wrap
-msgid ""
-" |\n"
-" guestfs_create\n"
-" |\n"
-" |\n"
-" ____V_____\n"
-" / \\\n"
-" | CONFIG |\n"
-" \\__________/\n"
-" ^ ^ ^ \\\n"
-" / | \\ \\ guestfs_launch\n"
-" / | _\\__V______\n"
-" / | / \\\n"
-" / | | LAUNCHING |\n"
-" / | \\___________/\n"
-" / | /\n"
-" / | guestfs_launch\n"
-" / | /\n"
-" ______ / __|____V\n"
-" / \\ ------> / \\\n"
-" | BUSY | | READY |\n"
-" \\______/ <------ \\________/\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1288
-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), "
-"(3) alternating between READY and BUSY as commands are issued to, and "
-"carried out by, the child process."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1293
-msgid ""
-"The guest may be killed by L</guestfs_kill_subprocess>, or may die "
-"asynchronously at any time (eg. due to some internal error), and that causes "
-"the state to transition back to CONFIG."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1297
-msgid ""
-"Configuration commands for qemu such as L</guestfs_add_drive> can only be "
-"issued when in the CONFIG state."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1300
-msgid ""
-"The API offers one call that goes from CONFIG through LAUNCHING to READY. "
-"L</guestfs_launch> blocks until the child process is READY to accept "
-"commands (or until some failure or timeout). L</guestfs_launch> internally "
-"moves the state from CONFIG to LAUNCHING while it is running."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1306
-msgid ""
-"API actions such as L</guestfs_mount> can only be issued when in the READY "
-"state. These API calls block waiting for the command to be carried out (ie. "
-"the state to transition to BUSY and then back to READY). There are no non-"
-"blocking versions, and no way to issue more than one command per handle at "
-"the same time."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1312
-msgid ""
-"Finally, the child process sends asynchronous messages back to the main "
-"program, such as kernel log messages. You can register a callback to "
-"receive these messages."
-msgstr ""
-
# type: =head2
-#: ../src/guestfs.pod:1316
+#: ../src/guestfs.pod:1505
msgid "SETTING CALLBACKS TO HANDLE EVENTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1318
+#: ../src/guestfs.pod:1507
msgid ""
"The child process generates events in some situations. Current events "
"include: receiving a log message, the child process exits."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1321
+#: ../src/guestfs.pod:1510
msgid ""
"Use the C<guestfs_set_*_callback> functions to set a callback for different "
"types of events."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1324
+#: ../src/guestfs.pod:1513
msgid ""
"Only I<one callback of each type> can be registered for each handle. "
"Calling C<guestfs_set_*_callback> again overwrites the previous callback of "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1329
+#: ../src/guestfs.pod:1518
msgid "guestfs_set_log_message_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1331
+#: ../src/guestfs.pod:1520
#, no-wrap
msgid ""
" typedef void (*guestfs_log_message_cb) (guestfs_h *g, void *opaque,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1337
+#: ../src/guestfs.pod:1526
msgid ""
"The callback function C<cb> will be called whenever qemu or the guest writes "
"anything to the console."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1340
+#: ../src/guestfs.pod:1529
msgid "Use this function to capture kernel messages and similar."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1342
+#: ../src/guestfs.pod:1531
msgid ""
"Normally there is no log message handler, and log messages are just "
"discarded."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1345
+#: ../src/guestfs.pod:1534
msgid "guestfs_set_subprocess_quit_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1347
+#: ../src/guestfs.pod:1536
#, no-wrap
msgid ""
" typedef void (*guestfs_subprocess_quit_cb) (guestfs_h *g, void *opaque);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1352
+#: ../src/guestfs.pod:1541
msgid ""
"The callback function C<cb> will be called when the child process quits, "
"either asynchronously or if killed by L</guestfs_kill_subprocess>. (This "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1357
+#: ../src/guestfs.pod:1546
msgid "guestfs_set_launch_done_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1359
+#: ../src/guestfs.pod:1548
#, no-wrap
msgid ""
" typedef void (*guestfs_launch_done_cb) (guestfs_h *g, void *opaque);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1364
+#: ../src/guestfs.pod:1553
msgid ""
"The callback function C<cb> will be called when the child process becomes "
"ready first time after it has been launched. (This corresponds to a "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1368
+#: ../src/guestfs.pod:1557
msgid "guestfs_set_close_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1370
+#: ../src/guestfs.pod:1559
#, no-wrap
msgid ""
" typedef void (*guestfs_close_cb) (guestfs_h *g, void *opaque);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1375
+#: ../src/guestfs.pod:1564
msgid ""
"The callback function C<cb> will be called while the handle is being closed "
"(synchronously from L</guestfs_close>)."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1378
+#: ../src/guestfs.pod:1567
msgid ""
"Note that libguestfs installs an L<atexit(3)> handler to try to clean up "
"handles that are open when the program exits. This means that this callback "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1386
+#: ../src/guestfs.pod:1575
msgid "guestfs_set_progress_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1388
+#: ../src/guestfs.pod:1577
#, no-wrap
msgid ""
" typedef void (*guestfs_progress_cb) (guestfs_h *g, void *opaque,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1395
+#: ../src/guestfs.pod:1584
msgid ""
"Some long-running operations can generate progress messages. If this "
"callback is registered, then it will be called each time a progress message "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1401
+#: ../src/guestfs.pod:1590
msgid ""
"The callback receives two numbers: C<position> and C<total>. The units of "
"C<total> are not defined, although for some operations C<total> may relate "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1407
+#: ../src/guestfs.pod:1596
msgid "The only defined and stable parts of the API are:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1413
+#: ../src/guestfs.pod:1602
msgid ""
"The callback can display to the user some type of progress bar or indicator "
"which shows the ratio of C<position>:C<total>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1418
+#: ../src/guestfs.pod:1607
msgid "0 E<lt>= C<position> E<lt>= C<total>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1422
+#: ../src/guestfs.pod:1611
msgid ""
"If any progress notification is sent during a call, then a final progress "
"notification is always sent when C<position> = C<total>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1425
+#: ../src/guestfs.pod:1614
msgid ""
"This is to simplify caller code, so callers can easily set the progress "
"indicator to \"100%\" at the end of the operation, without requiring special "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1431
+#: ../src/guestfs.pod:1620
msgid ""
"The callback also receives the procedure number and serial number of the "
"call. These are only useful for debugging protocol issues, and the callback "
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1436
+#: ../src/guestfs.pod:1625
msgid "PRIVATE DATA AREA"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1438
+#: ../src/guestfs.pod:1627
msgid ""
"You can attach named pieces of private data to the libguestfs handle, and "
"fetch them by name for the lifetime of the handle. This is called the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1442
+#: ../src/guestfs.pod:1631
msgid "To attach a named piece of data, use the following call:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1444
+#: ../src/guestfs.pod:1633
#, no-wrap
msgid ""
" void guestfs_set_private (guestfs_h *g, const char *key, void *data);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1446
+#: ../src/guestfs.pod:1635
msgid ""
"C<key> is the name to associate with this data, and C<data> is an arbitrary "
"pointer (which can be C<NULL>). Any previous item with the same name is "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1450
+#: ../src/guestfs.pod:1639
msgid ""
"You can use any C<key> you want, but names beginning with an underscore "
"character are reserved for internal libguestfs purposes (for implementing "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1455
+#: ../src/guestfs.pod:1644
msgid "To retrieve the pointer, use:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1457
+#: ../src/guestfs.pod:1646
#, no-wrap
msgid ""
" void *guestfs_get_private (guestfs_h *g, const char *key);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1459
+#: ../src/guestfs.pod:1648
msgid ""
"This function returns C<NULL> if either no data is found associated with "
"C<key>, or if the user previously set the C<key>'s C<data> pointer to "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1463
+#: ../src/guestfs.pod:1652
msgid ""
"Libguestfs does not try to look at or interpret the C<data> pointer in any "
"way. As far as libguestfs is concerned, it need not be a valid pointer at "
"handle is closed. If the data must be freed, then the caller must either "
"free it before calling L</guestfs_close> or must set up a close callback to "
"do it (see L</guestfs_set_close_callback>, and note that only one callback "
-"can be registered for a handle)."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1471
-msgid ""
-"The private data area is implemented using a hash table, and should be "
-"reasonably efficient for moderate numbers of keys."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1474
-msgid "BLOCK DEVICE NAMING"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1476
-msgid ""
-"In the kernel there is now quite a profusion of schemata for naming block "
-"devices (in this context, by I<block device> I mean a physical or virtual "
-"hard drive). The original Linux IDE driver used names starting with C</dev/"
-"hd*>. SCSI devices have historically used a different naming scheme, C</dev/"
-"sd*>. When the Linux kernel I<libata> driver became a popular replacement "
-"for the old IDE driver (particularly for SATA devices) those devices also "
-"used the C</dev/sd*> scheme. Additionally we now have virtual machines with "
-"paravirtualized drivers. This has created several different naming systems, "
-"such as C</dev/vd*> for virtio disks and C</dev/xvd*> for Xen PV disks."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1488
-msgid ""
-"As discussed above, libguestfs uses a qemu appliance running an embedded "
-"Linux kernel to access block devices. We can run a variety of appliances "
-"based on a variety of Linux kernels."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1492
-msgid ""
-"This causes a problem for libguestfs because many API calls use device or "
-"partition names. Working scripts and the recipe (example) scripts that we "
-"make available over the internet could fail if the naming scheme changes."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1497
-msgid ""
-"Therefore libguestfs defines C</dev/sd*> as the I<standard naming scheme>. "
-"Internally C</dev/sd*> names are translated, if necessary, to other names as "
-"required. For example, under RHEL 5 which uses the C</dev/hd*> scheme, any "
-"device parameter C</dev/sda2> is translated to C</dev/hda2> transparently."
+"can be registered for a handle)."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1503
+#: ../src/guestfs.pod:1660
msgid ""
-"Note that this I<only> applies to parameters. The L</guestfs_list_devices>, "
-"L</guestfs_list_partitions> and similar calls return the true names of the "
-"devices and partitions as known to the appliance."
+"The private data area is implemented using a hash table, and should be "
+"reasonably efficient for moderate numbers of keys."
msgstr ""
-# type: =head2
-#: ../src/guestfs.pod:1508
-msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION"
+# type: =end
+#: ../src/guestfs.pod:1663 ../src/guestfs.pod:1668
+msgid "html"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1510
+#: ../src/guestfs.pod:1665
msgid ""
-"Usually this translation is transparent. However in some (very rare) cases "
-"you may need to know the exact algorithm. Such cases include where you use "
-"L</guestfs_config> to add a mixture of virtio and IDE devices to the qemu-"
-"based appliance, so have a mixture of C</dev/sd*> and C</dev/vd*> devices."
+"<!-- old anchor for the next section --> <a name="
+"\"state_machine_and_low_level_event_api\"/>"
msgstr ""
-# type: textblock
-#: ../src/guestfs.pod:1516
-msgid ""
-"The algorithm is applied only to I<parameters> which are known to be either "
-"device or partition names. Return values from functions such as L</"
-"guestfs_list_devices> are never changed."
+# type: =head1
+#: ../src/guestfs.pod:1670
+msgid "ARCHITECTURE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1524
-msgid "Is the string a parameter which is a device or partition name?"
+#: ../src/guestfs.pod:1672
+msgid ""
+"Internally, libguestfs is implemented by running an appliance (a special "
+"type of small virtual machine) using L<qemu(1)>. Qemu runs as a child "
+"process of the main program."
msgstr ""
-# type: textblock
-#: ../src/guestfs.pod:1528
-msgid "Does the string begin with C</dev/sd>?"
+# type: verbatim
+#: ../src/guestfs.pod:1676
+#, no-wrap
+msgid ""
+" ___________________\n"
+" / \\\n"
+" | main program |\n"
+" | |\n"
+" | | child process / appliance\n"
+" | | __________________________\n"
+" | | / qemu \\\n"
+" +-------------------+ RPC | +-----------------+ |\n"
+" | libguestfs <--------------------> guestfsd | |\n"
+" | | | +-----------------+ |\n"
+" \\___________________/ | | Linux kernel | |\n"
+" | +--^--------------+ |\n"
+" \\_________|________________/\n"
+" |\n"
+" _______v______\n"
+" / \\\n"
+" | Device or |\n"
+" | disk image |\n"
+" \\______________/\n"
+"\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1532
+#: ../src/guestfs.pod:1696
msgid ""
-"Does the named device exist? If so, we use that device. However if I<not> "
-"then we continue with this algorithm."
+"The library, linked to the main program, creates the child process and hence "
+"the appliance in the L</guestfs_launch> function."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1537
-msgid "Replace initial C</dev/sd> string with C</dev/hd>."
+#: ../src/guestfs.pod:1699
+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 "
+"L</guestfsd>. The library talks to L</guestfsd> using remote procedure "
+"calls (RPC). There is a mostly one-to-one correspondence between libguestfs "
+"API calls and RPC calls to the daemon. Lastly the disk image(s) are "
+"attached to the qemu process which translates device access by the "
+"appliance's Linux kernel into accesses to the image."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1539
-msgid "For example, change C</dev/sda2> to C</dev/hda2>."
+#: ../src/guestfs.pod:1708
+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 "
+"virtual machine, libguestfs doesn't know or care about this. (But you will "
+"care if both libguestfs's qemu process and your virtual machine are trying "
+"to update the disk image at the same time, since these usually results in "
+"massive disk corruption)."
msgstr ""
-# type: textblock
-#: ../src/guestfs.pod:1541
-msgid "If that named device exists, use it. If not, continue."
+# type: =head1
+#: ../src/guestfs.pod:1715
+msgid "STATE MACHINE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1545
-msgid "Replace initial C</dev/sd> string with C</dev/vd>."
+#: ../src/guestfs.pod:1717
+msgid "libguestfs uses a state machine to model the child process:"
msgstr ""
-# type: textblock
-#: ../src/guestfs.pod:1547
-msgid "If that named device exists, use it. If not, return an error."
+# type: verbatim
+#: ../src/guestfs.pod:1719
+#, no-wrap
+msgid ""
+" |\n"
+" guestfs_create\n"
+" |\n"
+" |\n"
+" ____V_____\n"
+" / \\\n"
+" | CONFIG |\n"
+" \\__________/\n"
+" ^ ^ ^ \\\n"
+" / | \\ \\ guestfs_launch\n"
+" / | _\\__V______\n"
+" / | / \\\n"
+" / | | LAUNCHING |\n"
+" / | \\___________/\n"
+" / | /\n"
+" / | guestfs_launch\n"
+" / | /\n"
+" ______ / __|____V\n"
+" / \\ ------> / \\\n"
+" | BUSY | | READY |\n"
+" \\______/ <------ \\________/\n"
+"\n"
msgstr ""
-# type: =head2
-#: ../src/guestfs.pod:1551
-msgid "PORTABILITY CONCERNS"
+# type: textblock
+#: ../src/guestfs.pod:1741
+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), "
+"(3) alternating between READY and BUSY as commands are issued to, and "
+"carried out by, the child process."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1553
+#: ../src/guestfs.pod:1746
msgid ""
-"Although the standard naming scheme and automatic translation is useful for "
-"simple programs and guestfish scripts, for larger programs it is best not to "
-"rely on this mechanism."
+"The guest may be killed by L</guestfs_kill_subprocess>, or may die "
+"asynchronously at any time (eg. due to some internal error), and that causes "
+"the state to transition back to CONFIG."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1557
+#: ../src/guestfs.pod:1750
msgid ""
-"Where possible for maximum future portability programs using libguestfs "
-"should use these future-proof techniques:"
+"Configuration commands for qemu such as L</guestfs_add_drive> can only be "
+"issued when in the CONFIG state."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1564
+#: ../src/guestfs.pod:1753
msgid ""
-"Use L</guestfs_list_devices> or L</guestfs_list_partitions> to list actual "
-"device names, and then use those names directly."
+"The API offers one call that goes from CONFIG through LAUNCHING to READY. "
+"L</guestfs_launch> blocks until the child process is READY to accept "
+"commands (or until some failure or timeout). L</guestfs_launch> internally "
+"moves the state from CONFIG to LAUNCHING while it is running."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1567
+#: ../src/guestfs.pod:1759
msgid ""
-"Since those device names exist by definition, they will never be translated."
+"API actions such as L</guestfs_mount> can only be issued when in the READY "
+"state. These API calls block waiting for the command to be carried out (ie. "
+"the state to transition to BUSY and then back to READY). There are no non-"
+"blocking versions, and no way to issue more than one command per handle at "
+"the same time."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1572
+#: ../src/guestfs.pod:1765
msgid ""
-"Use higher level ways to identify filesystems, such as LVM names, UUIDs and "
-"filesystem labels."
+"Finally, the child process sends asynchronous messages back to the main "
+"program, such as kernel log messages. You can register a callback to "
+"receive these messages."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1577
+#: ../src/guestfs.pod:1769
msgid "INTERNALS"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1579
+#: ../src/guestfs.pod:1771
msgid "COMMUNICATION PROTOCOL"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1581
+#: ../src/guestfs.pod:1773
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:1584
+#: ../src/guestfs.pod:1776
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1588
+#: ../src/guestfs.pod:1780
msgid ""
"The detailed format of structures is in C<src/guestfs_protocol.x> (note: "
"this file is automatically generated)."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1591
+#: ../src/guestfs.pod:1783
msgid ""
"There are two broad cases, ordinary functions that don't have any C<FileIn> "
"and C<FileOut> parameters, which are handled with very simple request/reply "
msgstr ""
# type: =head3
-#: ../src/guestfs.pod:1598
+#: ../src/guestfs.pod:1790
msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1600
+#: ../src/guestfs.pod:1792
msgid "For ordinary functions, the request message is:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1602
+#: ../src/guestfs.pod:1794
#, no-wrap
msgid ""
" total length (header + arguments,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1607
+#: ../src/guestfs.pod:1799
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1613
+#: ../src/guestfs.pod:1805
msgid ""
"Note also that many functions don't take any arguments, in which case the "
"C<guestfs_I<foo>_args> is completely omitted."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1616
+#: ../src/guestfs.pod:1808
msgid ""
"The header contains the procedure number (C<guestfs_proc>) which is how the "
"receiver knows what type of args structure to expect, or none at all."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1620
+#: ../src/guestfs.pod:1812
msgid "The reply message for ordinary functions is:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1622
+#: ../src/guestfs.pod:1814
#, no-wrap
msgid ""
" total length (header + ret,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1627
+#: ../src/guestfs.pod:1819
msgid ""
"As above the C<guestfs_I<foo>_ret> structure may be completely omitted for "
"functions that return no formal return values."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1630
+#: ../src/guestfs.pod:1822
msgid ""
"As above the total length of the reply is limited to C<GUESTFS_MESSAGE_MAX>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1633
+#: ../src/guestfs.pod:1825
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:1636
+#: ../src/guestfs.pod:1828
#, no-wrap
msgid ""
" total length (header + error,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1641
+#: ../src/guestfs.pod:1833
msgid ""
"The C<guestfs_message_error> structure contains the error message as a "
"string."
msgstr ""
# type: =head3
-#: ../src/guestfs.pod:1644
+#: ../src/guestfs.pod:1836
msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1646
+#: ../src/guestfs.pod:1838
msgid ""
"A C<FileIn> parameter indicates that we transfer a file I<into> the guest. "
"The normal request message is sent (see above). However this is followed by "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1650
+#: ../src/guestfs.pod:1842
#, no-wrap
msgid ""
" total length (header + arguments,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1658
+#: ../src/guestfs.pod:1850
msgid "The \"sequence of chunks\" is:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1660
+#: ../src/guestfs.pod:1852
#, no-wrap
msgid ""
" length of chunk (not including length word itself)\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1668
+#: ../src/guestfs.pod:1860
msgid ""
"The final chunk has the C<data_len> field set to zero. Additionally a flag "
"is set in the final chunk to indicate either successful completion or early "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1672
+#: ../src/guestfs.pod:1864
msgid ""
"At time of writing there are no functions that have more than one FileIn "
"parameter. However this is (theoretically) supported, by sending the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1677
+#: ../src/guestfs.pod:1869
msgid ""
"Both the library (sender) I<and> the daemon (receiver) may cancel the "
"transfer. The library does this by sending a chunk with a special flag set "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1683
+#: ../src/guestfs.pod:1875
msgid ""
"The daemon may also cancel. It does this by writing a special word "
"C<GUESTFS_CANCEL_FLAG> to the socket. The library listens for this during "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1692
+#: ../src/guestfs.pod:1884
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 "
msgstr ""
# type: =head3
-#: ../src/guestfs.pod:1698
+#: ../src/guestfs.pod:1890
msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1700
+#: ../src/guestfs.pod:1892
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:1703
+#: ../src/guestfs.pod:1895
#, no-wrap
msgid ""
" total length (header + ret,\n"
msgstr ""
# type: =head3
-#: ../src/guestfs.pod:1711
+#: ../src/guestfs.pod:1903
msgid "INITIAL MESSAGE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1713
+#: ../src/guestfs.pod:1905
msgid ""
"When the daemon launches it sends an initial word (C<GUESTFS_LAUNCH_FLAG>) "
-"which indicates that the guest and daemon is alive. This is what L</"
-"guestfs_launch> waits for."
-msgstr ""
-
-# type: =head3
-#: ../src/guestfs.pod:1717
-msgid "PROGRESS NOTIFICATION MESSAGES"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1719
-msgid ""
-"The daemon may send progress notification messages at any time. These are "
-"distinguished by the normal length word being replaced by "
-"C<GUESTFS_PROGRESS_FLAG>, followed by a fixed size progress message."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1723
-msgid ""
-"The library turns them into progress callbacks (see "
-"C<guestfs_set_progress_callback>) if there is a callback registered, or "
-"discards them if not."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1727
-msgid ""
-"The daemon self-limits the frequency of progress messages it sends (see "
-"C<daemon/proto.c:notify_progress>). Not all calls generate progress "
-"messages."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1731
-msgid "MULTIPLE HANDLES AND MULTIPLE THREADS"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1733
-msgid ""
-"All high-level libguestfs actions are synchronous. If you want to use "
-"libguestfs asynchronously then you must create a thread."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1736
-msgid ""
-"Only use the handle from a single thread. Either use the handle exclusively "
-"from one thread, or provide your own mutex so that two threads cannot issue "
-"calls on the same handle at the same time."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1740
-msgid ""
-"See the graphical program guestfs-browser for one possible architecture for "
-"multithreaded programs using libvirt and libguestfs."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1743
-msgid "QEMU WRAPPERS"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1745
-msgid ""
-"If you want to compile your own qemu, run qemu from a non-standard location, "
-"or pass extra arguments to qemu, then you can write a shell-script wrapper "
-"around qemu."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1749
-msgid ""
-"There is one important rule to remember: you I<must C<exec qemu>> as the "
-"last command in the shell script (so that qemu replaces the shell and "
-"becomes the direct child of the libguestfs-using program). If you don't do "
-"this, then the qemu process won't be cleaned up correctly."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1754
-msgid ""
-"Here is an example of a wrapper, where I have built my own copy of qemu from "
-"source:"
-msgstr ""
-
-# type: verbatim
-#: ../src/guestfs.pod:1757
-#, no-wrap
-msgid ""
-" #!/bin/sh -\n"
-" qemudir=/home/rjones/d/qemu\n"
-" exec $qemudir/x86_64-softmmu/qemu-system-x86_64 -L $qemudir/pc-bios \"$@\"\n"
-"\n"
+"which indicates that the guest and daemon is alive. This is what L</"
+"guestfs_launch> waits for."
+msgstr ""
+
+# type: =head3
+#: ../src/guestfs.pod:1909
+msgid "PROGRESS NOTIFICATION MESSAGES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1761
+#: ../src/guestfs.pod:1911
msgid ""
-"Save this script as C</tmp/qemu.wrapper> (or wherever), C<chmod +x>, and "
-"then use it by setting the LIBGUESTFS_QEMU environment variable. For "
-"example:"
+"The daemon may send progress notification messages at any time. These are "
+"distinguished by the normal length word being replaced by "
+"C<GUESTFS_PROGRESS_FLAG>, followed by a fixed size progress message."
msgstr ""
-# type: verbatim
-#: ../src/guestfs.pod:1765
-#, no-wrap
+# type: textblock
+#: ../src/guestfs.pod:1915
msgid ""
-" LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n"
-"\n"
+"The library turns them into progress callbacks (see "
+"C<guestfs_set_progress_callback>) if there is a callback registered, or "
+"discards them if not."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1767
+#: ../src/guestfs.pod:1919
msgid ""
-"Note that libguestfs also calls qemu with the -help and -version options in "
-"order to determine features."
+"The daemon self-limits the frequency of progress messages it sends (see "
+"C<daemon/proto.c:notify_progress>). Not all calls generate progress "
+"messages."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1770
+#: ../src/guestfs.pod:1923
msgid "LIBGUESTFS VERSION NUMBERS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1772
+#: ../src/guestfs.pod:1925
msgid ""
"Since April 2010, libguestfs has started to make separate development and "
"stable releases, along with corresponding branches in our git repository. "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1777
+#: ../src/guestfs.pod:1930
#, no-wrap
msgid ""
" even numbers for stable: 1.2.x, 1.4.x, ...\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1788
+#: ../src/guestfs.pod:1941
msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1790
+#: ../src/guestfs.pod:1943
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1796
+#: ../src/guestfs.pod:1949
msgid "Our criteria for backporting changes are:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1802
+#: ../src/guestfs.pod:1955
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:1808
+#: ../src/guestfs.pod:1961
msgid ""
"Bug fixes which are not controversial, fix obvious problems, and have been "
"well tested are backported."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1813
+#: ../src/guestfs.pod:1966
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1819
+#: ../src/guestfs.pod:1972
msgid ""
"We I<don't> backport new features, new APIs, new tools etc, except in one "
"exceptional case: the new feature is required in order to implement an "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1825
+#: ../src/guestfs.pod:1978
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 "
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1833 ../fish/guestfish.pod:867
+#: ../src/guestfs.pod:1986 ../fish/guestfish.pod:901
#: ../test-tool/libguestfs-test-tool.pod:104 ../tools/virt-edit.pl:330
#: ../tools/virt-rescue.pl:255
msgid "ENVIRONMENT VARIABLES"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1837 ../fish/guestfish.pod:893
+#: ../src/guestfs.pod:1990 ../fish/guestfish.pod:927
msgid "LIBGUESTFS_APPEND"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1839 ../fish/guestfish.pod:895
+#: ../src/guestfs.pod:1992 ../fish/guestfish.pod:929
msgid "Pass additional options to the guest kernel."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1841 ../fish/guestfish.pod:897
+#: ../src/guestfs.pod:1994 ../fish/guestfish.pod:931
msgid "LIBGUESTFS_DEBUG"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1843
+#: ../src/guestfs.pod:1996
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as calling C<guestfs_set_verbose (g, 1)>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1846 ../fish/guestfish.pod:902
+#: ../src/guestfs.pod:1999 ../fish/guestfish.pod:936
msgid "LIBGUESTFS_MEMSIZE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1848 ../fish/guestfish.pod:904
+#: ../src/guestfs.pod:2001 ../fish/guestfish.pod:938
msgid ""
"Set the memory allocated to the qemu process, in megabytes. For example:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1851 ../fish/guestfish.pod:907
+#: ../src/guestfs.pod:2004 ../fish/guestfish.pod:941
#, no-wrap
msgid ""
" LIBGUESTFS_MEMSIZE=700\n"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1853 ../fish/guestfish.pod:909
+#: ../src/guestfs.pod:2006 ../fish/guestfish.pod:943
msgid "LIBGUESTFS_PATH"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1855
+#: ../src/guestfs.pod:2008
msgid ""
"Set the path that libguestfs uses to search for kernel and initrd.img. See "
"the discussion of paths in section PATH above."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1858 ../fish/guestfish.pod:914
+#: ../src/guestfs.pod:2011 ../fish/guestfish.pod:948
msgid "LIBGUESTFS_QEMU"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1860 ../fish/guestfish.pod:916
+#: ../src/guestfs.pod:2013 ../fish/guestfish.pod:950
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: textblock
-#: ../src/guestfs.pod:1864
+#: ../src/guestfs.pod:2017
msgid "See also L</QEMU WRAPPERS> above."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1866 ../fish/guestfish.pod:920
+#: ../src/guestfs.pod:2019 ../fish/guestfish.pod:954
msgid "LIBGUESTFS_TRACE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1868
+#: ../src/guestfs.pod:2021
msgid ""
"Set C<LIBGUESTFS_TRACE=1> to enable command traces. This has the same "
"effect as calling C<guestfs_set_trace (g, 1)>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1871 ../fish/guestfish.pod:929
+#: ../src/guestfs.pod:2024 ../fish/guestfish.pod:963
msgid "TMPDIR"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1873 ../fish/guestfish.pod:931
+#: ../src/guestfs.pod:2026 ../fish/guestfish.pod:965
msgid "Location of temporary directory, defaults to C</tmp>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1875 ../fish/guestfish.pod:933
+#: ../src/guestfs.pod:2028 ../fish/guestfish.pod:967
msgid ""
"If libguestfs was compiled to use the supermin appliance then the real "
"appliance is cached in this directory, shared between all handles belonging "
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1883 ../fish/guestfish.pod:991
-#: ../test-tool/libguestfs-test-tool.pod:109 ../fuse/guestmount.pod:214
+#: ../src/guestfs.pod:2036 ../fish/guestfish.pod:1025
+#: ../test-tool/libguestfs-test-tool.pod:109 ../fuse/guestmount.pod:221
#: ../inspector/virt-inspector.pl:570 ../tools/virt-edit.pl:350
#: ../tools/virt-win-reg.pl:484 ../tools/virt-df.pl:640
#: ../tools/virt-ls.pl:232 ../tools/virt-resize.pl:1486
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1885
+#: ../src/guestfs.pod:2038
msgid ""
"L<guestfish(1)>, L<guestmount(1)>, L<virt-cat(1)>, L<virt-df(1)>, L<virt-edit"
"(1)>, L<virt-inspector(1)>, L<virt-list-filesystems(1)>, L<virt-list-"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1903
+#: ../src/guestfs.pod:2056
msgid ""
"Tools with a similar purpose: L<fdisk(8)>, L<parted(8)>, L<kpartx(8)>, L<lvm"
"(8)>, L<disktype(1)>."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1910 ../tools/virt-win-reg.pl:499
+#: ../src/guestfs.pod:2063 ../tools/virt-win-reg.pl:499
#: ../tools/virt-make-fs.pl:548
msgid "BUGS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1912
+#: ../src/guestfs.pod:2065
msgid "To get a list of bugs against libguestfs use this link:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1914
+#: ../src/guestfs.pod:2067
msgid ""
"L<https://bugzilla.redhat.com/buglist.cgi?"
"component=libguestfs&product=Virtualization+Tools>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1916
+#: ../src/guestfs.pod:2069
msgid "To report a new bug against libguestfs use this link:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1918
+#: ../src/guestfs.pod:2071
msgid ""
"L<https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1920
+#: ../src/guestfs.pod:2073
msgid "When reporting a bug, please check:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1926
+#: ../src/guestfs.pod:2079
msgid "That the bug hasn't been reported already."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1930
+#: ../src/guestfs.pod:2083
msgid "That you are testing a recent version."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1934
+#: ../src/guestfs.pod:2087
msgid "Describe the bug accurately, and give a way to reproduce it."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1938
+#: ../src/guestfs.pod:2091
msgid ""
"Run libguestfs-test-tool and paste the B<complete, unedited> output into the "
"bug report."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1943 ../fish/guestfish.pod:1008
-#: ../test-tool/libguestfs-test-tool.pod:115 ../fuse/guestmount.pod:225
+#: ../src/guestfs.pod:2096 ../fish/guestfish.pod:1042
+#: ../test-tool/libguestfs-test-tool.pod:115 ../fuse/guestmount.pod:232
#: ../inspector/virt-inspector.pl:580
msgid "AUTHORS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1945 ../fish/guestfish.pod:1010
-#: ../test-tool/libguestfs-test-tool.pod:117 ../fuse/guestmount.pod:227
+#: ../src/guestfs.pod:2098 ../fish/guestfish.pod:1044
+#: ../test-tool/libguestfs-test-tool.pod:117 ../fuse/guestmount.pod:234
msgid "Richard W.M. Jones (C<rjones at redhat dot com>)"
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1947 ../fish/guestfish.pod:1012
-#: ../test-tool/libguestfs-test-tool.pod:119 ../fuse/guestmount.pod:229
+#: ../src/guestfs.pod:2100 ../fish/guestfish.pod:1046
+#: ../test-tool/libguestfs-test-tool.pod:119 ../fuse/guestmount.pod:236
#: ../inspector/virt-inspector.pl:594 ../tools/virt-edit.pl:366
#: ../tools/virt-win-reg.pl:514 ../tools/virt-df.pl:653
#: ../tools/virt-ls.pl:247 ../tools/virt-resize.pl:1512
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1949 ../fish/guestfish.pod:1014
-#: ../fuse/guestmount.pod:231
+#: ../src/guestfs.pod:2102 ../fish/guestfish.pod:1048
+#: ../fuse/guestmount.pod:238
msgid "Copyright (C) 2009-2010 Red Hat Inc. L<http://libguestfs.org/>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1952
+#: ../src/guestfs.pod:2105
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1957
+#: ../src/guestfs.pod:2110
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1962
+#: ../src/guestfs.pod:2115
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, "
# type: textblock
#: ../src/guestfs-actions.pod:2253 ../fish/guestfish-actions.pod:1678
-msgid "Debian or a Debian-derived distro such as Ubuntu."
+msgid "Debian."
msgstr ""
# type: =item
msgstr ""
# type: =item
-#: ../src/guestfs-actions.pod:2279 ../src/guestfs-actions.pod:2441
-#: ../fish/guestfish-actions.pod:1704 ../fish/guestfish-actions.pod:1834
-msgid "\"windows\""
+#: ../src/guestfs-actions.pod:2279 ../fish/guestfish-actions.pod:1704
+msgid "\"ubuntu\""
msgstr ""
# type: textblock
#: ../src/guestfs-actions.pod:2281 ../fish/guestfish-actions.pod:1706
-msgid ""
-"Windows does not have distributions. This string is returned if the OS type "
-"is Windows."
+msgid "Ubuntu."
msgstr ""
# type: =item
-#: ../src/guestfs-actions.pod:2284 ../fish/guestfish-actions.pod:1709
-msgid "\"ubuntu\""
+#: ../src/guestfs-actions.pod:2283 ../src/guestfs-actions.pod:2445
+#: ../fish/guestfish-actions.pod:1708 ../fish/guestfish-actions.pod:1838
+msgid "\"unknown\""
msgstr ""
# type: textblock
-#: ../src/guestfs-actions.pod:2286 ../fish/guestfish-actions.pod:1711
-msgid "Ubuntu."
+#: ../src/guestfs-actions.pod:2285 ../fish/guestfish-actions.pod:1710
+msgid "The distro could not be determined."
msgstr ""
# type: =item
-#: ../src/guestfs-actions.pod:2288 ../src/guestfs-actions.pod:2445
-#: ../fish/guestfish-actions.pod:1713 ../fish/guestfish-actions.pod:1838
-msgid "\"unknown\""
+#: ../src/guestfs-actions.pod:2287 ../src/guestfs-actions.pod:2441
+#: ../fish/guestfish-actions.pod:1712 ../fish/guestfish-actions.pod:1834
+msgid "\"windows\""
msgstr ""
# type: textblock
-#: ../src/guestfs-actions.pod:2290 ../fish/guestfish-actions.pod:1715
-msgid "The distro could not be determined."
+#: ../src/guestfs-actions.pod:2289 ../fish/guestfish-actions.pod:1714
+msgid ""
+"Windows does not have distributions. This string is returned if the OS type "
+"is Windows."
msgstr ""
# type: textblock
#: ../fish/guestfish.pod:13
#, no-wrap
msgid ""
-" guestfish -a disk.img\n"
+" guestfish [--ro|--rw] -a disk.img\n"
"\n"
msgstr ""
#: ../fish/guestfish.pod:15
#, no-wrap
msgid ""
-" guestfish -a disk.img -m dev[:mountpoint]\n"
+" guestfish [--ro|--rw] -a disk.img -m dev[:mountpoint]\n"
"\n"
msgstr ""
#: ../fish/guestfish.pod:19
#, no-wrap
msgid ""
-" guestfish -a disk.img -i\n"
+" guestfish [--ro|--rw] -a disk.img -i\n"
"\n"
msgstr ""
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:800
+#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:834
#: ../fuse/guestmount.pod:39 ../tools/virt-edit.pl:58
#: ../tools/virt-resize.pl:66 ../tools/virt-cat.pl:50 ../tools/virt-tar.pl:45
msgid "EXAMPLES"
#: ../fish/guestfish.pod:102
#, no-wrap
msgid ""
-" guestfish --add disk.img \\\n"
+" guestfish --rw --add disk.img \\\n"
" --mount /dev/vg_guest/lv_root \\\n"
" --mount /dev/sda1:/boot \\\n"
" edit /boot/grub/grub.conf\n"
#: ../fish/guestfish.pod:118
#, no-wrap
msgid ""
-" guestfish -a disk.img -i edit /boot/grub/grub.conf\n"
+" guestfish --rw -a disk.img -i edit /boot/grub/grub.conf\n"
"\n"
msgstr ""
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:791
+#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:825
#, no-wrap
msgid ""
" guestfish -N help | less\n"
#: ../fish/guestfish.pod:143
#, no-wrap
msgid ""
-" eval `guestfish --listen`\n"
+" eval \"`guestfish --listen`\"\n"
" guestfish --remote add-ro disk.img\n"
" guestfish --remote run\n"
" guestfish --remote lvs\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:211 ../fish/guestfish.pod:504
+#: ../fish/guestfish.pod:211 ../fish/guestfish.pod:538
#: ../inspector/virt-inspector.pl:549
msgid "For example:"
msgstr ""
#: ../fish/guestfish.pod:243
#, no-wrap
msgid ""
-" guestfish -a /dev/Guests/MyGuest -i\n"
+" guestfish --rw -a /dev/Guests/MyGuest -i\n"
"\n"
msgstr ""
"I<--ro> option."
msgstr ""
+# type: textblock
+#: ../fish/guestfish.pod:318
+msgid "See also L</OPENING DISKS FOR READ AND WRITE> below."
+msgstr ""
+
# type: =item
-#: ../fish/guestfish.pod:318 ../fuse/guestmount.pod:194
+#: ../fish/guestfish.pod:320 ../fuse/guestmount.pod:196
#: ../tools/virt-rescue.pl:195
msgid "B<--selinux>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:320
+#: ../fish/guestfish.pod:322
msgid "Enable SELinux support for the guest. See L<guestfs(3)/SELINUX>."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:322 ../fuse/guestmount.pod:198
+#: ../fish/guestfish.pod:324 ../fuse/guestmount.pod:200
msgid "B<-v> | B<--verbose>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:324
+#: ../fish/guestfish.pod:326
msgid ""
"Enable very verbose messages. This is particularly useful if you find a bug."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:327 ../fuse/guestmount.pod:202
+#: ../fish/guestfish.pod:329 ../fuse/guestmount.pod:204
msgid "B<-V> | B<--version>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:329
+#: ../fish/guestfish.pod:331
msgid "Display the guestfish / libguestfs version number and exit."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:331
+#: ../fish/guestfish.pod:333 ../fuse/guestmount.pod:208
+msgid "B<-w> | B<--rw>"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:335
+msgid ""
+"This option does nothing at the moment. See L</OPENING DISKS FOR READ AND "
+"WRITE> below."
+msgstr ""
+
+# type: =item
+#: ../fish/guestfish.pod:338
msgid "B<-x>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:333
+#: ../fish/guestfish.pod:340
msgid "Echo each command before executing it."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:337
+#: ../fish/guestfish.pod:344
msgid "COMMANDS ON COMMAND LINE"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:339
+#: ../fish/guestfish.pod:346
msgid ""
"Any additional (non-option) arguments are treated as commands to execute."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:342
+#: ../fish/guestfish.pod:349
msgid ""
"Commands to execute should be separated by a colon (C<:>), where the colon "
"is a separate parameter. Thus:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:345
+#: ../fish/guestfish.pod:352
#, no-wrap
msgid ""
" guestfish cmd [args...] : cmd [args...] : cmd [args...] ...\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:347
+#: ../fish/guestfish.pod:354
msgid ""
"If there are no additional arguments, then we enter a shell, either an "
"interactive shell with a prompt (if the input is a terminal) or a non-"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:351
+#: ../fish/guestfish.pod:358
msgid ""
"In either command line mode or non-interactive shell, the first command that "
"gives an error causes the whole shell to exit. In interactive mode (with a "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:356
+#: ../fish/guestfish.pod:363
msgid "USING launch (OR run)"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:358
+#: ../fish/guestfish.pod:365
msgid ""
"As with L<guestfs(3)>, you must first configure your guest by adding disks, "
"then launch it, then mount any disks you need, and finally issue actions/"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:366
+#: ../fish/guestfish.pod:373
msgid "add or -a/--add"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:370
+#: ../fish/guestfish.pod:377
msgid "launch (aka run)"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:374
+#: ../fish/guestfish.pod:381
msgid "mount or -m/--mount"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:378
+#: ../fish/guestfish.pod:385
msgid "any other commands"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:382
+#: ../fish/guestfish.pod:389
msgid ""
"C<run> is a synonym for C<launch>. You must C<launch> (or C<run>) your "
"guest before mounting or performing any other commands."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:385
+#: ../fish/guestfish.pod:392
msgid ""
"The only exception is that if any of the I<-i>, I<-m>, I<--mount>, I<-N> or "
"I<--new> options were given then C<run> is done automatically, simply "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:390
+#: ../fish/guestfish.pod:397
+msgid "OPENING DISKS FOR READ AND WRITE"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:399
+msgid ""
+"The guestfish (and L<guestmount(1)>) options I<--ro> and I<--rw> affect "
+"whether the other command line options I<-a>, I<-c>, I<-d>, I<-i> and I<-m> "
+"open disk images read-only or for writing."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:403
+msgid ""
+"In libguestfs E<lt> 1.6.2, guestfish and guestmount defaulted to opening "
+"disk images supplied on the command line for write. To open a disk image "
+"read-only you have to do I<-a image --ro>."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:407
+msgid ""
+"This matters: If you accidentally open a live VM disk image writable then "
+"you will cause irreversible disk corruption."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:410
+msgid ""
+"By libguestfs 1.8 we intend to change the default the other way. Disk "
+"images will be opened read-only. You will have to either specify "
+"I<guestfish --rw> or change a configuration file in order to get write "
+"access for disk images specified by those other command line options."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:415
+msgid ""
+"This version of guestfish has a I<--rw> option which does nothing (it is "
+"already the default). However it is highly recommended that you use this "
+"option to indicate that guestfish needs write access, and to prepare your "
+"scripts for the day when this option will be required for write access."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:421
+msgid ""
+"B<Note:> This does I<not> affect commands like L</add> and L</mount>, or any "
+"other libguestfs program apart from guestfish and guestmount."
+msgstr ""
+
+# type: =head1
+#: ../fish/guestfish.pod:424
msgid "QUOTING"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:392
+#: ../fish/guestfish.pod:426
msgid ""
"You can quote ordinary parameters using either single or double quotes. For "
"example:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:395
+#: ../fish/guestfish.pod:429
#, no-wrap
msgid ""
" add \"file with a space.img\"\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:397
+#: ../fish/guestfish.pod:431
#, no-wrap
msgid ""
" rm '/file name'\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:399
+#: ../fish/guestfish.pod:433
#, no-wrap
msgid ""
" rm '/\"'\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:401
+#: ../fish/guestfish.pod:435
msgid ""
"A few commands require a list of strings to be passed. For these, use a "
"whitespace-separated list, enclosed in quotes. Strings containing "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:406
+#: ../fish/guestfish.pod:440
#, no-wrap
msgid ""
" vgcreate VG \"/dev/sda1 /dev/sdb1\"\n"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:410
+#: ../fish/guestfish.pod:444
msgid "OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:412
+#: ../fish/guestfish.pod:446
msgid ""
"Some commands take optional arguments. These arguments appear in this "
"documentation as C<[argname:..]>. You can use them as in these examples:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:416
+#: ../fish/guestfish.pod:450
#, no-wrap
msgid ""
" add-drive-opts filename\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:418
+#: ../fish/guestfish.pod:452
#, no-wrap
msgid ""
" add-drive-opts filename readonly:true\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:420
+#: ../fish/guestfish.pod:454
#, no-wrap
msgid ""
" add-drive-opts filename format:qcow2 readonly:false\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:422
+#: ../fish/guestfish.pod:456
msgid ""
"Each optional argument can appear at most once. All optional arguments must "
"appear after the required ones."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:425
+#: ../fish/guestfish.pod:459
msgid "NUMBERS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:427
+#: ../fish/guestfish.pod:461
msgid ""
"This section applies to all commands which can take integers as parameters."
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:430
+#: ../fish/guestfish.pod:464
msgid "SIZE SUFFIX"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:432
+#: ../fish/guestfish.pod:466
msgid ""
"When the command takes a parameter measured in bytes, you can use one of the "
"following suffixes to specify kilobytes, megabytes and larger sizes:"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:438
+#: ../fish/guestfish.pod:472
msgid "B<k> or B<K> or B<KiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:440
+#: ../fish/guestfish.pod:474
msgid "The size in kilobytes (multiplied by 1024)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:442
+#: ../fish/guestfish.pod:476
msgid "B<KB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:444
+#: ../fish/guestfish.pod:478
msgid "The size in SI 1000 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:446
+#: ../fish/guestfish.pod:480
msgid "B<M> or B<MiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:448
+#: ../fish/guestfish.pod:482
msgid "The size in megabytes (multiplied by 1048576)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:450
+#: ../fish/guestfish.pod:484
msgid "B<MB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:452
+#: ../fish/guestfish.pod:486
msgid "The size in SI 1000000 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:454
+#: ../fish/guestfish.pod:488
msgid "B<G> or B<GiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:456
+#: ../fish/guestfish.pod:490
msgid "The size in gigabytes (multiplied by 2**30)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:458
+#: ../fish/guestfish.pod:492
msgid "B<GB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:460
+#: ../fish/guestfish.pod:494
msgid "The size in SI 10**9 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:462
+#: ../fish/guestfish.pod:496
msgid "B<T> or B<TiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:464
+#: ../fish/guestfish.pod:498
msgid "The size in terabytes (multiplied by 2**40)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:466
+#: ../fish/guestfish.pod:500
msgid "B<TB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:468
+#: ../fish/guestfish.pod:502
msgid "The size in SI 10**12 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:470
+#: ../fish/guestfish.pod:504
msgid "B<P> or B<PiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:472
+#: ../fish/guestfish.pod:506
msgid "The size in petabytes (multiplied by 2**50)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:474
+#: ../fish/guestfish.pod:508
msgid "B<PB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:476
+#: ../fish/guestfish.pod:510
msgid "The size in SI 10**15 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:478
+#: ../fish/guestfish.pod:512
msgid "B<E> or B<EiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:480
+#: ../fish/guestfish.pod:514
msgid "The size in exabytes (multiplied by 2**60)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:482
+#: ../fish/guestfish.pod:516
msgid "B<EB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:484
+#: ../fish/guestfish.pod:518
msgid "The size in SI 10**18 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:486
+#: ../fish/guestfish.pod:520
msgid "B<Z> or B<ZiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:488
+#: ../fish/guestfish.pod:522
msgid "The size in zettabytes (multiplied by 2**70)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:490
+#: ../fish/guestfish.pod:524
msgid "B<ZB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:492
+#: ../fish/guestfish.pod:526
msgid "The size in SI 10**21 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:494
+#: ../fish/guestfish.pod:528
msgid "B<Y> or B<YiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:496
+#: ../fish/guestfish.pod:530
msgid "The size in yottabytes (multiplied by 2**80)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:498
+#: ../fish/guestfish.pod:532
msgid "B<YB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:500
+#: ../fish/guestfish.pod:534
msgid "The size in SI 10**24 byte units."
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:506
+#: ../fish/guestfish.pod:540
#, no-wrap
msgid ""
" truncate-size /file 1G\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:508
+#: ../fish/guestfish.pod:542
msgid "would truncate the file to 1 gigabyte."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:510
+#: ../fish/guestfish.pod:544
msgid ""
"Be careful because a few commands take sizes in kilobytes or megabytes (eg. "
"the parameter to L</memsize> is specified in megabytes already). Adding a "
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:514
+#: ../fish/guestfish.pod:548
msgid "OCTAL AND HEXADECIMAL NUMBERS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:516
+#: ../fish/guestfish.pod:550
msgid ""
"For specifying the radix (base) use the C convention: C<0> to prefix an "
"octal number or C<0x> to prefix a hexadecimal number. For example:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:519
+#: ../fish/guestfish.pod:553
#, no-wrap
msgid ""
" 1234 decimal number 1234\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:523
+#: ../fish/guestfish.pod:557
msgid ""
"When using the C<chmod> command, you almost always want to specify an octal "
"number for the mode, and you must prefix it with C<0> (unlike the Unix "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:527
+#: ../fish/guestfish.pod:561
#, no-wrap
msgid ""
" chmod 0777 /public # OK\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:530
+#: ../fish/guestfish.pod:564
msgid ""
"Commands that return numbers usually print them in decimal, but some "
"commands print numbers in other radices (eg. C<umask> prints the mode in "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:534
+#: ../fish/guestfish.pod:568
msgid "WILDCARDS AND GLOBBING"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:536
+#: ../fish/guestfish.pod:570
msgid ""
"Neither guestfish nor the underlying guestfs API performs wildcard expansion "
"(globbing) by default. So for example the following will not do what you "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:540
+#: ../fish/guestfish.pod:574
#, no-wrap
msgid ""
" rm-rf /home/*\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:542
+#: ../fish/guestfish.pod:576
msgid ""
"Assuming you don't have a directory called literally C</home/*> then the "
"above command will return an error."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:545
+#: ../fish/guestfish.pod:579
msgid "To perform wildcard expansion, use the C<glob> command."
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:547
+#: ../fish/guestfish.pod:581
#, no-wrap
msgid ""
" glob rm-rf /home/*\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:549
+#: ../fish/guestfish.pod:583
msgid ""
"runs C<rm-rf> on each path that matches (ie. potentially running the command "
"many times), equivalent to:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:552
+#: ../fish/guestfish.pod:586
#, no-wrap
msgid ""
" rm-rf /home/jim\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:556
+#: ../fish/guestfish.pod:590
msgid "C<glob> only works on simple guest paths and not on device names."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:558
+#: ../fish/guestfish.pod:592
msgid ""
"If you have several parameters, each containing a wildcard, then glob will "
"perform a Cartesian product."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:561
+#: ../fish/guestfish.pod:595
msgid "COMMENTS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:563
+#: ../fish/guestfish.pod:597
msgid ""
"Any line which starts with a I<#> character is treated as a comment and "
"ignored. The I<#> can optionally be preceeded by whitespace, but B<not> by "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:567
+#: ../fish/guestfish.pod:601
#, no-wrap
msgid ""
" # this is a comment\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:571
+#: ../fish/guestfish.pod:605
msgid "Blank lines are also ignored."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:573
+#: ../fish/guestfish.pod:607
msgid "RUNNING COMMANDS LOCALLY"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:575
+#: ../fish/guestfish.pod:609
msgid ""
"Any line which starts with a I<!> character is treated as a command sent to "
"the local shell (C</bin/sh> or whatever L<system(3)> uses). For example:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:579
+#: ../fish/guestfish.pod:613
#, no-wrap
msgid ""
" !mkdir local\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:582
+#: ../fish/guestfish.pod:616
msgid ""
"will create a directory C<local> on the host, and then export the contents "
"of C</remote> on the mounted filesystem to C<local/remote-data.tar.gz>. "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:586
+#: ../fish/guestfish.pod:620
msgid ""
"To change the local directory, use the C<lcd> command. C<!cd> will have no "
"effect, due to the way that subprocesses work in Unix."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:589
+#: ../fish/guestfish.pod:623
msgid "PIPES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:591
+#: ../fish/guestfish.pod:625
msgid ""
"Use C<command E<lt>spaceE<gt> | command> to pipe the output of the first "
"command (a guestfish command) to the second command (any host command). For "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:595
+#: ../fish/guestfish.pod:629
#, no-wrap
msgid ""
" cat /etc/passwd | awk -F: '$3 == 0 { print }'\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:597
+#: ../fish/guestfish.pod:631
msgid ""
"(where C<cat> is the guestfish cat command, but C<awk> is the host awk "
"program). The above command would list all accounts in the guest filesystem "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:602
+#: ../fish/guestfish.pod:636
#, no-wrap
msgid ""
" hexdump /bin/ls | head\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:606
+#: ../fish/guestfish.pod:640
msgid ""
"The space before the pipe symbol is required, any space after the pipe "
"symbol is optional. Everything after the pipe symbol is just passed "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:611
+#: ../fish/guestfish.pod:645
msgid ""
"To use a literal argument which begins with a pipe symbol, you have to quote "
"it, eg:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:614
+#: ../fish/guestfish.pod:648
#, no-wrap
msgid ""
" echo \"|\"\n"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:616
+#: ../fish/guestfish.pod:650
msgid "HOME DIRECTORIES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:618
+#: ../fish/guestfish.pod:652
msgid ""
"If a parameter starts with the character C<~> then the tilde may be expanded "
"as a home directory path (either C<~> for the current user's home directory, "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:622
+#: ../fish/guestfish.pod:656
msgid ""
"Note that home directory expansion happens for users known I<on the host>, "
"not in the guest filesystem."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:625
+#: ../fish/guestfish.pod:659
msgid ""
"To use a literal argument which begins with a tilde, you have to quote it, "
"eg:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:628
+#: ../fish/guestfish.pod:662
#, no-wrap
msgid ""
" echo \"~\"\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:632
+#: ../fish/guestfish.pod:666
msgid ""
"Libguestfs has some support for Linux guests encrypted according to the "
"Linux Unified Key Setup (LUKS) standard, which includes nearly all whole "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:637
+#: ../fish/guestfish.pod:671
msgid "Identify encrypted block devices and partitions using L</vfs-type>:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:639
+#: ../fish/guestfish.pod:673
#, no-wrap
msgid ""
" ><fs> vfs-type /dev/sda2\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:642
+#: ../fish/guestfish.pod:676
msgid ""
"Then open those devices using L</luks-open>. This creates a device-mapper "
"device called C</dev/mapper/luksdev>."
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:645
+#: ../fish/guestfish.pod:679
#, no-wrap
msgid ""
" ><fs> luks-open /dev/sda2 luksdev\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:648
+#: ../fish/guestfish.pod:682
msgid ""
"Finally you have to tell LVM to scan for volume groups on the newly created "
"mapper device:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:651
+#: ../fish/guestfish.pod:685
#, no-wrap
msgid ""
" vgscan\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:654
+#: ../fish/guestfish.pod:688
msgid "The logical volume(s) can now be mounted in the usual way."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:656
+#: ../fish/guestfish.pod:690
msgid ""
"Before closing a LUKS device you must unmount any logical volumes on it and "
"deactivate the volume groups by calling C<vg-activate false VG> on each "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:660
+#: ../fish/guestfish.pod:694
#, no-wrap
msgid ""
" vg-activate false /dev/VG\n"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:663
+#: ../fish/guestfish.pod:697
msgid "WINDOWS PATHS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:665
+#: ../fish/guestfish.pod:699
msgid ""
"If a path is prefixed with C<win:> then you can use Windows-style paths "
"(with some limitations). The following commands are equivalent:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:668
+#: ../fish/guestfish.pod:702
#, no-wrap
msgid ""
" file /WINDOWS/system32/config/system.LOG\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:670
+#: ../fish/guestfish.pod:704
#, no-wrap
msgid ""
" file win:/windows/system32/config/system.log\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:672
+#: ../fish/guestfish.pod:706
#, no-wrap
msgid ""
" file win:\\windows\\system32\\config\\system.log\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:674
+#: ../fish/guestfish.pod:708
#, no-wrap
msgid ""
" file WIN:C:\\Windows\\SYSTEM32\\conFIG\\SYSTEM.LOG\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:676
+#: ../fish/guestfish.pod:710
msgid ""
"This syntax implicitly calls C<case-sensitive-path> (q.v.) so it also "
"handles case insensitivity like Windows would. This only works in argument "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:680
+#: ../fish/guestfish.pod:714
msgid "UPLOADING AND DOWNLOADING FILES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:682
+#: ../fish/guestfish.pod:716
msgid ""
"For commands such as C<upload>, C<download>, C<tar-in>, C<tar-out> and "
"others which upload from or download to a local file, you can use the "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:686
+#: ../fish/guestfish.pod:720
#, no-wrap
msgid ""
" upload - /foo\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:688
+#: ../fish/guestfish.pod:722
msgid ""
"reads stdin and creates from that a file C</foo> in the disk image, and:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:691
+#: ../fish/guestfish.pod:725
#, no-wrap
msgid ""
" tar-out /etc - | tar tf -\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:693
+#: ../fish/guestfish.pod:727
msgid ""
"writes the tarball to stdout and then pipes that into the external \"tar\" "
"command (see L</PIPES>)."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:696
+#: ../fish/guestfish.pod:730
msgid ""
"When using C<-> to read from stdin, the input is read up to the end of "
"stdin. You can also use a special \"heredoc\"-like syntax to read up to "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:700
+#: ../fish/guestfish.pod:734
#, no-wrap
msgid ""
" upload -<<END /foo\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:706
+#: ../fish/guestfish.pod:740
msgid ""
"Any string of characters can be used instead of C<END>. The end marker must "
"appear on a line of its own, without any preceeding or following characters "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:710
+#: ../fish/guestfish.pod:744
msgid ""
"Note that the C<-E<lt>E<lt>> syntax only applies to parameters used to "
"upload local files (so-called \"FileIn\" parameters in the generator)."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:713
+#: ../fish/guestfish.pod:747
msgid "EXIT ON ERROR BEHAVIOUR"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:715
+#: ../fish/guestfish.pod:749
msgid ""
"By default, guestfish will ignore any errors when in interactive mode (ie. "
"taking commands from a human over a tty), and will exit on the first error "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:720
+#: ../fish/guestfish.pod:754
msgid ""
"If you prefix a command with a I<-> character, then that command will not "
"cause guestfish to exit, even if that (one) command returns an error."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:724
+#: ../fish/guestfish.pod:758
msgid "REMOTE CONTROL GUESTFISH OVER A SOCKET"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:726
+#: ../fish/guestfish.pod:760
msgid ""
"Guestfish can be remote-controlled over a socket. This is useful "
"particularly in shell scripts where you want to make several different "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:731
+#: ../fish/guestfish.pod:765
msgid "Start a guestfish server process using:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:733
+#: ../fish/guestfish.pod:767
#, no-wrap
msgid ""
-" eval `guestfish --listen`\n"
+" eval \"`guestfish --listen`\"\n"
"\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:735
+#: ../fish/guestfish.pod:769
msgid "and then send it commands by doing:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:737
+#: ../fish/guestfish.pod:771
#, no-wrap
msgid ""
" guestfish --remote cmd [...]\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:739
+#: ../fish/guestfish.pod:773
msgid "To cause the server to exit, send it the exit command:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:741
+#: ../fish/guestfish.pod:775
#, no-wrap
msgid ""
" guestfish --remote exit\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:743
+#: ../fish/guestfish.pod:777
msgid ""
"Note that the server will normally exit if there is an error in a command. "
"You can change this in the usual way. See section L</EXIT ON ERROR "
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:747
+#: ../fish/guestfish.pod:781
msgid "CONTROLLING MULTIPLE GUESTFISH PROCESSES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:749
+#: ../fish/guestfish.pod:783
msgid ""
"The C<eval> statement sets the environment variable C<$GUESTFISH_PID>, which "
"is how the I<--remote> option knows where to send the commands. You can "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:753
+#: ../fish/guestfish.pod:787
#, no-wrap
msgid ""
-" eval `guestfish --listen`\n"
+" eval \"`guestfish --listen`\"\n"
" pid1=$GUESTFISH_PID\n"
-" eval `guestfish --listen`\n"
+" eval \"`guestfish --listen`\"\n"
" pid2=$GUESTFISH_PID\n"
" ...\n"
" guestfish --remote=$pid1 cmd\n"
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:761
+#: ../fish/guestfish.pod:795
msgid "REMOTE CONTROL DETAILS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:763
+#: ../fish/guestfish.pod:797
msgid ""
"Remote control happens over a Unix domain socket called C</tmp/.guestfish-"
"$UID/socket-$PID>, where C<$UID> is the effective user ID of the process, "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:767
+#: ../fish/guestfish.pod:801
msgid "Guestfish client and server versions must match exactly."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:769
+#: ../fish/guestfish.pod:803
msgid "PREPARED DISK IMAGES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:771
+#: ../fish/guestfish.pod:805
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. "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:777
+#: ../fish/guestfish.pod:811
msgid ""
"The new disk is called C<test1.img> for the first I<-N>, C<test2.img> for "
"the second and so on. Existing files in the current directory are "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:781
+#: ../fish/guestfish.pod:815
msgid ""
"The type briefly describes how the disk should be sized, partitioned, how "
"filesystem(s) should be created, and how content should be added. "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:789
+#: ../fish/guestfish.pod:823
msgid "To list the available types and any extra parameters they take, run:"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:793
+#: ../fish/guestfish.pod:827
msgid ""
"Note that the prepared filesystem is not mounted. You would usually have to "
"use the C<mount /dev/sda1 /> command or add the I<-m /dev/sda1> option."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:797
+#: ../fish/guestfish.pod:831
msgid ""
"If any I<-N> or I<--new> options are given, the guest is automatically "
"launched."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:802
+#: ../fish/guestfish.pod:836
msgid "Create a 100MB disk with an ext4-formatted partition:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:804
+#: ../fish/guestfish.pod:838
#, no-wrap
msgid ""
" guestfish -N fs:ext4\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:806
+#: ../fish/guestfish.pod:840
msgid "Create a 32MB disk with a VFAT-formatted partition, and mount it:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:808
+#: ../fish/guestfish.pod:842
#, no-wrap
msgid ""
" guestfish -N fs:vfat:32M -m /dev/sda1\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:810
+#: ../fish/guestfish.pod:844
msgid "Create a blank 200MB disk:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:812
+#: ../fish/guestfish.pod:846
#, no-wrap
msgid ""
" guestfish -N disk:200M\n"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:814
+#: ../fish/guestfish.pod:848
msgid "PROGRESS BARS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:816
+#: ../fish/guestfish.pod:850
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:820
+#: ../fish/guestfish.pod:854
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 "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:824
+#: ../fish/guestfish.pod:858
#, no-wrap
msgid ""
" ><fs> copy-size /large-file /another-file 2048M\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:827
+#: ../fish/guestfish.pod:861
msgid ""
"The spinner on the left hand side moves round once for every progress "
"notification received from the backend. This is a (reasonably) golden "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:834
+#: ../fish/guestfish.pod:868
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>, "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:839
+#: ../fish/guestfish.pod:873
msgid "GUESTFISH COMMANDS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:841
+#: ../fish/guestfish.pod:875
msgid ""
"The commands in this section are guestfish convenience commands, in other "
"words, they are not part of the L<guestfs(3)> API."
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:844
+#: ../fish/guestfish.pod:878
msgid "help"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:846
+#: ../fish/guestfish.pod:880
#, no-wrap
msgid ""
" help\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:849
+#: ../fish/guestfish.pod:883
msgid ""
"Without any parameter, this lists all commands. With a C<cmd> parameter, "
"this displays detailed help for a command."
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:852
+#: ../fish/guestfish.pod:886
msgid "quit | exit"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:854
+#: ../fish/guestfish.pod:888
msgid "This exits guestfish. You can also use C<^D> key."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:856
+#: ../fish/guestfish.pod:890
msgid "@FISH_COMMANDS@"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:858
+#: ../fish/guestfish.pod:892
msgid "COMMANDS"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:862 ../test-tool/libguestfs-test-tool.pod:83
+#: ../fish/guestfish.pod:896 ../test-tool/libguestfs-test-tool.pod:83
msgid "EXIT CODE"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:864
+#: ../fish/guestfish.pod:898
msgid ""
"guestfish returns 0 if the commands completed without error, or 1 if there "
"was an error."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:871
+#: ../fish/guestfish.pod:905
msgid "EDITOR"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:873
+#: ../fish/guestfish.pod:907
msgid ""
"The C<edit> command uses C<$EDITOR> as the editor. If not set, it uses "
"C<vi>."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:876
+#: ../fish/guestfish.pod:910
msgid "GUESTFISH_PID"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:878
+#: ../fish/guestfish.pod:912
msgid ""
"Used with the I<--remote> option to specify the remote guestfish process to "
"control. See section L</REMOTE CONTROL GUESTFISH OVER A SOCKET>."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:882
+#: ../fish/guestfish.pod:916
msgid "HEXEDITOR"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:884
+#: ../fish/guestfish.pod:918
msgid ""
"The L</hexedit> command uses C<$HEXEDITOR> as the external hex editor. If "
"not specified, the external L<hexedit(1)> program is used."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:888
+#: ../fish/guestfish.pod:922
msgid "HOME"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:890
+#: ../fish/guestfish.pod:924
msgid ""
"If compiled with GNU readline support, various files in the home directory "
"can be used. See L</FILES>."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:899
+#: ../fish/guestfish.pod:933
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as using the B<-v> option."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:911
+#: ../fish/guestfish.pod:945
msgid ""
"Set the path that guestfish uses to search for kernel and initrd.img. See "
"the discussion of paths in L<guestfs(3)>."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:922
+#: ../fish/guestfish.pod:956
msgid "Set C<LIBGUESTFS_TRACE=1> to enable command traces."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:924
+#: ../fish/guestfish.pod:958
msgid "PAGER"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:926
+#: ../fish/guestfish.pod:960
msgid ""
"The C<more> command uses C<$PAGER> as the pager. If not set, it uses "
"C<more>."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:941 ../test-tool/libguestfs-test-tool.pod:88
+#: ../fish/guestfish.pod:975 ../test-tool/libguestfs-test-tool.pod:88
msgid "FILES"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:945
+#: ../fish/guestfish.pod:979
msgid "$HOME/.guestfish"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:947
+#: ../fish/guestfish.pod:981
msgid ""
"If compiled with GNU readline support, then the command history is saved in "
"this file."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:950
+#: ../fish/guestfish.pod:984
msgid "$HOME/.inputrc"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:952
+#: ../fish/guestfish.pod:986
msgid "/etc/inputrc"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:954
+#: ../fish/guestfish.pod:988
msgid ""
"If compiled with GNU readline support, then these files can be used to "
"configure readline. For further information, please see L<readline(3)/"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:958
+#: ../fish/guestfish.pod:992
msgid "To write rules which only apply to guestfish, use:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:960
+#: ../fish/guestfish.pod:994
#, no-wrap
msgid ""
" $if guestfish\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:964
+#: ../fish/guestfish.pod:998
msgid ""
"Variables that you can set in inputrc that change the behaviour of guestfish "
"in useful ways include:"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:969
+#: ../fish/guestfish.pod:1003
msgid "completion-ignore-case (default: on)"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:971
+#: ../fish/guestfish.pod:1005
msgid ""
"By default, guestfish will ignore case when tab-completing paths on the "
"disk. Use:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:974
+#: ../fish/guestfish.pod:1008
#, no-wrap
msgid ""
" set completion-ignore-case off\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:976
+#: ../fish/guestfish.pod:1010
msgid "to make guestfish case sensitive."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:980
+#: ../fish/guestfish.pod:1014
msgid "test1.img"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:982
+#: ../fish/guestfish.pod:1016
msgid "test2.img (etc)"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:984
+#: ../fish/guestfish.pod:1018
msgid ""
"When using the C<-N> or C<--new> option, the prepared disk or filesystem "
"will be created in the file C<test1.img> in the current directory. The "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:993
+#: ../fish/guestfish.pod:1027
msgid ""
"L<guestfs(3)>, L<http://libguestfs.org/>, L<virt-cat(1)>, L<virt-df(1)>, "
"L<virt-edit(1)>, L<virt-list-filesystems(1)>, L<virt-list-partitions(1)>, "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:1017 ../test-tool/libguestfs-test-tool.pod:124
-#: ../fuse/guestmount.pod:234 ../inspector/virt-inspector.pl:598
+#: ../fish/guestfish.pod:1051 ../test-tool/libguestfs-test-tool.pod:124
+#: ../fuse/guestmount.pod:241 ../inspector/virt-inspector.pl:598
#: ../tools/virt-edit.pl:370 ../tools/virt-win-reg.pl:518
#: ../tools/virt-df.pl:657 ../tools/virt-ls.pl:251
#: ../tools/virt-resize.pl:1516 ../tools/virt-list-filesystems.pl:206
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:1022 ../test-tool/libguestfs-test-tool.pod:129
-#: ../fuse/guestmount.pod:239 ../inspector/virt-inspector.pl:603
+#: ../fish/guestfish.pod:1056 ../test-tool/libguestfs-test-tool.pod:129
+#: ../fuse/guestmount.pod:246 ../inspector/virt-inspector.pl:603
#: ../tools/virt-edit.pl:375 ../tools/virt-win-reg.pl:523
#: ../tools/virt-df.pl:662 ../tools/virt-ls.pl:256
#: ../tools/virt-resize.pl:1521 ../tools/virt-list-filesystems.pl:211
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:1027 ../test-tool/libguestfs-test-tool.pod:134
-#: ../fuse/guestmount.pod:244 ../inspector/virt-inspector.pl:608
+#: ../fish/guestfish.pod:1061 ../test-tool/libguestfs-test-tool.pod:134
+#: ../fuse/guestmount.pod:251 ../inspector/virt-inspector.pl:608
#: ../tools/virt-edit.pl:380 ../tools/virt-win-reg.pl:528
#: ../tools/virt-df.pl:667 ../tools/virt-ls.pl:261
#: ../tools/virt-resize.pl:1526 ../tools/virt-list-filesystems.pl:216
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:196
+#: ../fuse/guestmount.pod:194
+msgid "See also L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
+msgstr ""
+
+# type: textblock
+#: ../fuse/guestmount.pod:198
msgid "Enable SELinux support for the guest."
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:200
+#: ../fuse/guestmount.pod:202
msgid "Enable verbose messages from underlying libguestfs."
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:204
+#: ../fuse/guestmount.pod:206
msgid "Display the program version and exit."
msgstr ""
+# type: textblock
+#: ../fuse/guestmount.pod:210
+msgid ""
+"This option does nothing at the moment. See L<guestfish(1)/OPENING DISKS "
+"FOR READ AND WRITE>."
+msgstr ""
+
# type: =item
-#: ../fuse/guestmount.pod:206
+#: ../fuse/guestmount.pod:213
msgid "B<-x> | B<--trace>"
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:208
+#: ../fuse/guestmount.pod:215
msgid "Trace libguestfs calls."
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:210
+#: ../fuse/guestmount.pod:217
msgid "This also stops the daemon from forking into the background."
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:216
+#: ../fuse/guestmount.pod:223
msgid ""
"L<guestfish(1)>, L<virt-inspector(1)>, L<virt-cat(1)>, L<virt-edit(1)>, "
"L<virt-tar(1)>, L<guestfs(3)>, L<http://libguestfs.org/>, L<http://fuse.sf."
# type: =item
#: ../tools/virt-rescue.pl:175
-msgid "B<--network MB>"
+msgid "B<--network>"
msgstr ""
# type: textblock
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libguestfs 1.6.1\n"
+"Project-Id-Version: libguestfs 1.6.2\n"
"Report-Msgid-Bugs-To: libguestfs@redhat.com\n"
-"POT-Creation-Date: 2010-11-05 15:21+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:360 ../src/guestfs.pod:365 ../src/guestfs.pod:370 ../src/guestfs.pod:374 ../src/guestfs.pod:379 ../src/guestfs.pod:383 ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:1186 ../src/guestfs.pod:1191 ../src/guestfs.pod:1195 ../src/guestfs.pod:1411 ../src/guestfs.pod:1416 ../src/guestfs.pod:1420 ../src/guestfs.pod:1522 ../src/guestfs.pod:1526 ../src/guestfs.pod:1530 ../src/guestfs.pod:1535 ../src/guestfs.pod:1543 ../src/guestfs.pod:1562 ../src/guestfs.pod:1570 ../src/guestfs.pod:1800 ../src/guestfs.pod:1806 ../src/guestfs.pod:1811 ../src/guestfs.pod:1817 ../src/guestfs.pod:1924 ../src/guestfs.pod:1928 ../src/guestfs.pod:1932 ../src/guestfs.pod:1936 ../src/guestfs-actions.pod:15 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:461 ../src/guestfs-actions.pod:469 ../src/guestfs-actions.pod:476 ../src/guestfs-actions.pod:483 ../src/guestfs-actions.pod:1422 ../src/guestfs-actions.pod:1426 ../src/guestfs-actions.pod:1430 ../src/guestfs-actions.pod:1434 ../src/guestfs-actions.pod:1442 ../src/guestfs-actions.pod:1446 ../src/guestfs-actions.pod:1450 ../src/guestfs-actions.pod:1460 ../src/guestfs-actions.pod:1464 ../src/guestfs-actions.pod:1468 ../src/guestfs-actions.pod:1596 ../src/guestfs-actions.pod:1600 ../src/guestfs-actions.pod:1605 ../src/guestfs-actions.pod:1610 ../src/guestfs-actions.pod:1665 ../src/guestfs-actions.pod:1669 ../src/guestfs-actions.pod:1674 ../fish/guestfish.pod:364 ../fish/guestfish.pod:368 ../fish/guestfish.pod:372 ../fish/guestfish.pod:376 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:339 ../fish/guestfish-actions.pod:347 ../fish/guestfish-actions.pod:354 ../fish/guestfish-actions.pod:361 ../fish/guestfish-actions.pod:1056 ../fish/guestfish-actions.pod:1060 ../fish/guestfish-actions.pod:1064 ../fish/guestfish-actions.pod:1068 ../fish/guestfish-actions.pod:1076 ../fish/guestfish-actions.pod:1080 ../fish/guestfish-actions.pod:1084 ../fish/guestfish-actions.pod:1094 ../fish/guestfish-actions.pod:1098 ../fish/guestfish-actions.pod:1102 ../fish/guestfish-actions.pod:1192 ../fish/guestfish-actions.pod:1196 ../fish/guestfish-actions.pod:1201 ../fish/guestfish-actions.pod:1206 ../fish/guestfish-actions.pod:1248 ../fish/guestfish-actions.pod:1252 ../fish/guestfish-actions.pod:1257 ../inspector/virt-inspector.pl:584 ../inspector/virt-inspector.pl:588 ../tools/virt-df.pl:161 ../tools/virt-df.pl:167 ../tools/virt-resize.pl:348 ../tools/virt-resize.pl:353 ../tools/virt-resize.pl:363
+#: ../src/guestfs.pod:360 ../src/guestfs.pod:365 ../src/guestfs.pod:370 ../src/guestfs.pod:374 ../src/guestfs.pod:379 ../src/guestfs.pod:383 ../src/guestfs.pod:388 ../src/guestfs.pod:393 ../src/guestfs.pod:966 ../src/guestfs.pod:970 ../src/guestfs.pod:974 ../src/guestfs.pod:979 ../src/guestfs.pod:987 ../src/guestfs.pod:1006 ../src/guestfs.pod:1014 ../src/guestfs.pod:1036 ../src/guestfs.pod:1040 ../src/guestfs.pod:1044 ../src/guestfs.pod:1048 ../src/guestfs.pod:1052 ../src/guestfs.pod:1056 ../src/guestfs.pod:1481 ../src/guestfs.pod:1486 ../src/guestfs.pod:1490 ../src/guestfs.pod:1600 ../src/guestfs.pod:1605 ../src/guestfs.pod:1609 ../src/guestfs.pod:1953 ../src/guestfs.pod:1959 ../src/guestfs.pod:1964 ../src/guestfs.pod:1970 ../src/guestfs.pod:2077 ../src/guestfs.pod:2081 ../src/guestfs.pod:2085 ../src/guestfs.pod:2089 ../src/guestfs-actions.pod:15 ../src/guestfs-actions.pod:22 ../src/guestfs-actions.pod:461 ../src/guestfs-actions.pod:469 ../src/guestfs-actions.pod:476 ../src/guestfs-actions.pod:483 ../src/guestfs-actions.pod:1422 ../src/guestfs-actions.pod:1426 ../src/guestfs-actions.pod:1430 ../src/guestfs-actions.pod:1434 ../src/guestfs-actions.pod:1442 ../src/guestfs-actions.pod:1446 ../src/guestfs-actions.pod:1450 ../src/guestfs-actions.pod:1460 ../src/guestfs-actions.pod:1464 ../src/guestfs-actions.pod:1468 ../src/guestfs-actions.pod:1596 ../src/guestfs-actions.pod:1600 ../src/guestfs-actions.pod:1605 ../src/guestfs-actions.pod:1610 ../src/guestfs-actions.pod:1665 ../src/guestfs-actions.pod:1669 ../src/guestfs-actions.pod:1674 ../fish/guestfish.pod:371 ../fish/guestfish.pod:375 ../fish/guestfish.pod:379 ../fish/guestfish.pod:383 ../fish/guestfish-actions.pod:13 ../fish/guestfish-actions.pod:20 ../fish/guestfish-actions.pod:339 ../fish/guestfish-actions.pod:347 ../fish/guestfish-actions.pod:354 ../fish/guestfish-actions.pod:361 ../fish/guestfish-actions.pod:1056 ../fish/guestfish-actions.pod:1060 ../fish/guestfish-actions.pod:1064 ../fish/guestfish-actions.pod:1068 ../fish/guestfish-actions.pod:1076 ../fish/guestfish-actions.pod:1080 ../fish/guestfish-actions.pod:1084 ../fish/guestfish-actions.pod:1094 ../fish/guestfish-actions.pod:1098 ../fish/guestfish-actions.pod:1102 ../fish/guestfish-actions.pod:1192 ../fish/guestfish-actions.pod:1196 ../fish/guestfish-actions.pod:1201 ../fish/guestfish-actions.pod:1206 ../fish/guestfish-actions.pod:1248 ../fish/guestfish-actions.pod:1252 ../fish/guestfish-actions.pod:1257 ../inspector/virt-inspector.pl:584 ../inspector/virt-inspector.pl:588 ../tools/virt-df.pl:161 ../tools/virt-df.pl:167 ../tools/virt-resize.pl:348 ../tools/virt-resize.pl:353 ../tools/virt-resize.pl:363
msgid "*"
msgstr ""
"A secure alternative is to use libguestfs to install a \"firstboot\" script "
"(a script which runs when the guest next boots normally), and to have this "
"script run the commands you want in the normal context of the running guest, "
-"network security and so on."
+"network security and so on. For information about other security issues, "
+"see L</SECURITY>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:411
+#: ../src/guestfs.pod:412
msgid ""
"The two main API calls to run commands are L</guestfs_command> and "
"L</guestfs_sh> (there are also variations)."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:414
+#: ../src/guestfs.pod:415
msgid ""
"The difference is that L</guestfs_sh> runs commands using the shell, so any "
"shell globs, redirections, etc will work."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:417
+#: ../src/guestfs.pod:418
msgid "CONFIGURATION FILES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:419
+#: ../src/guestfs.pod:420
msgid ""
"To read and write configuration files in Linux guest filesystems, we "
"strongly recommend using Augeas. For example, Augeas understands how to "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:424
+#: ../src/guestfs.pod:425
msgid ""
"The main Augeas calls are bound through the C<guestfs_aug_*> APIs. We don't "
"document Augeas itself here because there is excellent documentation on the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:428
+#: ../src/guestfs.pod:429
msgid ""
"If you don't want to use Augeas (you fool!) then try calling "
"L</guestfs_read_lines> to get the file as a list of lines which you can "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:432
+#: ../src/guestfs.pod:433
msgid "SELINUX"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:434
+#: ../src/guestfs.pod:435
msgid ""
"We support SELinux guests. To ensure that labeling happens correctly in "
"SELinux guests, you need to enable SELinux and load the guest's policy:"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:440
+#: ../src/guestfs.pod:441 ../src/guestfs.pod:1151
msgid "1."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:442
+#: ../src/guestfs.pod:443
msgid "Before launching, do:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:444
+#: ../src/guestfs.pod:445
#, no-wrap
msgid ""
" guestfs_set_selinux (g, 1);\n"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:446
+#: ../src/guestfs.pod:447 ../src/guestfs.pod:1155
msgid "2."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:448
+#: ../src/guestfs.pod:449
msgid ""
"After mounting the guest's filesystem(s), load the policy. This is best "
"done by running the L<load_policy(8)> command in the guest itself:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:452
+#: ../src/guestfs.pod:453
#, no-wrap
msgid ""
" guestfs_sh (g, \"/usr/sbin/load_policy\");\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:454
+#: ../src/guestfs.pod:455
msgid ""
"(Older versions of C<load_policy> require you to specify the name of the "
"policy file)."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:457
+#: ../src/guestfs.pod:458
msgid "3."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:459
+#: ../src/guestfs.pod:460
msgid ""
"Optionally, set the security context for the API. The correct security "
"context to use can only be known by inspecting the guest. As an example:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:463
+#: ../src/guestfs.pod:464
#, no-wrap
msgid ""
" guestfs_setcon (g, \"unconfined_u:unconfined_r:unconfined_t:s0\");\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:467
+#: ../src/guestfs.pod:468
msgid "This will work for running commands and editing existing files."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:469
+#: ../src/guestfs.pod:470
msgid ""
"When new files are created, you may need to label them explicitly, for "
"example by running the external command C<restorecon pathname>."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:473
+#: ../src/guestfs.pod:474
msgid "UMASK"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:475
+#: ../src/guestfs.pod:476
msgid ""
"Certain calls are affected by the current file mode creation mask (the "
"\"umask\"). In particular ones which create files or directories, such as "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:481
+#: ../src/guestfs.pod:482
msgid ""
"The default umask is C<022>, so files are created with modes such as C<0644> "
"and directories with C<0755>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:484
+#: ../src/guestfs.pod:485
msgid ""
"There are two ways to avoid being affected by umask. Either set umask to 0 "
"(call C<guestfs_umask (g, 0)> early after launching). Or call "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:488
+#: ../src/guestfs.pod:489
msgid "For more information about umask, see L<umask(2)>."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:490 ../fish/guestfish.pod:630
+#: ../src/guestfs.pod:491 ../fish/guestfish.pod:664
msgid "ENCRYPTED DISKS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:492
+#: ../src/guestfs.pod:493
msgid ""
"Libguestfs allows you to access Linux guests which have been encrypted using "
"whole disk encryption that conforms to the Linux Unified Key Setup (LUKS) "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:498
+#: ../src/guestfs.pod:499
msgid ""
"Use L</guestfs_vfs_type> to identify LUKS-encrypted block devices (it "
"returns the string C<crypto_LUKS>)."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:501
+#: ../src/guestfs.pod:502
msgid ""
"Then open these devices by calling L</guestfs_luks_open>. Obviously you "
"will require the passphrase!"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:504
+#: ../src/guestfs.pod:505
msgid ""
"Opening a LUKS device creates a new device mapper device called "
"C</dev/mapper/mapname> (where C<mapname> is the string you supply to "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:510
+#: ../src/guestfs.pod:511
msgid ""
"LVM volume groups on the device can be made visible by calling "
"L</guestfs_vgscan> followed by L</guestfs_vg_activate_all>. The logical "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:514
+#: ../src/guestfs.pod:515
msgid ""
"Use the reverse process to close a LUKS device. Unmount any logical volumes "
"on it, deactivate the volume groups by caling C<guestfs_vg_activate (g, 0, "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:521
+#: ../src/guestfs.pod:522
msgid "INSPECTION"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:523
+#: ../src/guestfs.pod:524
msgid ""
"Libguestfs has APIs for inspecting an unknown disk image to find out if it "
"contains operating systems. (These APIs used to be in a separate Perl-only "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:529
+#: ../src/guestfs.pod:530
msgid ""
"Add all disks belonging to the unknown virtual machine and call "
"L</guestfs_launch> in the usual way."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:532
+#: ../src/guestfs.pod:533
msgid ""
"Then call L</guestfs_inspect_os>. This function uses other libguestfs calls "
"and certain heuristics, and returns a list of operating systems that were "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:541
+#: ../src/guestfs.pod:542
msgid ""
"For each root, you can then call various C<guestfs_inspect_get_*> functions "
"to get additional details about that operating system. For example, call "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:547
+#: ../src/guestfs.pod:548
msgid ""
"Un*x-like and Linux-based operating systems usually consist of several "
"filesystems which are mounted at boot time (for example, a separate boot "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:554
+#: ../src/guestfs.pod:555
#, no-wrap
msgid ""
" /boot => /dev/sda1\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:558
+#: ../src/guestfs.pod:559
msgid ""
"The caller can then make calls to L</guestfs_mount_options> to mount the "
"filesystems as suggested."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:561
+#: ../src/guestfs.pod:562
msgid ""
"Be careful to mount filesystems in the right order (eg. C</> before "
"C</usr>). Sorting the keys of the hash by length, shortest first, should "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:565
+#: ../src/guestfs.pod:566
msgid ""
"Inspection currently only works for some common operating systems. "
"Contributors are welcome to send patches for other operating systems that we "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:569
+#: ../src/guestfs.pod:570
msgid ""
"Encrypted disks must be opened before inspection. See L</ENCRYPTED DISKS> "
"for more details. The L</guestfs_inspect_os> function just ignores any "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:573
+#: ../src/guestfs.pod:574
msgid ""
"A note on the implementation: The call L</guestfs_inspect_os> performs "
"inspection and caches the results in the guest handle. Subsequent calls to "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:580
+#: ../src/guestfs.pod:581
msgid "SPECIAL CONSIDERATIONS FOR WINDOWS GUESTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:582
+#: ../src/guestfs.pod:583
msgid ""
"Libguestfs can mount NTFS partitions. It does this using the "
"L<http://www.ntfs-3g.org/> driver."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:585
+#: ../src/guestfs.pod:586
msgid ""
"DOS and Windows still use drive letters, and the filesystems are always "
"treated as case insensitive by Windows itself, and therefore you might find "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:591
+#: ../src/guestfs.pod:592
msgid ""
"Drive letter mappings are outside the scope of libguestfs. You have to use "
"libguestfs to read the appropriate Windows Registry and configuration files, "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:596
+#: ../src/guestfs.pod:597
msgid ""
"Replacing backslash characters with forward slash characters is also outside "
"the scope of libguestfs, but something that you can easily do."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:599
+#: ../src/guestfs.pod:600
msgid ""
"Where we can help is in resolving the case insensitivity of paths. For "
"this, call L</guestfs_case_sensitive_path>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:602
+#: ../src/guestfs.pod:603
msgid ""
"Libguestfs also provides some help for decoding Windows Registry \"hive\" "
"files, through the library C<hivex> which is part of the libguestfs project "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:610
+#: ../src/guestfs.pod:611
msgid "USING LIBGUESTFS WITH OTHER PROGRAMMING LANGUAGES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:612
+#: ../src/guestfs.pod:613
msgid ""
"Although we don't want to discourage you from using the C API, we will "
"mention here that the same API is also available in other languages."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:615
+#: ../src/guestfs.pod:616
msgid ""
"The API is broadly identical in all supported languages. This means that "
"the C call C<guestfs_mount(g,path)> is C<$g-E<gt>mount($path)> in Perl, "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:621
+#: ../src/guestfs.pod:622
msgid ""
"Error messages are automatically transformed into exceptions if the language "
"supports it."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:624
+#: ../src/guestfs.pod:625
msgid ""
"We don't try to \"object orientify\" parts of the API in OO languages, "
"although contributors are welcome to write higher level APIs above what we "
msgstr ""
# type: =item
-#: ../src/guestfs.pod:630
+#: ../src/guestfs.pod:631
msgid "B<C++>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:632
+#: ../src/guestfs.pod:633
msgid ""
"You can use the I<guestfs.h> header file from C++ programs. The C++ API is "
"identical to the C API. C++ classes and exceptions are not used."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:636
+#: ../src/guestfs.pod:637
msgid "B<C#>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:638
+#: ../src/guestfs.pod:639
msgid ""
"The C# bindings are highly experimental. Please read the warnings at the "
"top of C<csharp/Libguestfs.cs>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:641
+#: ../src/guestfs.pod:642
msgid "B<Haskell>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:643
+#: ../src/guestfs.pod:644
msgid ""
"This is the only language binding that is working but incomplete. Only "
"calls which return simple integers have been bound in Haskell, and we are "
msgstr ""
# type: =item
-#: ../src/guestfs.pod:647
+#: ../src/guestfs.pod:648
msgid "B<Java>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:649
+#: ../src/guestfs.pod:650
msgid ""
"Full documentation is contained in the Javadoc which is distributed with "
"libguestfs."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:652
+#: ../src/guestfs.pod:653
msgid "B<OCaml>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:654
+#: ../src/guestfs.pod:655
msgid "For documentation see the file C<guestfs.mli>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:656
+#: ../src/guestfs.pod:657
msgid "B<Perl>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:658
+#: ../src/guestfs.pod:659
msgid "For documentation see L<Sys::Guestfs(3)>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:660
+#: ../src/guestfs.pod:661
msgid "B<PHP>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:662
+#: ../src/guestfs.pod:663
msgid ""
"For documentation see C<README-PHP> supplied with libguestfs sources or in "
"the php-libguestfs package for your distribution."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:665
+#: ../src/guestfs.pod:666
msgid "The PHP binding only works correctly on 64 bit machines."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:667
+#: ../src/guestfs.pod:668
msgid "B<Python>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:669
+#: ../src/guestfs.pod:670
msgid "For documentation do:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:671
+#: ../src/guestfs.pod:672
#, no-wrap
msgid ""
" $ python\n"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:675
+#: ../src/guestfs.pod:676
msgid "B<Ruby>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:677
+#: ../src/guestfs.pod:678
msgid ""
"Use the Guestfs module. There is no Ruby-specific documentation, but you "
"can find examples written in Ruby in the libguestfs source."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:680
+#: ../src/guestfs.pod:681
msgid "B<shell scripts>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:682
+#: ../src/guestfs.pod:683
msgid "For documentation see L<guestfish(1)>."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:686
+#: ../src/guestfs.pod:687
msgid "LIBGUESTFS GOTCHAS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:688
+#: ../src/guestfs.pod:689
msgid ""
"L<http://en.wikipedia.org/wiki/Gotcha_(programming)>: \"A feature of a "
"system [...] that works in the way it is documented but is counterintuitive "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:692
+#: ../src/guestfs.pod:693
msgid ""
"Since we developed libguestfs and the associated tools, there are several "
"things we would have designed differently, but are now stuck with for "
msgstr ""
# type: =item
-#: ../src/guestfs.pod:700
+#: ../src/guestfs.pod:701
msgid "Autosync / forgetting to sync."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:702
+#: ../src/guestfs.pod:703
msgid ""
"When modifying a filesystem from C or another language, you B<must> unmount "
"all filesystems and call L</guestfs_sync> explicitly before you close the "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:706
+#: ../src/guestfs.pod:707
#, no-wrap
msgid ""
" guestfs_set_autosync (g, 1);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:708
+#: ../src/guestfs.pod:709
msgid ""
"to have the unmount/sync done automatically for you when the handle 'g' is "
"closed. (This feature is called \"autosync\", L</guestfs_set_autosync> "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:712
+#: ../src/guestfs.pod:713
msgid ""
"If you forget to do this, then it is entirely possible that your changes "
"won't be written out, or will be partially written, or (very rarely) that "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:716
+#: ../src/guestfs.pod:717
msgid ""
"Note that in L<guestfish(3)> autosync is the default. So quick and dirty "
"guestfish scripts that forget to sync will work just fine, which can make "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:720
+#: ../src/guestfs.pod:721
msgid ""
"Update: Autosync is enabled by default for all API users starting from "
"libguestfs 1.5.24."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:723
+#: ../src/guestfs.pod:724
msgid "Mount option C<-o sync> should not be the default."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:725
+#: ../src/guestfs.pod:726
msgid ""
"If you use L</guestfs_mount>, then C<-o sync,noatime> are added implicitly. "
"However C<-o sync> does not add any reliability benefit, but does have a "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:729
+#: ../src/guestfs.pod:730
msgid ""
"The work around is to use L</guestfs_mount_options> and set the mount "
"options that you actually want to use."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:732
+#: ../src/guestfs.pod:733
msgid "Read-only should be the default."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:734
+#: ../src/guestfs.pod:735
msgid ""
"In L<guestfish(3)>, I<--ro> should be the default, and you should have to "
"specify I<--rw> if you want to make changes to the image."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:737
+#: ../src/guestfs.pod:738
msgid "This would reduce the potential to corrupt live VM images."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:739
+#: ../src/guestfs.pod:740
msgid ""
"Note that many filesystems change the disk when you just mount and unmount, "
"even if you didn't perform any writes. You need to use "
msgstr ""
# type: =item
-#: ../src/guestfs.pod:743
+#: ../src/guestfs.pod:744
msgid "guestfish command line is hard to use."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:745
+#: ../src/guestfs.pod:746
msgid ""
"C<guestfish disk.img> doesn't do what people expect (open C<disk.img> for "
"examination). It tries to run a guestfish command C<disk.img> which doesn't "
msgstr ""
# type: =item
-#: ../src/guestfs.pod:752
+#: ../src/guestfs.pod:753
msgid "guestfish megabyte modifiers don't work right on all commands"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:754
+#: ../src/guestfs.pod:755
msgid ""
"In recent guestfish you can use C<1M> to mean 1 megabyte (and similarly for "
"other modifiers). What guestfish actually does is to multiply the number "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:761
+#: ../src/guestfs.pod:762
msgid "The most common is L</guestfs_lvcreate>. The guestfish command:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:763
+#: ../src/guestfs.pod:764
#, no-wrap
msgid ""
" lvcreate LV VG 100M\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:765
+#: ../src/guestfs.pod:766
msgid ""
"does not do what you might expect. Instead because L</guestfs_lvcreate> is "
"already expecting megabytes, this tries to create a 100 I<terabyte> (100 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:770
+#: ../src/guestfs.pod:771
msgid ""
"This could be fixed in the generator by specially marking parameters and "
"return values which take bytes or other units."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:773
+#: ../src/guestfs.pod:774
msgid "Library should return errno with error messages."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:775
+#: ../src/guestfs.pod:776
msgid ""
"It would be a nice-to-have to be able to get the original value of 'errno' "
"from inside the appliance along error paths (where set). Currently "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:781
+#: ../src/guestfs.pod:782
msgid ""
"In libguestfs 1.5.4, the protocol was changed so that the Linux errno is "
"sent back from the daemon."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:784
+#: ../src/guestfs.pod:785
msgid "Ambiguity between devices and paths"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:786
+#: ../src/guestfs.pod:787
msgid ""
"There is a subtle ambiguity in the API between a device name "
"(eg. C</dev/sdb2>) and a similar pathname. A file might just happen to be "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:791
+#: ../src/guestfs.pod:792
msgid ""
"In the current API we usually resolve this ambiguity by having two separate "
"calls, for example L</guestfs_checksum> and L</guestfs_checksum_device>. "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:797
+#: ../src/guestfs.pod:798
msgid ""
"To avoid both the ambiguity and the need to duplicate some calls, we could "
"make paths/devices into structured names. One way to do this would be to "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:803
+#: ../src/guestfs.pod:804
#, no-wrap
msgid ""
" type path = Path of string | Device of int | Partition of int * int\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:805
+#: ../src/guestfs.pod:806
msgid "which would allow you to pass arguments like:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:807
+#: ../src/guestfs.pod:808
#, no-wrap
msgid ""
" Path \"/foo/bar\"\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:812
+#: ../src/guestfs.pod:813
msgid ""
"As you can see there are still problems to resolve even with this "
"representation. Also consider how it might work in guestfish."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:817
+#: ../src/guestfs.pod:818
msgid "PROTOCOL LIMITS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:819
+#: ../src/guestfs.pod:820
msgid ""
"Internally libguestfs uses a message-based protocol to pass API calls and "
"their responses to and from a small \"appliance\" (see L</INTERNALS> for "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:827
+#: ../src/guestfs.pod:828
msgid ""
"A simple call such as L</guestfs_cat> returns its result (the file data) in "
"a simple string. Because this string is at some point internally encoded as "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:833
+#: ../src/guestfs.pod:834
msgid ""
"In order to transfer large files into and out of the guest filesystem, you "
"need to use particular calls that support this. The sections L</UPLOADING> "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:837
+#: ../src/guestfs.pod:838
msgid ""
"You might also consider mounting the disk image using our FUSE filesystem "
"support (L<guestmount(1)>)."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:840
+#: ../src/guestfs.pod:841
msgid "KEYS AND PASSPHRASES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:842
+#: ../src/guestfs.pod:843
msgid ""
"Certain libguestfs calls take a parameter that contains sensitive key "
"material, passed in as a C string."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:845
+#: ../src/guestfs.pod:846
msgid ""
"In the future we would hope to change the libguestfs implementation so that "
"keys are L<mlock(2)>-ed into physical RAM, and thus can never end up in "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:850
+#: ../src/guestfs.pod:851
msgid ""
"Therefore you should be aware that any key parameter you pass to libguestfs "
"might end up being written out to the swap partition. If this is a concern, "
"scrub the swap partition or don't use libguestfs on encrypted devices."
msgstr ""
+# type: =head2
+#: ../src/guestfs.pod:856
+msgid "MULTIPLE HANDLES AND MULTIPLE THREADS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:858
+msgid ""
+"All high-level libguestfs actions are synchronous. If you want to use "
+"libguestfs asynchronously then you must create a thread."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:861
+msgid ""
+"Only use the handle from a single thread. Either use the handle exclusively "
+"from one thread, or provide your own mutex so that two threads cannot issue "
+"calls on the same handle at the same time."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:865
+msgid ""
+"See the graphical program guestfs-browser for one possible architecture for "
+"multithreaded programs using libvirt and libguestfs."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:868
+msgid "PATH"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:870
+msgid ""
+"Libguestfs needs a kernel and initrd.img, which it finds by looking along an "
+"internal path."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:873
+msgid ""
+"By default it looks for these in the directory C<$libdir/guestfs> "
+"(eg. C</usr/local/lib/guestfs> or C</usr/lib64/guestfs>)."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:876
+msgid ""
+"Use L</guestfs_set_path> or set the environment variable L</LIBGUESTFS_PATH> "
+"to change the directories that libguestfs will search in. The value is a "
+"colon-separated list of paths. The current directory is I<not> searched "
+"unless the path contains an empty element or C<.>. For example "
+"C<LIBGUESTFS_PATH=:/usr/lib/guestfs> would search the current directory and "
+"then C</usr/lib/guestfs>."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:883
+msgid "QEMU WRAPPERS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:885
+msgid ""
+"If you want to compile your own qemu, run qemu from a non-standard location, "
+"or pass extra arguments to qemu, then you can write a shell-script wrapper "
+"around qemu."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:889
+msgid ""
+"There is one important rule to remember: you I<must C<exec qemu>> as the "
+"last command in the shell script (so that qemu replaces the shell and "
+"becomes the direct child of the libguestfs-using program). If you don't do "
+"this, then the qemu process won't be cleaned up correctly."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:894
+msgid ""
+"Here is an example of a wrapper, where I have built my own copy of qemu from "
+"source:"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:897
+#, no-wrap
+msgid ""
+" #!/bin/sh -\n"
+" qemudir=/home/rjones/d/qemu\n"
+" exec $qemudir/x86_64-softmmu/qemu-system-x86_64 -L $qemudir/pc-bios "
+"\"$@\"\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:901
+msgid ""
+"Save this script as C</tmp/qemu.wrapper> (or wherever), C<chmod +x>, and "
+"then use it by setting the LIBGUESTFS_QEMU environment variable. For "
+"example:"
+msgstr ""
+
+# type: verbatim
+#: ../src/guestfs.pod:905
+#, no-wrap
+msgid ""
+" LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n"
+"\n"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:907
+msgid ""
+"Note that libguestfs also calls qemu with the -help and -version options in "
+"order to determine features."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:910
+msgid "ABI GUARANTEE"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:912
+msgid ""
+"We guarantee the libguestfs ABI (binary interface), for public, high-level "
+"actions as outlined in this section. Although we will deprecate some "
+"actions, for example if they get replaced by newer calls, we will keep the "
+"old actions forever. This allows you the developer to program in confidence "
+"against the libguestfs API."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:918
+msgid "BLOCK DEVICE NAMING"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:920
+msgid ""
+"In the kernel there is now quite a profusion of schemata for naming block "
+"devices (in this context, by I<block device> I mean a physical or virtual "
+"hard drive). The original Linux IDE driver used names starting with "
+"C</dev/hd*>. SCSI devices have historically used a different naming scheme, "
+"C</dev/sd*>. When the Linux kernel I<libata> driver became a popular "
+"replacement for the old IDE driver (particularly for SATA devices) those "
+"devices also used the C</dev/sd*> scheme. Additionally we now have virtual "
+"machines with paravirtualized drivers. This has created several different "
+"naming systems, such as C</dev/vd*> for virtio disks and C</dev/xvd*> for "
+"Xen PV disks."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:932
+msgid ""
+"As discussed above, libguestfs uses a qemu appliance running an embedded "
+"Linux kernel to access block devices. We can run a variety of appliances "
+"based on a variety of Linux kernels."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:936
+msgid ""
+"This causes a problem for libguestfs because many API calls use device or "
+"partition names. Working scripts and the recipe (example) scripts that we "
+"make available over the internet could fail if the naming scheme changes."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:941
+msgid ""
+"Therefore libguestfs defines C</dev/sd*> as the I<standard naming scheme>. "
+"Internally C</dev/sd*> names are translated, if necessary, to other names as "
+"required. For example, under RHEL 5 which uses the C</dev/hd*> scheme, any "
+"device parameter C</dev/sda2> is translated to C</dev/hda2> transparently."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:947
+msgid ""
+"Note that this I<only> applies to parameters. The L</guestfs_list_devices>, "
+"L</guestfs_list_partitions> and similar calls return the true names of the "
+"devices and partitions as known to the appliance."
+msgstr ""
+
+# type: =head3
+#: ../src/guestfs.pod:952
+msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:954
+msgid ""
+"Usually this translation is transparent. However in some (very rare) cases "
+"you may need to know the exact algorithm. Such cases include where you use "
+"L</guestfs_config> to add a mixture of virtio and IDE devices to the "
+"qemu-based appliance, so have a mixture of C</dev/sd*> and C</dev/vd*> "
+"devices."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:960
+msgid ""
+"The algorithm is applied only to I<parameters> which are known to be either "
+"device or partition names. Return values from functions such as "
+"L</guestfs_list_devices> are never changed."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:968
+msgid "Is the string a parameter which is a device or partition name?"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:972
+msgid "Does the string begin with C</dev/sd>?"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:976
+msgid ""
+"Does the named device exist? If so, we use that device. However if I<not> "
+"then we continue with this algorithm."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:981
+msgid "Replace initial C</dev/sd> string with C</dev/hd>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:983
+msgid "For example, change C</dev/sda2> to C</dev/hda2>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:985
+msgid "If that named device exists, use it. If not, continue."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:989
+msgid "Replace initial C</dev/sd> string with C</dev/vd>."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:991
+msgid "If that named device exists, use it. If not, return an error."
+msgstr ""
+
+# type: =head3
+#: ../src/guestfs.pod:995
+msgid "PORTABILITY CONCERNS WITH BLOCK DEVICE NAMING"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:997
+msgid ""
+"Although the standard naming scheme and automatic translation is useful for "
+"simple programs and guestfish scripts, for larger programs it is best not to "
+"rely on this mechanism."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1001
+msgid ""
+"Where possible for maximum future portability programs using libguestfs "
+"should use these future-proof techniques:"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1008
+msgid ""
+"Use L</guestfs_list_devices> or L</guestfs_list_partitions> to list actual "
+"device names, and then use those names directly."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1011
+msgid "Since those device names exist by definition, they will never be translated."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1016
+msgid ""
+"Use higher level ways to identify filesystems, such as LVM names, UUIDs and "
+"filesystem labels."
+msgstr ""
+
# type: =head1
-#: ../src/guestfs.pod:855
+#: ../src/guestfs.pod:1021
+msgid "SECURITY"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1023
+msgid ""
+"This section discusses security implications of using libguestfs, "
+"particularly with untrusted or malicious guests or disk images."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1026
+msgid "GENERAL SECURITY CONSIDERATIONS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1028
+msgid ""
+"Be careful with any files or data that you download from a guest (by "
+"\"download\" we mean not just the L</guestfs_download> command but any "
+"command that reads files, filenames, directories or anything else from a "
+"disk image). An attacker could manipulate the data to fool your program "
+"into doing the wrong thing. Consider cases such as:"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1038
+msgid "the data (file etc) not being present"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1042
+msgid "being present but empty"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1046
+msgid "being much larger than normal"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1050
+msgid "containing arbitrary 8 bit data"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1054
+msgid "being in an unexpected character encoding"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1058
+msgid "containing homoglyphs."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1062
+msgid "SECURITY OF MOUNTING FILESYSTEMS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1064
+msgid ""
+"When you mount a filesystem under Linux, mistakes in the kernel filesystem "
+"(VFS) module can sometimes be escalated into exploits by deliberately "
+"creating a malicious, malformed filesystem. These exploits are very severe "
+"for two reasons. Firstly there are very many filesystem drivers in the "
+"kernel, and many of them are infrequently used and not much developer "
+"attention has been paid to the code. Linux userspace helps potential "
+"crackers by detecting the filesystem type and automatically choosing the "
+"right VFS driver, even if that filesystem type is obscure or unexpected for "
+"the administrator. Secondly, a kernel-level exploit is like a local root "
+"exploit (worse in some ways), giving immediate and total access to the "
+"system right down to the hardware level."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1077
+msgid ""
+"That explains why you should never mount a filesystem from an untrusted "
+"guest on your host kernel. How about libguestfs? We run a Linux kernel "
+"inside a qemu virtual machine, usually running as a non-root user. The "
+"attacker would need to write a filesystem which first exploited the kernel, "
+"and then exploited either qemu virtualization (eg. a faulty qemu driver) or "
+"the libguestfs protocol, and finally to be as serious as the host kernel "
+"exploit it would need to escalate its privileges to root. This multi-step "
+"escalation, performed by a static piece of data, is thought to be extremely "
+"hard to do, although we never say 'never' about security issues."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1088
+msgid ""
+"In any case callers can reduce the attack surface by forcing the filesystem "
+"type when mounting (use L</guestfs_mount_vfs>)."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1091
+msgid "PROTOCOL SECURITY"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1093
+msgid ""
+"The protocol is designed to be secure, being based on RFC 4506 (XDR) with a "
+"defined upper message size. However a program that uses libguestfs must "
+"also take care - for example you can write a program that downloads a binary "
+"from a disk image and executes it locally, and no amount of protocol "
+"security will save you from the consequences."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1099
+msgid "INSPECTION SECURITY"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1101
+msgid ""
+"Parts of the inspection API (see L</INSPECTION>) return untrusted strings "
+"directly from the guest, and these could contain any 8 bit data. Callers "
+"should be careful to escape these before printing them to a structured file "
+"(for example, use HTML escaping if creating a web page)."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1107
+msgid ""
+"The inspection API parses guest configuration using two external libraries: "
+"Augeas (Linux configuration) and hivex (Windows Registry). Both are "
+"designed to be robust in the face of malicious data, although denial of "
+"service attacks are still possible, for example with oversized configuration "
+"files."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1113
+msgid "RUNNING UNTRUSTED GUEST COMMANDS"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1115
+msgid ""
+"Be very cautious about running commands from the guest. By running a "
+"command in the guest, you are giving CPU time to a binary that you do not "
+"control, under the same user account as the library, albeit wrapped in qemu "
+"virtualization. More information and alternatives can be found in the "
+"section L</RUNNING COMMANDS>."
+msgstr ""
+
+# type: =head2
+#: ../src/guestfs.pod:1121
+msgid "CVE-2010-3851"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1123
+msgid "https://bugzilla.redhat.com/642934"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1125
+msgid ""
+"This security bug concerns the automatic disk format detection that qemu "
+"does on disk images."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1128
+msgid ""
+"A raw disk image is just the raw bytes, there is no header. Other disk "
+"images like qcow2 contain a special header. Qemu deals with this by looking "
+"for one of the known headers, and if none is found then assuming the disk "
+"image must be raw."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1133
+msgid ""
+"This allows a guest which has been given a raw disk image to write some "
+"other header. At next boot (or when the disk image is accessed by "
+"libguestfs) qemu would do autodetection and think the disk image format was, "
+"say, qcow2 based on the header written by the guest."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1138
+msgid ""
+"This in itself would not be a problem, but qcow2 offers many features, one "
+"of which is to allow a disk image to refer to another image (called the "
+"\"backing disk\"). It does this by placing the path to the backing disk "
+"into the qcow2 header. This path is not validated and could point to any "
+"host file (eg. \"/etc/passwd\"). The backing disk is then exposed through "
+"\"holes\" in the qcow2 disk image, which of course is completely under the "
+"control of the attacker."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1146
+msgid "In libguestfs this is rather hard to exploit except under two circumstances:"
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1153
+msgid "You have enabled the network or have opened the disk in write mode."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1157
+msgid ""
+"You are also running untrusted code from the guest (see L</RUNNING "
+"COMMANDS>)."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1162
+msgid ""
+"The way to avoid this is to specify the expected disk format when adding "
+"disks (the optional C<format> option to L</guestfs_add_drive_opts>). You "
+"should always do this if the disk is raw format, and it's a good idea for "
+"other cases too."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1167
+msgid ""
+"For disks added from libvirt using calls like L</guestfs_add_domain>, the "
+"format is fetched from libvirt and passed through."
+msgstr ""
+
+# type: textblock
+#: ../src/guestfs.pod:1170
+msgid ""
+"For libguestfs tools, use the I<--format> command line parameter as "
+"appropriate."
+msgstr ""
+
+# type: =head1
+#: ../src/guestfs.pod:1173
msgid "CONNECTION MANAGEMENT"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:857
+#: ../src/guestfs.pod:1175
msgid "guestfs_h *"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:859
+#: ../src/guestfs.pod:1177
msgid ""
"C<guestfs_h> is the opaque type representing a connection handle. Create a "
"handle by calling L</guestfs_create>. Call L</guestfs_close> to free the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:863
+#: ../src/guestfs.pod:1181
msgid ""
"For information on using multiple handles and threads, see the section "
"L</MULTIPLE HANDLES AND MULTIPLE THREADS> below."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:866
+#: ../src/guestfs.pod:1184
msgid "guestfs_create"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:868
+#: ../src/guestfs.pod:1186
#, no-wrap
msgid ""
" guestfs_h *guestfs_create (void);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:870
+#: ../src/guestfs.pod:1188
msgid "Create a connection handle."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:872
+#: ../src/guestfs.pod:1190
msgid ""
"You have to call L</guestfs_add_drive_opts> (or one of the equivalent calls) "
"on the handle at least once."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:875
+#: ../src/guestfs.pod:1193
msgid ""
"This function returns a non-NULL pointer to a handle on success or NULL on "
"error."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:878
+#: ../src/guestfs.pod:1196
msgid "After configuring the handle, you have to call L</guestfs_launch>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:880
+#: ../src/guestfs.pod:1198
msgid ""
"You may also want to configure error handling for the handle. See L</ERROR "
"HANDLING> section below."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:883
+#: ../src/guestfs.pod:1201
msgid "guestfs_close"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:885
+#: ../src/guestfs.pod:1203
#, no-wrap
msgid ""
" void guestfs_close (guestfs_h *g);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:887
+#: ../src/guestfs.pod:1205
msgid "This closes the connection handle and frees up all resources used."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:889
+#: ../src/guestfs.pod:1207
msgid "ERROR HANDLING"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:891
+#: ../src/guestfs.pod:1209
msgid ""
"API functions can return errors. For example, almost all functions that "
"return C<int> will return C<-1> to indicate an error. You can get "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:897
+#: ../src/guestfs.pod:1215
msgid ""
"When the handle is created, a default error handler is installed which "
"prints the error message string to C<stderr>. For small short-running "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:901
+#: ../src/guestfs.pod:1219
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1)\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:904
+#: ../src/guestfs.pod:1222
msgid ""
"since the default error handler will ensure that an error message has been "
"printed to C<stderr> before the program exits."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:907
+#: ../src/guestfs.pod:1225
msgid ""
"For other programs the caller will almost certainly want to install an "
"alternate error handler or do error handling in-line like this:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:910
+#: ../src/guestfs.pod:1228
#, no-wrap
msgid ""
" g = guestfs_create ();\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:912
+#: ../src/guestfs.pod:1230
#, no-wrap
msgid ""
" /* This disables the default behaviour of printing errors\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:916
+#: ../src/guestfs.pod:1234
#, no-wrap
msgid ""
" if (guestfs_launch (g) == -1) {\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:923
+#: ../src/guestfs.pod:1241
msgid ""
"Out of memory errors are handled differently. The default action is to call "
"L<abort(3)>. If this is undesirable, then you can set a handler using "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:927
+#: ../src/guestfs.pod:1245
msgid ""
"L</guestfs_create> returns C<NULL> if the handle cannot be created, and "
"because there is no handle if this happens there is no way to get additional "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:933
+#: ../src/guestfs.pod:1251
msgid "guestfs_last_error"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:935
+#: ../src/guestfs.pod:1253
#, no-wrap
msgid ""
" const char *guestfs_last_error (guestfs_h *g);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:937
+#: ../src/guestfs.pod:1255
msgid ""
"This returns the last error message that happened on C<g>. If there has not "
"been an error since the handle was created, then this returns C<NULL>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:941
+#: ../src/guestfs.pod:1259
msgid ""
"The lifetime of the returned string is until the next error occurs, or "
"L</guestfs_close> is called."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:944
+#: ../src/guestfs.pod:1262
msgid "guestfs_set_error_handler"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:946
+#: ../src/guestfs.pod:1264
#, no-wrap
msgid ""
" typedef void (*guestfs_error_handler_cb) (guestfs_h *g,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:953
+#: ../src/guestfs.pod:1271
msgid ""
"The callback C<cb> will be called if there is an error. The parameters "
"passed to the callback are an opaque data pointer and the error message "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:957
+#: ../src/guestfs.pod:1275
msgid ""
"Note that the message string C<msg> is freed as soon as the callback "
"function returns, so if you want to stash it somewhere you must make your "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:961
+#: ../src/guestfs.pod:1279
msgid "The default handler prints messages on C<stderr>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:963
+#: ../src/guestfs.pod:1281
msgid "If you set C<cb> to C<NULL> then I<no> handler is called."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:965
+#: ../src/guestfs.pod:1283
msgid "guestfs_get_error_handler"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:967
+#: ../src/guestfs.pod:1285
#, no-wrap
msgid ""
" guestfs_error_handler_cb guestfs_get_error_handler (guestfs_h *g,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:970
+#: ../src/guestfs.pod:1288
msgid "Returns the current error handler callback."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:972
+#: ../src/guestfs.pod:1290
msgid "guestfs_set_out_of_memory_handler"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:974
+#: ../src/guestfs.pod:1292
#, no-wrap
msgid ""
" typedef void (*guestfs_abort_cb) (void);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:978
+#: ../src/guestfs.pod:1296
msgid ""
"The callback C<cb> will be called if there is an out of memory situation. "
"I<Note this callback must not return>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:981
+#: ../src/guestfs.pod:1299
msgid "The default is to call L<abort(3)>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:983
+#: ../src/guestfs.pod:1301
msgid "You cannot set C<cb> to C<NULL>. You can't ignore out of memory situations."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:986
+#: ../src/guestfs.pod:1304
msgid "guestfs_get_out_of_memory_handler"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:988
+#: ../src/guestfs.pod:1306
#, no-wrap
msgid ""
" guestfs_abort_fn guestfs_get_out_of_memory_handler (guestfs_h *g);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:990
+#: ../src/guestfs.pod:1308
msgid "This returns the current out of memory handler."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:992
-msgid "PATH"
+#: ../src/guestfs.pod:1310
+msgid "API CALLS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:994
-msgid ""
-"Libguestfs needs a kernel and initrd.img, which it finds by looking along an "
-"internal path."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:997
-msgid ""
-"By default it looks for these in the directory C<$libdir/guestfs> "
-"(eg. C</usr/local/lib/guestfs> or C</usr/lib64/guestfs>)."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1000
-msgid ""
-"Use L</guestfs_set_path> or set the environment variable L</LIBGUESTFS_PATH> "
-"to change the directories that libguestfs will search in. The value is a "
-"colon-separated list of paths. The current directory is I<not> searched "
-"unless the path contains an empty element or C<.>. For example "
-"C<LIBGUESTFS_PATH=:/usr/lib/guestfs> would search the current directory and "
-"then C</usr/lib/guestfs>."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1007
-msgid "HIGH-LEVEL API ACTIONS"
-msgstr ""
-
-# type: =head2
-#: ../src/guestfs.pod:1009
-msgid "ABI GUARANTEE"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1011
-msgid ""
-"We guarantee the libguestfs ABI (binary interface), for public, high-level "
-"actions as outlined in this section. Although we will deprecate some "
-"actions, for example if they get replaced by newer calls, we will keep the "
-"old actions forever. This allows you the developer to program in confidence "
-"against the libguestfs API."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1017 ../fish/guestfish.pod:860
+#: ../src/guestfs.pod:1312 ../fish/guestfish.pod:894
msgid "@ACTIONS@"
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1019
+#: ../src/guestfs.pod:1314
msgid "STRUCTURES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1021
+#: ../src/guestfs.pod:1316
msgid "@STRUCTS@"
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1023
+#: ../src/guestfs.pod:1318
msgid "AVAILABILITY"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1025
+#: ../src/guestfs.pod:1320
msgid "GROUPS OF FUNCTIONALITY IN THE APPLIANCE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1027
+#: ../src/guestfs.pod:1322
msgid ""
"Using L</guestfs_available> you can test availability of the following "
"groups of functions. This test queries the appliance to see if the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1032
+#: ../src/guestfs.pod:1327
msgid "@AVAILABILITY@"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1034
+#: ../src/guestfs.pod:1329
msgid "GUESTFISH supported COMMAND"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1036
+#: ../src/guestfs.pod:1331
msgid ""
"In L<guestfish(3)> there is a handy interactive command C<supported> which "
"prints out the available groups and whether they are supported by this build "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1041
+#: ../src/guestfs.pod:1336
msgid "SINGLE CALLS AT COMPILE TIME"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1043
+#: ../src/guestfs.pod:1338
msgid ""
"Since version 1.5.8, C<E<lt>guestfs.hE<gt>> defines symbols for each C API "
"function, such as:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1046
+#: ../src/guestfs.pod:1341
#, no-wrap
msgid ""
" #define LIBGUESTFS_HAVE_DD 1\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1048
+#: ../src/guestfs.pod:1343
msgid "if L</guestfs_dd> is available."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1050
+#: ../src/guestfs.pod:1345
msgid ""
"Before version 1.5.8, if you needed to test whether a single libguestfs "
"function is available at compile time, we recommended using build tools such "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1055
+#: ../src/guestfs.pod:1350
#, no-wrap
msgid ""
" AC_CHECK_LIB([guestfs],[guestfs_create])\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1058
+#: ../src/guestfs.pod:1353
msgid ""
"which would result in C<HAVE_GUESTFS_DD> being either defined or not defined "
"in your program."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1061
+#: ../src/guestfs.pod:1356
msgid "SINGLE CALLS AT RUN TIME"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1063
+#: ../src/guestfs.pod:1358
msgid ""
"Testing at compile time doesn't guarantee that a function really exists in "
"the library. The reason is that you might be dynamically linked against a "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1070
+#: ../src/guestfs.pod:1365
msgid ""
"You can use L<dlopen(3)> to test if a function is available at run time, as "
"in this example program (note that you still need the compile time check as "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1074
+#: ../src/guestfs.pod:1369
#, no-wrap
msgid ""
" #include <stdio.h>\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1080
+#: ../src/guestfs.pod:1375
#, no-wrap
msgid ""
" main ()\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1086
+#: ../src/guestfs.pod:1381
#, no-wrap
msgid ""
" /* Test if the function guestfs_dd is really available. */\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1095
+#: ../src/guestfs.pod:1390
#, no-wrap
msgid ""
" if (!has_function)\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1108
+#: ../src/guestfs.pod:1403
msgid ""
"You may think the above is an awful lot of hassle, and it is. There are "
"other ways outside of the C linking system to ensure that this kind of "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1113
+#: ../src/guestfs.pod:1408
#, no-wrap
msgid ""
" Requires: libguestfs >= 1.0.80\n"
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1115
+#: ../src/guestfs.pod:1410
msgid "CALLS WITH OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1117
+#: ../src/guestfs.pod:1412
msgid ""
"A recent feature of the API is the introduction of calls which take optional "
"arguments. In C these are declared 3 ways. The main way is as a call which "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1122
+#: ../src/guestfs.pod:1417
#, no-wrap
msgid ""
" int guestfs_add_drive_opts (guestfs_h *g, const char *filename, ...);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1124
+#: ../src/guestfs.pod:1419
msgid ""
"Call this with a list of optional arguments, terminated by C<-1>. So to "
"call with no optional arguments specified:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1127
+#: ../src/guestfs.pod:1422
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename, -1);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1129
+#: ../src/guestfs.pod:1424
msgid "With a single optional argument:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1131
+#: ../src/guestfs.pod:1426
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1135
+#: ../src/guestfs.pod:1430
msgid "With two:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1137
+#: ../src/guestfs.pod:1432
#, no-wrap
msgid ""
" guestfs_add_drive_opts (g, filename,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1142
+#: ../src/guestfs.pod:1437
msgid ""
"and so forth. Don't forget the terminating C<-1> otherwise Bad Things will "
"happen!"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1145
+#: ../src/guestfs.pod:1440
msgid "USING va_list FOR OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1147
+#: ../src/guestfs.pod:1442
msgid ""
"The second variant has the same name with the suffix C<_va>, which works the "
"same way but takes a C<va_list>. See the C manual for details. For the "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1151
+#: ../src/guestfs.pod:1446
#, no-wrap
msgid ""
" int guestfs_add_drive_opts_va (guestfs_h *g, const char *filename,\n"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1154
+#: ../src/guestfs.pod:1449
msgid "CONSTRUCTING OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1156
+#: ../src/guestfs.pod:1451
msgid ""
"The third variant is useful where you need to construct these calls. You "
"pass in a structure where you fill in the optional fields. The structure "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1162
+#: ../src/guestfs.pod:1457
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv {\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1171
+#: ../src/guestfs.pod:1466
msgid "You could call it like this:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1173
+#: ../src/guestfs.pod:1468
#, no-wrap
msgid ""
" struct guestfs_add_drive_opts_argv optargs = {\n"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1180
+#: ../src/guestfs.pod:1475
#, no-wrap
msgid ""
" guestfs_add_drive_opts_argv (g, filename, &optargs);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1182 ../src/guestfs-actions.pod:11 ../src/guestfs-actions.pod:1661 ../fish/guestfish-actions.pod:9 ../fish/guestfish-actions.pod:1244
+#: ../src/guestfs.pod:1477 ../src/guestfs-actions.pod:11 ../src/guestfs-actions.pod:1661 ../fish/guestfish-actions.pod:9 ../fish/guestfish-actions.pod:1244
msgid "Notes:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1188
+#: ../src/guestfs.pod:1483
msgid "The C<_BITMASK> suffix on each option name when specifying the bitmask."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1193
+#: ../src/guestfs.pod:1488
msgid "You do not need to fill in all fields of the structure."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1197
+#: ../src/guestfs.pod:1492
msgid ""
"There must be a one-to-one correspondence between fields of the structure "
"that are filled in, and bits set in the bitmask."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1202
+#: ../src/guestfs.pod:1497
msgid "OPTIONAL ARGUMENTS IN OTHER LANGUAGES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1204
+#: ../src/guestfs.pod:1499
msgid ""
"In other languages, optional arguments are expressed in the way that is "
"natural for that language. We refer you to the language-specific "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1208
+#: ../src/guestfs.pod:1503
msgid "For guestfish, see L<guestfish(1)/OPTIONAL ARGUMENTS>."
msgstr ""
-# type: =end
-#: ../src/guestfs.pod:1210 ../src/guestfs.pod:1215
-msgid "html"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1212
-msgid ""
-"<!-- old anchor for the next section --> <a "
-"name=\"state_machine_and_low_level_event_api\"/>"
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1217
-msgid "ARCHITECTURE"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1219
-msgid ""
-"Internally, libguestfs is implemented by running an appliance (a special "
-"type of small virtual machine) using L<qemu(1)>. Qemu runs as a child "
-"process of the main program."
-msgstr ""
-
-# type: verbatim
-#: ../src/guestfs.pod:1223
-#, no-wrap
-msgid ""
-" ___________________\n"
-" / \\\n"
-" | main program |\n"
-" | |\n"
-" | | child process / appliance\n"
-" | | __________________________\n"
-" | | / qemu \\\n"
-" +-------------------+ RPC | +-----------------+ |\n"
-" | libguestfs <--------------------> guestfsd | |\n"
-" | | | +-----------------+ |\n"
-" \\___________________/ | | Linux kernel | |\n"
-" | +--^--------------+ |\n"
-" \\_________|________________/\n"
-" |\n"
-" _______v______\n"
-" / \\\n"
-" | Device or |\n"
-" | disk image |\n"
-" \\______________/\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1243
-msgid ""
-"The library, linked to the main program, creates the child process and hence "
-"the appliance in the L</guestfs_launch> function."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1246
-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 "
-"L</guestfsd>. The library talks to L</guestfsd> using remote procedure "
-"calls (RPC). There is a mostly one-to-one correspondence between libguestfs "
-"API calls and RPC calls to the daemon. Lastly the disk image(s) are "
-"attached to the qemu process which translates device access by the "
-"appliance's Linux kernel into accesses to the image."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1255
-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 "
-"virtual machine, libguestfs doesn't know or care about this. (But you will "
-"care if both libguestfs's qemu process and your virtual machine are trying "
-"to update the disk image at the same time, since these usually results in "
-"massive disk corruption)."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1262
-msgid "STATE MACHINE"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1264
-msgid "libguestfs uses a state machine to model the child process:"
-msgstr ""
-
-# type: verbatim
-#: ../src/guestfs.pod:1266
-#, no-wrap
-msgid ""
-" |\n"
-" guestfs_create\n"
-" |\n"
-" |\n"
-" ____V_____\n"
-" / \\\n"
-" | CONFIG |\n"
-" \\__________/\n"
-" ^ ^ ^ \\\n"
-" / | \\ \\ guestfs_launch\n"
-" / | _\\__V______\n"
-" / | / \\\n"
-" / | | LAUNCHING |\n"
-" / | \\___________/\n"
-" / | /\n"
-" / | guestfs_launch\n"
-" / | /\n"
-" ______ / __|____V\n"
-" / \\ ------> / \\\n"
-" | BUSY | | READY |\n"
-" \\______/ <------ \\________/\n"
-"\n"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1288
-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), "
-"(3) alternating between READY and BUSY as commands are issued to, and "
-"carried out by, the child process."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1293
-msgid ""
-"The guest may be killed by L</guestfs_kill_subprocess>, or may die "
-"asynchronously at any time (eg. due to some internal error), and that causes "
-"the state to transition back to CONFIG."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1297
-msgid ""
-"Configuration commands for qemu such as L</guestfs_add_drive> can only be "
-"issued when in the CONFIG state."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1300
-msgid ""
-"The API offers one call that goes from CONFIG through LAUNCHING to READY. "
-"L</guestfs_launch> blocks until the child process is READY to accept "
-"commands (or until some failure or timeout). L</guestfs_launch> internally "
-"moves the state from CONFIG to LAUNCHING while it is running."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1306
-msgid ""
-"API actions such as L</guestfs_mount> can only be issued when in the READY "
-"state. These API calls block waiting for the command to be carried out "
-"(ie. the state to transition to BUSY and then back to READY). There are no "
-"non-blocking versions, and no way to issue more than one command per handle "
-"at the same time."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1312
-msgid ""
-"Finally, the child process sends asynchronous messages back to the main "
-"program, such as kernel log messages. You can register a callback to "
-"receive these messages."
-msgstr ""
-
# type: =head2
-#: ../src/guestfs.pod:1316
+#: ../src/guestfs.pod:1505
msgid "SETTING CALLBACKS TO HANDLE EVENTS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1318
+#: ../src/guestfs.pod:1507
msgid ""
"The child process generates events in some situations. Current events "
"include: receiving a log message, the child process exits."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1321
+#: ../src/guestfs.pod:1510
msgid ""
"Use the C<guestfs_set_*_callback> functions to set a callback for different "
"types of events."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1324
+#: ../src/guestfs.pod:1513
msgid ""
"Only I<one callback of each type> can be registered for each handle. "
"Calling C<guestfs_set_*_callback> again overwrites the previous callback of "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1329
+#: ../src/guestfs.pod:1518
msgid "guestfs_set_log_message_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1331
+#: ../src/guestfs.pod:1520
#, no-wrap
msgid ""
" typedef void (*guestfs_log_message_cb) (guestfs_h *g, void *opaque,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1337
+#: ../src/guestfs.pod:1526
msgid ""
"The callback function C<cb> will be called whenever qemu or the guest writes "
"anything to the console."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1340
+#: ../src/guestfs.pod:1529
msgid "Use this function to capture kernel messages and similar."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1342
+#: ../src/guestfs.pod:1531
msgid ""
"Normally there is no log message handler, and log messages are just "
"discarded."
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1345
+#: ../src/guestfs.pod:1534
msgid "guestfs_set_subprocess_quit_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1347
+#: ../src/guestfs.pod:1536
#, no-wrap
msgid ""
" typedef void (*guestfs_subprocess_quit_cb) (guestfs_h *g, void *opaque);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1352
+#: ../src/guestfs.pod:1541
msgid ""
"The callback function C<cb> will be called when the child process quits, "
"either asynchronously or if killed by L</guestfs_kill_subprocess>. (This "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1357
+#: ../src/guestfs.pod:1546
msgid "guestfs_set_launch_done_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1359
+#: ../src/guestfs.pod:1548
#, no-wrap
msgid ""
" typedef void (*guestfs_launch_done_cb) (guestfs_h *g, void *opaque);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1364
+#: ../src/guestfs.pod:1553
msgid ""
"The callback function C<cb> will be called when the child process becomes "
"ready first time after it has been launched. (This corresponds to a "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1368
+#: ../src/guestfs.pod:1557
msgid "guestfs_set_close_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1370
+#: ../src/guestfs.pod:1559
#, no-wrap
msgid ""
" typedef void (*guestfs_close_cb) (guestfs_h *g, void *opaque);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1375
+#: ../src/guestfs.pod:1564
msgid ""
"The callback function C<cb> will be called while the handle is being closed "
"(synchronously from L</guestfs_close>)."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1378
+#: ../src/guestfs.pod:1567
msgid ""
"Note that libguestfs installs an L<atexit(3)> handler to try to clean up "
"handles that are open when the program exits. This means that this callback "
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1386
+#: ../src/guestfs.pod:1575
msgid "guestfs_set_progress_callback"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1388
+#: ../src/guestfs.pod:1577
#, no-wrap
msgid ""
" typedef void (*guestfs_progress_cb) (guestfs_h *g, void *opaque,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1395
+#: ../src/guestfs.pod:1584
msgid ""
"Some long-running operations can generate progress messages. If this "
"callback is registered, then it will be called each time a progress message "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1401
+#: ../src/guestfs.pod:1590
msgid ""
"The callback receives two numbers: C<position> and C<total>. The units of "
"C<total> are not defined, although for some operations C<total> may relate "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1407
+#: ../src/guestfs.pod:1596
msgid "The only defined and stable parts of the API are:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1413
+#: ../src/guestfs.pod:1602
msgid ""
"The callback can display to the user some type of progress bar or indicator "
"which shows the ratio of C<position>:C<total>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1418
+#: ../src/guestfs.pod:1607
msgid "0 E<lt>= C<position> E<lt>= C<total>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1422
+#: ../src/guestfs.pod:1611
msgid ""
"If any progress notification is sent during a call, then a final progress "
"notification is always sent when C<position> = C<total>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1425
+#: ../src/guestfs.pod:1614
msgid ""
"This is to simplify caller code, so callers can easily set the progress "
"indicator to \"100%\" at the end of the operation, without requiring special "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1431
+#: ../src/guestfs.pod:1620
msgid ""
"The callback also receives the procedure number and serial number of the "
"call. These are only useful for debugging protocol issues, and the callback "
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1436
+#: ../src/guestfs.pod:1625
msgid "PRIVATE DATA AREA"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1438
+#: ../src/guestfs.pod:1627
msgid ""
"You can attach named pieces of private data to the libguestfs handle, and "
"fetch them by name for the lifetime of the handle. This is called the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1442
+#: ../src/guestfs.pod:1631
msgid "To attach a named piece of data, use the following call:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1444
+#: ../src/guestfs.pod:1633
#, no-wrap
msgid ""
" void guestfs_set_private (guestfs_h *g, const char *key, void *data);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1446
+#: ../src/guestfs.pod:1635
msgid ""
"C<key> is the name to associate with this data, and C<data> is an arbitrary "
"pointer (which can be C<NULL>). Any previous item with the same name is "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1450
+#: ../src/guestfs.pod:1639
msgid ""
"You can use any C<key> you want, but names beginning with an underscore "
"character are reserved for internal libguestfs purposes (for implementing "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1455
+#: ../src/guestfs.pod:1644
msgid "To retrieve the pointer, use:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1457
+#: ../src/guestfs.pod:1646
#, no-wrap
msgid ""
" void *guestfs_get_private (guestfs_h *g, const char *key);\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1459
+#: ../src/guestfs.pod:1648
msgid ""
"This function returns C<NULL> if either no data is found associated with "
"C<key>, or if the user previously set the C<key>'s C<data> pointer to "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1463
+#: ../src/guestfs.pod:1652
msgid ""
"Libguestfs does not try to look at or interpret the C<data> pointer in any "
"way. As far as libguestfs is concerned, it need not be a valid pointer at "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1471
-msgid ""
-"The private data area is implemented using a hash table, and should be "
-"reasonably efficient for moderate numbers of keys."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1474
-msgid "BLOCK DEVICE NAMING"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1476
-msgid ""
-"In the kernel there is now quite a profusion of schemata for naming block "
-"devices (in this context, by I<block device> I mean a physical or virtual "
-"hard drive). The original Linux IDE driver used names starting with "
-"C</dev/hd*>. SCSI devices have historically used a different naming scheme, "
-"C</dev/sd*>. When the Linux kernel I<libata> driver became a popular "
-"replacement for the old IDE driver (particularly for SATA devices) those "
-"devices also used the C</dev/sd*> scheme. Additionally we now have virtual "
-"machines with paravirtualized drivers. This has created several different "
-"naming systems, such as C</dev/vd*> for virtio disks and C</dev/xvd*> for "
-"Xen PV disks."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1488
-msgid ""
-"As discussed above, libguestfs uses a qemu appliance running an embedded "
-"Linux kernel to access block devices. We can run a variety of appliances "
-"based on a variety of Linux kernels."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1492
-msgid ""
-"This causes a problem for libguestfs because many API calls use device or "
-"partition names. Working scripts and the recipe (example) scripts that we "
-"make available over the internet could fail if the naming scheme changes."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1497
-msgid ""
-"Therefore libguestfs defines C</dev/sd*> as the I<standard naming scheme>. "
-"Internally C</dev/sd*> names are translated, if necessary, to other names as "
-"required. For example, under RHEL 5 which uses the C</dev/hd*> scheme, any "
-"device parameter C</dev/sda2> is translated to C</dev/hda2> transparently."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1503
+#: ../src/guestfs.pod:1660
msgid ""
-"Note that this I<only> applies to parameters. The L</guestfs_list_devices>, "
-"L</guestfs_list_partitions> and similar calls return the true names of the "
-"devices and partitions as known to the appliance."
+"The private data area is implemented using a hash table, and should be "
+"reasonably efficient for moderate numbers of keys."
msgstr ""
-# type: =head2
-#: ../src/guestfs.pod:1508
-msgid "ALGORITHM FOR BLOCK DEVICE NAME TRANSLATION"
+# type: =end
+#: ../src/guestfs.pod:1663 ../src/guestfs.pod:1668
+msgid "html"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1510
+#: ../src/guestfs.pod:1665
msgid ""
-"Usually this translation is transparent. However in some (very rare) cases "
-"you may need to know the exact algorithm. Such cases include where you use "
-"L</guestfs_config> to add a mixture of virtio and IDE devices to the "
-"qemu-based appliance, so have a mixture of C</dev/sd*> and C</dev/vd*> "
-"devices."
+"<!-- old anchor for the next section --> <a "
+"name=\"state_machine_and_low_level_event_api\"/>"
msgstr ""
-# type: textblock
-#: ../src/guestfs.pod:1516
-msgid ""
-"The algorithm is applied only to I<parameters> which are known to be either "
-"device or partition names. Return values from functions such as "
-"L</guestfs_list_devices> are never changed."
+# type: =head1
+#: ../src/guestfs.pod:1670
+msgid "ARCHITECTURE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1524
-msgid "Is the string a parameter which is a device or partition name?"
+#: ../src/guestfs.pod:1672
+msgid ""
+"Internally, libguestfs is implemented by running an appliance (a special "
+"type of small virtual machine) using L<qemu(1)>. Qemu runs as a child "
+"process of the main program."
msgstr ""
-# type: textblock
-#: ../src/guestfs.pod:1528
-msgid "Does the string begin with C</dev/sd>?"
+# type: verbatim
+#: ../src/guestfs.pod:1676
+#, no-wrap
+msgid ""
+" ___________________\n"
+" / \\\n"
+" | main program |\n"
+" | |\n"
+" | | child process / appliance\n"
+" | | __________________________\n"
+" | | / qemu \\\n"
+" +-------------------+ RPC | +-----------------+ |\n"
+" | libguestfs <--------------------> guestfsd | |\n"
+" | | | +-----------------+ |\n"
+" \\___________________/ | | Linux kernel | |\n"
+" | +--^--------------+ |\n"
+" \\_________|________________/\n"
+" |\n"
+" _______v______\n"
+" / \\\n"
+" | Device or |\n"
+" | disk image |\n"
+" \\______________/\n"
+"\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1532
+#: ../src/guestfs.pod:1696
msgid ""
-"Does the named device exist? If so, we use that device. However if I<not> "
-"then we continue with this algorithm."
+"The library, linked to the main program, creates the child process and hence "
+"the appliance in the L</guestfs_launch> function."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1537
-msgid "Replace initial C</dev/sd> string with C</dev/hd>."
+#: ../src/guestfs.pod:1699
+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 "
+"L</guestfsd>. The library talks to L</guestfsd> using remote procedure "
+"calls (RPC). There is a mostly one-to-one correspondence between libguestfs "
+"API calls and RPC calls to the daemon. Lastly the disk image(s) are "
+"attached to the qemu process which translates device access by the "
+"appliance's Linux kernel into accesses to the image."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1539
-msgid "For example, change C</dev/sda2> to C</dev/hda2>."
+#: ../src/guestfs.pod:1708
+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 "
+"virtual machine, libguestfs doesn't know or care about this. (But you will "
+"care if both libguestfs's qemu process and your virtual machine are trying "
+"to update the disk image at the same time, since these usually results in "
+"massive disk corruption)."
msgstr ""
-# type: textblock
-#: ../src/guestfs.pod:1541
-msgid "If that named device exists, use it. If not, continue."
+# type: =head1
+#: ../src/guestfs.pod:1715
+msgid "STATE MACHINE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1545
-msgid "Replace initial C</dev/sd> string with C</dev/vd>."
+#: ../src/guestfs.pod:1717
+msgid "libguestfs uses a state machine to model the child process:"
msgstr ""
-# type: textblock
-#: ../src/guestfs.pod:1547
-msgid "If that named device exists, use it. If not, return an error."
+# type: verbatim
+#: ../src/guestfs.pod:1719
+#, no-wrap
+msgid ""
+" |\n"
+" guestfs_create\n"
+" |\n"
+" |\n"
+" ____V_____\n"
+" / \\\n"
+" | CONFIG |\n"
+" \\__________/\n"
+" ^ ^ ^ \\\n"
+" / | \\ \\ guestfs_launch\n"
+" / | _\\__V______\n"
+" / | / \\\n"
+" / | | LAUNCHING |\n"
+" / | \\___________/\n"
+" / | /\n"
+" / | guestfs_launch\n"
+" / | /\n"
+" ______ / __|____V\n"
+" / \\ ------> / \\\n"
+" | BUSY | | READY |\n"
+" \\______/ <------ \\________/\n"
+"\n"
msgstr ""
-# type: =head2
-#: ../src/guestfs.pod:1551
-msgid "PORTABILITY CONCERNS"
+# type: textblock
+#: ../src/guestfs.pod:1741
+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), "
+"(3) alternating between READY and BUSY as commands are issued to, and "
+"carried out by, the child process."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1553
+#: ../src/guestfs.pod:1746
msgid ""
-"Although the standard naming scheme and automatic translation is useful for "
-"simple programs and guestfish scripts, for larger programs it is best not to "
-"rely on this mechanism."
+"The guest may be killed by L</guestfs_kill_subprocess>, or may die "
+"asynchronously at any time (eg. due to some internal error), and that causes "
+"the state to transition back to CONFIG."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1557
+#: ../src/guestfs.pod:1750
msgid ""
-"Where possible for maximum future portability programs using libguestfs "
-"should use these future-proof techniques:"
+"Configuration commands for qemu such as L</guestfs_add_drive> can only be "
+"issued when in the CONFIG state."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1564
+#: ../src/guestfs.pod:1753
msgid ""
-"Use L</guestfs_list_devices> or L</guestfs_list_partitions> to list actual "
-"device names, and then use those names directly."
+"The API offers one call that goes from CONFIG through LAUNCHING to READY. "
+"L</guestfs_launch> blocks until the child process is READY to accept "
+"commands (or until some failure or timeout). L</guestfs_launch> internally "
+"moves the state from CONFIG to LAUNCHING while it is running."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1567
-msgid "Since those device names exist by definition, they will never be translated."
+#: ../src/guestfs.pod:1759
+msgid ""
+"API actions such as L</guestfs_mount> can only be issued when in the READY "
+"state. These API calls block waiting for the command to be carried out "
+"(ie. the state to transition to BUSY and then back to READY). There are no "
+"non-blocking versions, and no way to issue more than one command per handle "
+"at the same time."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1572
+#: ../src/guestfs.pod:1765
msgid ""
-"Use higher level ways to identify filesystems, such as LVM names, UUIDs and "
-"filesystem labels."
+"Finally, the child process sends asynchronous messages back to the main "
+"program, such as kernel log messages. You can register a callback to "
+"receive these messages."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1577
+#: ../src/guestfs.pod:1769
msgid "INTERNALS"
msgstr ""
# type: =head2
-#: ../src/guestfs.pod:1579
+#: ../src/guestfs.pod:1771
msgid "COMMUNICATION PROTOCOL"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1581
+#: ../src/guestfs.pod:1773
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:1584
+#: ../src/guestfs.pod:1776
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1588
+#: ../src/guestfs.pod:1780
msgid ""
"The detailed format of structures is in C<src/guestfs_protocol.x> (note: "
"this file is automatically generated)."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1591
+#: ../src/guestfs.pod:1783
msgid ""
"There are two broad cases, ordinary functions that don't have any C<FileIn> "
"and C<FileOut> parameters, which are handled with very simple request/reply "
msgstr ""
# type: =head3
-#: ../src/guestfs.pod:1598
+#: ../src/guestfs.pod:1790
msgid "ORDINARY FUNCTIONS (NO FILEIN/FILEOUT PARAMS)"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1600
+#: ../src/guestfs.pod:1792
msgid "For ordinary functions, the request message is:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1602
+#: ../src/guestfs.pod:1794
#, no-wrap
msgid ""
" total length (header + arguments,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1607
+#: ../src/guestfs.pod:1799
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1613
+#: ../src/guestfs.pod:1805
msgid ""
"Note also that many functions don't take any arguments, in which case the "
"C<guestfs_I<foo>_args> is completely omitted."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1616
+#: ../src/guestfs.pod:1808
msgid ""
"The header contains the procedure number (C<guestfs_proc>) which is how the "
"receiver knows what type of args structure to expect, or none at all."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1620
+#: ../src/guestfs.pod:1812
msgid "The reply message for ordinary functions is:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1622
+#: ../src/guestfs.pod:1814
#, no-wrap
msgid ""
" total length (header + ret,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1627
+#: ../src/guestfs.pod:1819
msgid ""
"As above the C<guestfs_I<foo>_ret> structure may be completely omitted for "
"functions that return no formal return values."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1630
+#: ../src/guestfs.pod:1822
msgid "As above the total length of the reply is limited to C<GUESTFS_MESSAGE_MAX>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1633
+#: ../src/guestfs.pod:1825
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:1636
+#: ../src/guestfs.pod:1828
#, no-wrap
msgid ""
" total length (header + error,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1641
+#: ../src/guestfs.pod:1833
msgid ""
"The C<guestfs_message_error> structure contains the error message as a "
"string."
msgstr ""
# type: =head3
-#: ../src/guestfs.pod:1644
+#: ../src/guestfs.pod:1836
msgid "FUNCTIONS THAT HAVE FILEIN PARAMETERS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1646
+#: ../src/guestfs.pod:1838
msgid ""
"A C<FileIn> parameter indicates that we transfer a file I<into> the guest. "
"The normal request message is sent (see above). However this is followed by "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1650
+#: ../src/guestfs.pod:1842
#, no-wrap
msgid ""
" total length (header + arguments,\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1658
+#: ../src/guestfs.pod:1850
msgid "The \"sequence of chunks\" is:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1660
+#: ../src/guestfs.pod:1852
#, no-wrap
msgid ""
" length of chunk (not including length word itself)\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1668
+#: ../src/guestfs.pod:1860
msgid ""
"The final chunk has the C<data_len> field set to zero. Additionally a flag "
"is set in the final chunk to indicate either successful completion or early "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1672
+#: ../src/guestfs.pod:1864
msgid ""
"At time of writing there are no functions that have more than one FileIn "
"parameter. However this is (theoretically) supported, by sending the "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1677
+#: ../src/guestfs.pod:1869
msgid ""
"Both the library (sender) I<and> the daemon (receiver) may cancel the "
"transfer. The library does this by sending a chunk with a special flag set "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1683
+#: ../src/guestfs.pod:1875
msgid ""
"The daemon may also cancel. It does this by writing a special word "
"C<GUESTFS_CANCEL_FLAG> to the socket. The library listens for this during "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1692
+#: ../src/guestfs.pod:1884
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 "
msgstr ""
# type: =head3
-#: ../src/guestfs.pod:1698
+#: ../src/guestfs.pod:1890
msgid "FUNCTIONS THAT HAVE FILEOUT PARAMETERS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1700
+#: ../src/guestfs.pod:1892
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:1703
+#: ../src/guestfs.pod:1895
#, no-wrap
msgid ""
" total length (header + ret,\n"
msgstr ""
# type: =head3
-#: ../src/guestfs.pod:1711
+#: ../src/guestfs.pod:1903
msgid "INITIAL MESSAGE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1713
+#: ../src/guestfs.pod:1905
msgid ""
"When the daemon launches it sends an initial word (C<GUESTFS_LAUNCH_FLAG>) "
-"which indicates that the guest and daemon is alive. This is what "
-"L</guestfs_launch> waits for."
-msgstr ""
-
-# type: =head3
-#: ../src/guestfs.pod:1717
-msgid "PROGRESS NOTIFICATION MESSAGES"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1719
-msgid ""
-"The daemon may send progress notification messages at any time. These are "
-"distinguished by the normal length word being replaced by "
-"C<GUESTFS_PROGRESS_FLAG>, followed by a fixed size progress message."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1723
-msgid ""
-"The library turns them into progress callbacks (see "
-"C<guestfs_set_progress_callback>) if there is a callback registered, or "
-"discards them if not."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1727
-msgid ""
-"The daemon self-limits the frequency of progress messages it sends (see "
-"C<daemon/proto.c:notify_progress>). Not all calls generate progress "
-"messages."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1731
-msgid "MULTIPLE HANDLES AND MULTIPLE THREADS"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1733
-msgid ""
-"All high-level libguestfs actions are synchronous. If you want to use "
-"libguestfs asynchronously then you must create a thread."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1736
-msgid ""
-"Only use the handle from a single thread. Either use the handle exclusively "
-"from one thread, or provide your own mutex so that two threads cannot issue "
-"calls on the same handle at the same time."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1740
-msgid ""
-"See the graphical program guestfs-browser for one possible architecture for "
-"multithreaded programs using libvirt and libguestfs."
-msgstr ""
-
-# type: =head1
-#: ../src/guestfs.pod:1743
-msgid "QEMU WRAPPERS"
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1745
-msgid ""
-"If you want to compile your own qemu, run qemu from a non-standard location, "
-"or pass extra arguments to qemu, then you can write a shell-script wrapper "
-"around qemu."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1749
-msgid ""
-"There is one important rule to remember: you I<must C<exec qemu>> as the "
-"last command in the shell script (so that qemu replaces the shell and "
-"becomes the direct child of the libguestfs-using program). If you don't do "
-"this, then the qemu process won't be cleaned up correctly."
-msgstr ""
-
-# type: textblock
-#: ../src/guestfs.pod:1754
-msgid ""
-"Here is an example of a wrapper, where I have built my own copy of qemu from "
-"source:"
-msgstr ""
-
-# type: verbatim
-#: ../src/guestfs.pod:1757
-#, no-wrap
-msgid ""
-" #!/bin/sh -\n"
-" qemudir=/home/rjones/d/qemu\n"
-" exec $qemudir/x86_64-softmmu/qemu-system-x86_64 -L $qemudir/pc-bios "
-"\"$@\"\n"
-"\n"
+"which indicates that the guest and daemon is alive. This is what "
+"L</guestfs_launch> waits for."
+msgstr ""
+
+# type: =head3
+#: ../src/guestfs.pod:1909
+msgid "PROGRESS NOTIFICATION MESSAGES"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1761
+#: ../src/guestfs.pod:1911
msgid ""
-"Save this script as C</tmp/qemu.wrapper> (or wherever), C<chmod +x>, and "
-"then use it by setting the LIBGUESTFS_QEMU environment variable. For "
-"example:"
+"The daemon may send progress notification messages at any time. These are "
+"distinguished by the normal length word being replaced by "
+"C<GUESTFS_PROGRESS_FLAG>, followed by a fixed size progress message."
msgstr ""
-# type: verbatim
-#: ../src/guestfs.pod:1765
-#, no-wrap
+# type: textblock
+#: ../src/guestfs.pod:1915
msgid ""
-" LIBGUESTFS_QEMU=/tmp/qemu.wrapper guestfish\n"
-"\n"
+"The library turns them into progress callbacks (see "
+"C<guestfs_set_progress_callback>) if there is a callback registered, or "
+"discards them if not."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1767
+#: ../src/guestfs.pod:1919
msgid ""
-"Note that libguestfs also calls qemu with the -help and -version options in "
-"order to determine features."
+"The daemon self-limits the frequency of progress messages it sends (see "
+"C<daemon/proto.c:notify_progress>). Not all calls generate progress "
+"messages."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1770
+#: ../src/guestfs.pod:1923
msgid "LIBGUESTFS VERSION NUMBERS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1772
+#: ../src/guestfs.pod:1925
msgid ""
"Since April 2010, libguestfs has started to make separate development and "
"stable releases, along with corresponding branches in our git repository. "
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1777
+#: ../src/guestfs.pod:1930
#, no-wrap
msgid ""
" even numbers for stable: 1.2.x, 1.4.x, ...\n"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1788
+#: ../src/guestfs.pod:1941
msgid "Thus \"1.3.5\" is the 5th update to the development branch \"1.3\"."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1790
+#: ../src/guestfs.pod:1943
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1796
+#: ../src/guestfs.pod:1949
msgid "Our criteria for backporting changes are:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1802
+#: ../src/guestfs.pod:1955
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:1808
+#: ../src/guestfs.pod:1961
msgid ""
"Bug fixes which are not controversial, fix obvious problems, and have been "
"well tested are backported."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1813
+#: ../src/guestfs.pod:1966
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1819
+#: ../src/guestfs.pod:1972
msgid ""
"We I<don't> backport new features, new APIs, new tools etc, except in one "
"exceptional case: the new feature is required in order to implement an "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1825
+#: ../src/guestfs.pod:1978
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 "
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1833 ../fish/guestfish.pod:867 ../test-tool/libguestfs-test-tool.pod:104 ../tools/virt-edit.pl:330 ../tools/virt-rescue.pl:255
+#: ../src/guestfs.pod:1986 ../fish/guestfish.pod:901 ../test-tool/libguestfs-test-tool.pod:104 ../tools/virt-edit.pl:330 ../tools/virt-rescue.pl:255
msgid "ENVIRONMENT VARIABLES"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1837 ../fish/guestfish.pod:893
+#: ../src/guestfs.pod:1990 ../fish/guestfish.pod:927
msgid "LIBGUESTFS_APPEND"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1839 ../fish/guestfish.pod:895
+#: ../src/guestfs.pod:1992 ../fish/guestfish.pod:929
msgid "Pass additional options to the guest kernel."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1841 ../fish/guestfish.pod:897
+#: ../src/guestfs.pod:1994 ../fish/guestfish.pod:931
msgid "LIBGUESTFS_DEBUG"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1843
+#: ../src/guestfs.pod:1996
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as calling C<guestfs_set_verbose (g, 1)>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1846 ../fish/guestfish.pod:902
+#: ../src/guestfs.pod:1999 ../fish/guestfish.pod:936
msgid "LIBGUESTFS_MEMSIZE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1848 ../fish/guestfish.pod:904
+#: ../src/guestfs.pod:2001 ../fish/guestfish.pod:938
msgid "Set the memory allocated to the qemu process, in megabytes. For example:"
msgstr ""
# type: verbatim
-#: ../src/guestfs.pod:1851 ../fish/guestfish.pod:907
+#: ../src/guestfs.pod:2004 ../fish/guestfish.pod:941
#, no-wrap
msgid ""
" LIBGUESTFS_MEMSIZE=700\n"
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1853 ../fish/guestfish.pod:909
+#: ../src/guestfs.pod:2006 ../fish/guestfish.pod:943
msgid "LIBGUESTFS_PATH"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1855
+#: ../src/guestfs.pod:2008
msgid ""
"Set the path that libguestfs uses to search for kernel and initrd.img. See "
"the discussion of paths in section PATH above."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1858 ../fish/guestfish.pod:914
+#: ../src/guestfs.pod:2011 ../fish/guestfish.pod:948
msgid "LIBGUESTFS_QEMU"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1860 ../fish/guestfish.pod:916
+#: ../src/guestfs.pod:2013 ../fish/guestfish.pod:950
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: textblock
-#: ../src/guestfs.pod:1864
+#: ../src/guestfs.pod:2017
msgid "See also L</QEMU WRAPPERS> above."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1866 ../fish/guestfish.pod:920
+#: ../src/guestfs.pod:2019 ../fish/guestfish.pod:954
msgid "LIBGUESTFS_TRACE"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1868
+#: ../src/guestfs.pod:2021
msgid ""
"Set C<LIBGUESTFS_TRACE=1> to enable command traces. This has the same "
"effect as calling C<guestfs_set_trace (g, 1)>."
msgstr ""
# type: =item
-#: ../src/guestfs.pod:1871 ../fish/guestfish.pod:929
+#: ../src/guestfs.pod:2024 ../fish/guestfish.pod:963
msgid "TMPDIR"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1873 ../fish/guestfish.pod:931
+#: ../src/guestfs.pod:2026 ../fish/guestfish.pod:965
msgid "Location of temporary directory, defaults to C</tmp>."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1875 ../fish/guestfish.pod:933
+#: ../src/guestfs.pod:2028 ../fish/guestfish.pod:967
msgid ""
"If libguestfs was compiled to use the supermin appliance then the real "
"appliance is cached in this directory, shared between all handles belonging "
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1883 ../fish/guestfish.pod:991 ../test-tool/libguestfs-test-tool.pod:109 ../fuse/guestmount.pod:214 ../inspector/virt-inspector.pl:570 ../tools/virt-edit.pl:350 ../tools/virt-win-reg.pl:484 ../tools/virt-df.pl:640 ../tools/virt-ls.pl:232 ../tools/virt-resize.pl:1486 ../tools/virt-list-filesystems.pl:186 ../tools/virt-cat.pl:185 ../tools/virt-tar.pl:281 ../tools/virt-rescue.pl:267 ../tools/virt-make-fs.pl:534 ../tools/virt-list-partitions.pl:254
+#: ../src/guestfs.pod:2036 ../fish/guestfish.pod:1025 ../test-tool/libguestfs-test-tool.pod:109 ../fuse/guestmount.pod:221 ../inspector/virt-inspector.pl:570 ../tools/virt-edit.pl:350 ../tools/virt-win-reg.pl:484 ../tools/virt-df.pl:640 ../tools/virt-ls.pl:232 ../tools/virt-resize.pl:1486 ../tools/virt-list-filesystems.pl:186 ../tools/virt-cat.pl:185 ../tools/virt-tar.pl:281 ../tools/virt-rescue.pl:267 ../tools/virt-make-fs.pl:534 ../tools/virt-list-partitions.pl:254
msgid "SEE ALSO"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1885
+#: ../src/guestfs.pod:2038
msgid ""
"L<guestfish(1)>, L<guestmount(1)>, L<virt-cat(1)>, L<virt-df(1)>, "
"L<virt-edit(1)>, L<virt-inspector(1)>, L<virt-list-filesystems(1)>, "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1903
+#: ../src/guestfs.pod:2056
msgid ""
"Tools with a similar purpose: L<fdisk(8)>, L<parted(8)>, L<kpartx(8)>, "
"L<lvm(8)>, L<disktype(1)>."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1910 ../tools/virt-win-reg.pl:499 ../tools/virt-make-fs.pl:548
+#: ../src/guestfs.pod:2063 ../tools/virt-win-reg.pl:499 ../tools/virt-make-fs.pl:548
msgid "BUGS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1912
+#: ../src/guestfs.pod:2065
msgid "To get a list of bugs against libguestfs use this link:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1914
+#: ../src/guestfs.pod:2067
msgid "L<https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1916
+#: ../src/guestfs.pod:2069
msgid "To report a new bug against libguestfs use this link:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1918
+#: ../src/guestfs.pod:2071
msgid "L<https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1920
+#: ../src/guestfs.pod:2073
msgid "When reporting a bug, please check:"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1926
+#: ../src/guestfs.pod:2079
msgid "That the bug hasn't been reported already."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1930
+#: ../src/guestfs.pod:2083
msgid "That you are testing a recent version."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1934
+#: ../src/guestfs.pod:2087
msgid "Describe the bug accurately, and give a way to reproduce it."
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1938
+#: ../src/guestfs.pod:2091
msgid ""
"Run libguestfs-test-tool and paste the B<complete, unedited> output into the "
"bug report."
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1943 ../fish/guestfish.pod:1008 ../test-tool/libguestfs-test-tool.pod:115 ../fuse/guestmount.pod:225 ../inspector/virt-inspector.pl:580
+#: ../src/guestfs.pod:2096 ../fish/guestfish.pod:1042 ../test-tool/libguestfs-test-tool.pod:115 ../fuse/guestmount.pod:232 ../inspector/virt-inspector.pl:580
msgid "AUTHORS"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1945 ../fish/guestfish.pod:1010 ../test-tool/libguestfs-test-tool.pod:117 ../fuse/guestmount.pod:227
+#: ../src/guestfs.pod:2098 ../fish/guestfish.pod:1044 ../test-tool/libguestfs-test-tool.pod:117 ../fuse/guestmount.pod:234
msgid "Richard W.M. Jones (C<rjones at redhat dot com>)"
msgstr ""
# type: =head1
-#: ../src/guestfs.pod:1947 ../fish/guestfish.pod:1012 ../test-tool/libguestfs-test-tool.pod:119 ../fuse/guestmount.pod:229 ../inspector/virt-inspector.pl:594 ../tools/virt-edit.pl:366 ../tools/virt-win-reg.pl:514 ../tools/virt-df.pl:653 ../tools/virt-ls.pl:247 ../tools/virt-resize.pl:1512 ../tools/virt-list-filesystems.pl:202 ../tools/virt-cat.pl:199 ../tools/virt-tar.pl:296 ../tools/virt-rescue.pl:281 ../tools/virt-make-fs.pl:563 ../tools/virt-list-partitions.pl:269
+#: ../src/guestfs.pod:2100 ../fish/guestfish.pod:1046 ../test-tool/libguestfs-test-tool.pod:119 ../fuse/guestmount.pod:236 ../inspector/virt-inspector.pl:594 ../tools/virt-edit.pl:366 ../tools/virt-win-reg.pl:514 ../tools/virt-df.pl:653 ../tools/virt-ls.pl:247 ../tools/virt-resize.pl:1512 ../tools/virt-list-filesystems.pl:202 ../tools/virt-cat.pl:199 ../tools/virt-tar.pl:296 ../tools/virt-rescue.pl:281 ../tools/virt-make-fs.pl:563 ../tools/virt-list-partitions.pl:269
msgid "COPYRIGHT"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1949 ../fish/guestfish.pod:1014 ../fuse/guestmount.pod:231
+#: ../src/guestfs.pod:2102 ../fish/guestfish.pod:1048 ../fuse/guestmount.pod:238
msgid "Copyright (C) 2009-2010 Red Hat Inc. L<http://libguestfs.org/>"
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1952
+#: ../src/guestfs.pod:2105
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1957
+#: ../src/guestfs.pod:2110
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 "
msgstr ""
# type: textblock
-#: ../src/guestfs.pod:1962
+#: ../src/guestfs.pod:2115
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, "
# type: textblock
#: ../src/guestfs-actions.pod:2253 ../fish/guestfish-actions.pod:1678
-msgid "Debian or a Debian-derived distro such as Ubuntu."
+msgid "Debian."
msgstr ""
# type: =item
msgstr ""
# type: =item
-#: ../src/guestfs-actions.pod:2279 ../src/guestfs-actions.pod:2441 ../fish/guestfish-actions.pod:1704 ../fish/guestfish-actions.pod:1834
-msgid "\"windows\""
+#: ../src/guestfs-actions.pod:2279 ../fish/guestfish-actions.pod:1704
+msgid "\"ubuntu\""
msgstr ""
# type: textblock
#: ../src/guestfs-actions.pod:2281 ../fish/guestfish-actions.pod:1706
-msgid ""
-"Windows does not have distributions. This string is returned if the OS type "
-"is Windows."
+msgid "Ubuntu."
msgstr ""
# type: =item
-#: ../src/guestfs-actions.pod:2284 ../fish/guestfish-actions.pod:1709
-msgid "\"ubuntu\""
+#: ../src/guestfs-actions.pod:2283 ../src/guestfs-actions.pod:2445 ../fish/guestfish-actions.pod:1708 ../fish/guestfish-actions.pod:1838
+msgid "\"unknown\""
msgstr ""
# type: textblock
-#: ../src/guestfs-actions.pod:2286 ../fish/guestfish-actions.pod:1711
-msgid "Ubuntu."
+#: ../src/guestfs-actions.pod:2285 ../fish/guestfish-actions.pod:1710
+msgid "The distro could not be determined."
msgstr ""
# type: =item
-#: ../src/guestfs-actions.pod:2288 ../src/guestfs-actions.pod:2445 ../fish/guestfish-actions.pod:1713 ../fish/guestfish-actions.pod:1838
-msgid "\"unknown\""
+#: ../src/guestfs-actions.pod:2287 ../src/guestfs-actions.pod:2441 ../fish/guestfish-actions.pod:1712 ../fish/guestfish-actions.pod:1834
+msgid "\"windows\""
msgstr ""
# type: textblock
-#: ../src/guestfs-actions.pod:2290 ../fish/guestfish-actions.pod:1715
-msgid "The distro could not be determined."
+#: ../src/guestfs-actions.pod:2289 ../fish/guestfish-actions.pod:1714
+msgid ""
+"Windows does not have distributions. This string is returned if the OS type "
+"is Windows."
msgstr ""
# type: textblock
#: ../fish/guestfish.pod:13
#, no-wrap
msgid ""
-" guestfish -a disk.img\n"
+" guestfish [--ro|--rw] -a disk.img\n"
"\n"
msgstr ""
#: ../fish/guestfish.pod:15
#, no-wrap
msgid ""
-" guestfish -a disk.img -m dev[:mountpoint]\n"
+" guestfish [--ro|--rw] -a disk.img -m dev[:mountpoint]\n"
"\n"
msgstr ""
#: ../fish/guestfish.pod:19
#, no-wrap
msgid ""
-" guestfish -a disk.img -i\n"
+" guestfish [--ro|--rw] -a disk.img -i\n"
"\n"
msgstr ""
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:800 ../fuse/guestmount.pod:39 ../tools/virt-edit.pl:58 ../tools/virt-resize.pl:66 ../tools/virt-cat.pl:50 ../tools/virt-tar.pl:45
+#: ../fish/guestfish.pod:41 ../fish/guestfish.pod:834 ../fuse/guestmount.pod:39 ../tools/virt-edit.pl:58 ../tools/virt-resize.pl:66 ../tools/virt-cat.pl:50 ../tools/virt-tar.pl:45
msgid "EXAMPLES"
msgstr ""
#: ../fish/guestfish.pod:102
#, no-wrap
msgid ""
-" guestfish --add disk.img \\\n"
+" guestfish --rw --add disk.img \\\n"
" --mount /dev/vg_guest/lv_root \\\n"
" --mount /dev/sda1:/boot \\\n"
" edit /boot/grub/grub.conf\n"
#: ../fish/guestfish.pod:118
#, no-wrap
msgid ""
-" guestfish -a disk.img -i edit /boot/grub/grub.conf\n"
+" guestfish --rw -a disk.img -i edit /boot/grub/grub.conf\n"
"\n"
msgstr ""
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:791
+#: ../fish/guestfish.pod:139 ../fish/guestfish.pod:825
#, no-wrap
msgid ""
" guestfish -N help | less\n"
#: ../fish/guestfish.pod:143
#, no-wrap
msgid ""
-" eval `guestfish --listen`\n"
+" eval \"`guestfish --listen`\"\n"
" guestfish --remote add-ro disk.img\n"
" guestfish --remote run\n"
" guestfish --remote lvs\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:211 ../fish/guestfish.pod:504 ../inspector/virt-inspector.pl:549
+#: ../fish/guestfish.pod:211 ../fish/guestfish.pod:538 ../inspector/virt-inspector.pl:549
msgid "For example:"
msgstr ""
#: ../fish/guestfish.pod:243
#, no-wrap
msgid ""
-" guestfish -a /dev/Guests/MyGuest -i\n"
+" guestfish --rw -a /dev/Guests/MyGuest -i\n"
"\n"
msgstr ""
"I<--ro> option."
msgstr ""
+# type: textblock
+#: ../fish/guestfish.pod:318
+msgid "See also L</OPENING DISKS FOR READ AND WRITE> below."
+msgstr ""
+
# type: =item
-#: ../fish/guestfish.pod:318 ../fuse/guestmount.pod:194 ../tools/virt-rescue.pl:195
+#: ../fish/guestfish.pod:320 ../fuse/guestmount.pod:196 ../tools/virt-rescue.pl:195
msgid "B<--selinux>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:320
+#: ../fish/guestfish.pod:322
msgid "Enable SELinux support for the guest. See L<guestfs(3)/SELINUX>."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:322 ../fuse/guestmount.pod:198
+#: ../fish/guestfish.pod:324 ../fuse/guestmount.pod:200
msgid "B<-v> | B<--verbose>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:324
+#: ../fish/guestfish.pod:326
msgid ""
"Enable very verbose messages. This is particularly useful if you find a "
"bug."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:327 ../fuse/guestmount.pod:202
+#: ../fish/guestfish.pod:329 ../fuse/guestmount.pod:204
msgid "B<-V> | B<--version>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:329
+#: ../fish/guestfish.pod:331
msgid "Display the guestfish / libguestfs version number and exit."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:331
+#: ../fish/guestfish.pod:333 ../fuse/guestmount.pod:208
+msgid "B<-w> | B<--rw>"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:335
+msgid ""
+"This option does nothing at the moment. See L</OPENING DISKS FOR READ AND "
+"WRITE> below."
+msgstr ""
+
+# type: =item
+#: ../fish/guestfish.pod:338
msgid "B<-x>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:333
+#: ../fish/guestfish.pod:340
msgid "Echo each command before executing it."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:337
+#: ../fish/guestfish.pod:344
msgid "COMMANDS ON COMMAND LINE"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:339
+#: ../fish/guestfish.pod:346
msgid "Any additional (non-option) arguments are treated as commands to execute."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:342
+#: ../fish/guestfish.pod:349
msgid ""
"Commands to execute should be separated by a colon (C<:>), where the colon "
"is a separate parameter. Thus:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:345
+#: ../fish/guestfish.pod:352
#, no-wrap
msgid ""
" guestfish cmd [args...] : cmd [args...] : cmd [args...] ...\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:347
+#: ../fish/guestfish.pod:354
msgid ""
"If there are no additional arguments, then we enter a shell, either an "
"interactive shell with a prompt (if the input is a terminal) or a "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:351
+#: ../fish/guestfish.pod:358
msgid ""
"In either command line mode or non-interactive shell, the first command that "
"gives an error causes the whole shell to exit. In interactive mode (with a "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:356
+#: ../fish/guestfish.pod:363
msgid "USING launch (OR run)"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:358
+#: ../fish/guestfish.pod:365
msgid ""
"As with L<guestfs(3)>, you must first configure your guest by adding disks, "
"then launch it, then mount any disks you need, and finally issue "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:366
+#: ../fish/guestfish.pod:373
msgid "add or -a/--add"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:370
+#: ../fish/guestfish.pod:377
msgid "launch (aka run)"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:374
+#: ../fish/guestfish.pod:381
msgid "mount or -m/--mount"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:378
+#: ../fish/guestfish.pod:385
msgid "any other commands"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:382
+#: ../fish/guestfish.pod:389
msgid ""
"C<run> is a synonym for C<launch>. You must C<launch> (or C<run>) your "
"guest before mounting or performing any other commands."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:385
+#: ../fish/guestfish.pod:392
msgid ""
"The only exception is that if any of the I<-i>, I<-m>, I<--mount>, I<-N> or "
"I<--new> options were given then C<run> is done automatically, simply "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:390
+#: ../fish/guestfish.pod:397
+msgid "OPENING DISKS FOR READ AND WRITE"
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:399
+msgid ""
+"The guestfish (and L<guestmount(1)>) options I<--ro> and I<--rw> affect "
+"whether the other command line options I<-a>, I<-c>, I<-d>, I<-i> and I<-m> "
+"open disk images read-only or for writing."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:403
+msgid ""
+"In libguestfs E<lt> 1.6.2, guestfish and guestmount defaulted to opening "
+"disk images supplied on the command line for write. To open a disk image "
+"read-only you have to do I<-a image --ro>."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:407
+msgid ""
+"This matters: If you accidentally open a live VM disk image writable then "
+"you will cause irreversible disk corruption."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:410
+msgid ""
+"By libguestfs 1.8 we intend to change the default the other way. Disk "
+"images will be opened read-only. You will have to either specify "
+"I<guestfish --rw> or change a configuration file in order to get write "
+"access for disk images specified by those other command line options."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:415
+msgid ""
+"This version of guestfish has a I<--rw> option which does nothing (it is "
+"already the default). However it is highly recommended that you use this "
+"option to indicate that guestfish needs write access, and to prepare your "
+"scripts for the day when this option will be required for write access."
+msgstr ""
+
+# type: textblock
+#: ../fish/guestfish.pod:421
+msgid ""
+"B<Note:> This does I<not> affect commands like L</add> and L</mount>, or any "
+"other libguestfs program apart from guestfish and guestmount."
+msgstr ""
+
+# type: =head1
+#: ../fish/guestfish.pod:424
msgid "QUOTING"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:392
+#: ../fish/guestfish.pod:426
msgid ""
"You can quote ordinary parameters using either single or double quotes. For "
"example:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:395
+#: ../fish/guestfish.pod:429
#, no-wrap
msgid ""
" add \"file with a space.img\"\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:397
+#: ../fish/guestfish.pod:431
#, no-wrap
msgid ""
" rm '/file name'\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:399
+#: ../fish/guestfish.pod:433
#, no-wrap
msgid ""
" rm '/\"'\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:401
+#: ../fish/guestfish.pod:435
msgid ""
"A few commands require a list of strings to be passed. For these, use a "
"whitespace-separated list, enclosed in quotes. Strings containing "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:406
+#: ../fish/guestfish.pod:440
#, no-wrap
msgid ""
" vgcreate VG \"/dev/sda1 /dev/sdb1\"\n"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:410
+#: ../fish/guestfish.pod:444
msgid "OPTIONAL ARGUMENTS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:412
+#: ../fish/guestfish.pod:446
msgid ""
"Some commands take optional arguments. These arguments appear in this "
"documentation as C<[argname:..]>. You can use them as in these examples:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:416
+#: ../fish/guestfish.pod:450
#, no-wrap
msgid ""
" add-drive-opts filename\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:418
+#: ../fish/guestfish.pod:452
#, no-wrap
msgid ""
" add-drive-opts filename readonly:true\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:420
+#: ../fish/guestfish.pod:454
#, no-wrap
msgid ""
" add-drive-opts filename format:qcow2 readonly:false\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:422
+#: ../fish/guestfish.pod:456
msgid ""
"Each optional argument can appear at most once. All optional arguments must "
"appear after the required ones."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:425
+#: ../fish/guestfish.pod:459
msgid "NUMBERS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:427
+#: ../fish/guestfish.pod:461
msgid "This section applies to all commands which can take integers as parameters."
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:430
+#: ../fish/guestfish.pod:464
msgid "SIZE SUFFIX"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:432
+#: ../fish/guestfish.pod:466
msgid ""
"When the command takes a parameter measured in bytes, you can use one of the "
"following suffixes to specify kilobytes, megabytes and larger sizes:"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:438
+#: ../fish/guestfish.pod:472
msgid "B<k> or B<K> or B<KiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:440
+#: ../fish/guestfish.pod:474
msgid "The size in kilobytes (multiplied by 1024)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:442
+#: ../fish/guestfish.pod:476
msgid "B<KB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:444
+#: ../fish/guestfish.pod:478
msgid "The size in SI 1000 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:446
+#: ../fish/guestfish.pod:480
msgid "B<M> or B<MiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:448
+#: ../fish/guestfish.pod:482
msgid "The size in megabytes (multiplied by 1048576)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:450
+#: ../fish/guestfish.pod:484
msgid "B<MB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:452
+#: ../fish/guestfish.pod:486
msgid "The size in SI 1000000 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:454
+#: ../fish/guestfish.pod:488
msgid "B<G> or B<GiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:456
+#: ../fish/guestfish.pod:490
msgid "The size in gigabytes (multiplied by 2**30)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:458
+#: ../fish/guestfish.pod:492
msgid "B<GB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:460
+#: ../fish/guestfish.pod:494
msgid "The size in SI 10**9 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:462
+#: ../fish/guestfish.pod:496
msgid "B<T> or B<TiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:464
+#: ../fish/guestfish.pod:498
msgid "The size in terabytes (multiplied by 2**40)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:466
+#: ../fish/guestfish.pod:500
msgid "B<TB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:468
+#: ../fish/guestfish.pod:502
msgid "The size in SI 10**12 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:470
+#: ../fish/guestfish.pod:504
msgid "B<P> or B<PiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:472
+#: ../fish/guestfish.pod:506
msgid "The size in petabytes (multiplied by 2**50)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:474
+#: ../fish/guestfish.pod:508
msgid "B<PB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:476
+#: ../fish/guestfish.pod:510
msgid "The size in SI 10**15 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:478
+#: ../fish/guestfish.pod:512
msgid "B<E> or B<EiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:480
+#: ../fish/guestfish.pod:514
msgid "The size in exabytes (multiplied by 2**60)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:482
+#: ../fish/guestfish.pod:516
msgid "B<EB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:484
+#: ../fish/guestfish.pod:518
msgid "The size in SI 10**18 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:486
+#: ../fish/guestfish.pod:520
msgid "B<Z> or B<ZiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:488
+#: ../fish/guestfish.pod:522
msgid "The size in zettabytes (multiplied by 2**70)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:490
+#: ../fish/guestfish.pod:524
msgid "B<ZB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:492
+#: ../fish/guestfish.pod:526
msgid "The size in SI 10**21 byte units."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:494
+#: ../fish/guestfish.pod:528
msgid "B<Y> or B<YiB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:496
+#: ../fish/guestfish.pod:530
msgid "The size in yottabytes (multiplied by 2**80)."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:498
+#: ../fish/guestfish.pod:532
msgid "B<YB>"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:500
+#: ../fish/guestfish.pod:534
msgid "The size in SI 10**24 byte units."
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:506
+#: ../fish/guestfish.pod:540
#, no-wrap
msgid ""
" truncate-size /file 1G\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:508
+#: ../fish/guestfish.pod:542
msgid "would truncate the file to 1 gigabyte."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:510
+#: ../fish/guestfish.pod:544
msgid ""
"Be careful because a few commands take sizes in kilobytes or megabytes "
"(eg. the parameter to L</memsize> is specified in megabytes already). "
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:514
+#: ../fish/guestfish.pod:548
msgid "OCTAL AND HEXADECIMAL NUMBERS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:516
+#: ../fish/guestfish.pod:550
msgid ""
"For specifying the radix (base) use the C convention: C<0> to prefix an "
"octal number or C<0x> to prefix a hexadecimal number. For example:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:519
+#: ../fish/guestfish.pod:553
#, no-wrap
msgid ""
" 1234 decimal number 1234\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:523
+#: ../fish/guestfish.pod:557
msgid ""
"When using the C<chmod> command, you almost always want to specify an octal "
"number for the mode, and you must prefix it with C<0> (unlike the Unix "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:527
+#: ../fish/guestfish.pod:561
#, no-wrap
msgid ""
" chmod 0777 /public # OK\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:530
+#: ../fish/guestfish.pod:564
msgid ""
"Commands that return numbers usually print them in decimal, but some "
"commands print numbers in other radices (eg. C<umask> prints the mode in "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:534
+#: ../fish/guestfish.pod:568
msgid "WILDCARDS AND GLOBBING"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:536
+#: ../fish/guestfish.pod:570
msgid ""
"Neither guestfish nor the underlying guestfs API performs wildcard expansion "
"(globbing) by default. So for example the following will not do what you "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:540
+#: ../fish/guestfish.pod:574
#, no-wrap
msgid ""
" rm-rf /home/*\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:542
+#: ../fish/guestfish.pod:576
msgid ""
"Assuming you don't have a directory called literally C</home/*> then the "
"above command will return an error."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:545
+#: ../fish/guestfish.pod:579
msgid "To perform wildcard expansion, use the C<glob> command."
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:547
+#: ../fish/guestfish.pod:581
#, no-wrap
msgid ""
" glob rm-rf /home/*\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:549
+#: ../fish/guestfish.pod:583
msgid ""
"runs C<rm-rf> on each path that matches (ie. potentially running the command "
"many times), equivalent to:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:552
+#: ../fish/guestfish.pod:586
#, no-wrap
msgid ""
" rm-rf /home/jim\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:556
+#: ../fish/guestfish.pod:590
msgid "C<glob> only works on simple guest paths and not on device names."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:558
+#: ../fish/guestfish.pod:592
msgid ""
"If you have several parameters, each containing a wildcard, then glob will "
"perform a Cartesian product."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:561
+#: ../fish/guestfish.pod:595
msgid "COMMENTS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:563
+#: ../fish/guestfish.pod:597
msgid ""
"Any line which starts with a I<#> character is treated as a comment and "
"ignored. The I<#> can optionally be preceeded by whitespace, but B<not> by "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:567
+#: ../fish/guestfish.pod:601
#, no-wrap
msgid ""
" # this is a comment\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:571
+#: ../fish/guestfish.pod:605
msgid "Blank lines are also ignored."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:573
+#: ../fish/guestfish.pod:607
msgid "RUNNING COMMANDS LOCALLY"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:575
+#: ../fish/guestfish.pod:609
msgid ""
"Any line which starts with a I<!> character is treated as a command sent to "
"the local shell (C</bin/sh> or whatever L<system(3)> uses). For example:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:579
+#: ../fish/guestfish.pod:613
#, no-wrap
msgid ""
" !mkdir local\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:582
+#: ../fish/guestfish.pod:616
msgid ""
"will create a directory C<local> on the host, and then export the contents "
"of C</remote> on the mounted filesystem to C<local/remote-data.tar.gz>. "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:586
+#: ../fish/guestfish.pod:620
msgid ""
"To change the local directory, use the C<lcd> command. C<!cd> will have no "
"effect, due to the way that subprocesses work in Unix."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:589
+#: ../fish/guestfish.pod:623
msgid "PIPES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:591
+#: ../fish/guestfish.pod:625
msgid ""
"Use C<command E<lt>spaceE<gt> | command> to pipe the output of the first "
"command (a guestfish command) to the second command (any host command). For "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:595
+#: ../fish/guestfish.pod:629
#, no-wrap
msgid ""
" cat /etc/passwd | awk -F: '$3 == 0 { print }'\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:597
+#: ../fish/guestfish.pod:631
msgid ""
"(where C<cat> is the guestfish cat command, but C<awk> is the host awk "
"program). The above command would list all accounts in the guest filesystem "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:602
+#: ../fish/guestfish.pod:636
#, no-wrap
msgid ""
" hexdump /bin/ls | head\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:606
+#: ../fish/guestfish.pod:640
msgid ""
"The space before the pipe symbol is required, any space after the pipe "
"symbol is optional. Everything after the pipe symbol is just passed "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:611
+#: ../fish/guestfish.pod:645
msgid ""
"To use a literal argument which begins with a pipe symbol, you have to quote "
"it, eg:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:614
+#: ../fish/guestfish.pod:648
#, no-wrap
msgid ""
" echo \"|\"\n"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:616
+#: ../fish/guestfish.pod:650
msgid "HOME DIRECTORIES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:618
+#: ../fish/guestfish.pod:652
msgid ""
"If a parameter starts with the character C<~> then the tilde may be expanded "
"as a home directory path (either C<~> for the current user's home directory, "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:622
+#: ../fish/guestfish.pod:656
msgid ""
"Note that home directory expansion happens for users known I<on the host>, "
"not in the guest filesystem."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:625
+#: ../fish/guestfish.pod:659
msgid ""
"To use a literal argument which begins with a tilde, you have to quote it, "
"eg:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:628
+#: ../fish/guestfish.pod:662
#, no-wrap
msgid ""
" echo \"~\"\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:632
+#: ../fish/guestfish.pod:666
msgid ""
"Libguestfs has some support for Linux guests encrypted according to the "
"Linux Unified Key Setup (LUKS) standard, which includes nearly all whole "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:637
+#: ../fish/guestfish.pod:671
msgid "Identify encrypted block devices and partitions using L</vfs-type>:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:639
+#: ../fish/guestfish.pod:673
#, no-wrap
msgid ""
" ><fs> vfs-type /dev/sda2\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:642
+#: ../fish/guestfish.pod:676
msgid ""
"Then open those devices using L</luks-open>. This creates a device-mapper "
"device called C</dev/mapper/luksdev>."
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:645
+#: ../fish/guestfish.pod:679
#, no-wrap
msgid ""
" ><fs> luks-open /dev/sda2 luksdev\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:648
+#: ../fish/guestfish.pod:682
msgid ""
"Finally you have to tell LVM to scan for volume groups on the newly created "
"mapper device:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:651
+#: ../fish/guestfish.pod:685
#, no-wrap
msgid ""
" vgscan\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:654
+#: ../fish/guestfish.pod:688
msgid "The logical volume(s) can now be mounted in the usual way."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:656
+#: ../fish/guestfish.pod:690
msgid ""
"Before closing a LUKS device you must unmount any logical volumes on it and "
"deactivate the volume groups by calling C<vg-activate false VG> on each "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:660
+#: ../fish/guestfish.pod:694
#, no-wrap
msgid ""
" vg-activate false /dev/VG\n"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:663
+#: ../fish/guestfish.pod:697
msgid "WINDOWS PATHS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:665
+#: ../fish/guestfish.pod:699
msgid ""
"If a path is prefixed with C<win:> then you can use Windows-style paths "
"(with some limitations). The following commands are equivalent:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:668
+#: ../fish/guestfish.pod:702
#, no-wrap
msgid ""
" file /WINDOWS/system32/config/system.LOG\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:670
+#: ../fish/guestfish.pod:704
#, no-wrap
msgid ""
" file win:/windows/system32/config/system.log\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:672
+#: ../fish/guestfish.pod:706
#, no-wrap
msgid ""
" file win:\\windows\\system32\\config\\system.log\n"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:674
+#: ../fish/guestfish.pod:708
#, no-wrap
msgid ""
" file WIN:C:\\Windows\\SYSTEM32\\conFIG\\SYSTEM.LOG\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:676
+#: ../fish/guestfish.pod:710
msgid ""
"This syntax implicitly calls C<case-sensitive-path> (q.v.) so it also "
"handles case insensitivity like Windows would. This only works in argument "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:680
+#: ../fish/guestfish.pod:714
msgid "UPLOADING AND DOWNLOADING FILES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:682
+#: ../fish/guestfish.pod:716
msgid ""
"For commands such as C<upload>, C<download>, C<tar-in>, C<tar-out> and "
"others which upload from or download to a local file, you can use the "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:686
+#: ../fish/guestfish.pod:720
#, no-wrap
msgid ""
" upload - /foo\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:688
+#: ../fish/guestfish.pod:722
msgid "reads stdin and creates from that a file C</foo> in the disk image, and:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:691
+#: ../fish/guestfish.pod:725
#, no-wrap
msgid ""
" tar-out /etc - | tar tf -\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:693
+#: ../fish/guestfish.pod:727
msgid ""
"writes the tarball to stdout and then pipes that into the external \"tar\" "
"command (see L</PIPES>)."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:696
+#: ../fish/guestfish.pod:730
msgid ""
"When using C<-> to read from stdin, the input is read up to the end of "
"stdin. You can also use a special \"heredoc\"-like syntax to read up to "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:700
+#: ../fish/guestfish.pod:734
#, no-wrap
msgid ""
" upload -<<END /foo\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:706
+#: ../fish/guestfish.pod:740
msgid ""
"Any string of characters can be used instead of C<END>. The end marker must "
"appear on a line of its own, without any preceeding or following characters "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:710
+#: ../fish/guestfish.pod:744
msgid ""
"Note that the C<-E<lt>E<lt>> syntax only applies to parameters used to "
"upload local files (so-called \"FileIn\" parameters in the generator)."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:713
+#: ../fish/guestfish.pod:747
msgid "EXIT ON ERROR BEHAVIOUR"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:715
+#: ../fish/guestfish.pod:749
msgid ""
"By default, guestfish will ignore any errors when in interactive mode "
"(ie. taking commands from a human over a tty), and will exit on the first "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:720
+#: ../fish/guestfish.pod:754
msgid ""
"If you prefix a command with a I<-> character, then that command will not "
"cause guestfish to exit, even if that (one) command returns an error."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:724
+#: ../fish/guestfish.pod:758
msgid "REMOTE CONTROL GUESTFISH OVER A SOCKET"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:726
+#: ../fish/guestfish.pod:760
msgid ""
"Guestfish can be remote-controlled over a socket. This is useful "
"particularly in shell scripts where you want to make several different "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:731
+#: ../fish/guestfish.pod:765
msgid "Start a guestfish server process using:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:733
+#: ../fish/guestfish.pod:767
#, no-wrap
msgid ""
-" eval `guestfish --listen`\n"
+" eval \"`guestfish --listen`\"\n"
"\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:735
+#: ../fish/guestfish.pod:769
msgid "and then send it commands by doing:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:737
+#: ../fish/guestfish.pod:771
#, no-wrap
msgid ""
" guestfish --remote cmd [...]\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:739
+#: ../fish/guestfish.pod:773
msgid "To cause the server to exit, send it the exit command:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:741
+#: ../fish/guestfish.pod:775
#, no-wrap
msgid ""
" guestfish --remote exit\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:743
+#: ../fish/guestfish.pod:777
msgid ""
"Note that the server will normally exit if there is an error in a command. "
"You can change this in the usual way. See section L</EXIT ON ERROR "
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:747
+#: ../fish/guestfish.pod:781
msgid "CONTROLLING MULTIPLE GUESTFISH PROCESSES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:749
+#: ../fish/guestfish.pod:783
msgid ""
"The C<eval> statement sets the environment variable C<$GUESTFISH_PID>, which "
"is how the I<--remote> option knows where to send the commands. You can "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:753
+#: ../fish/guestfish.pod:787
#, no-wrap
msgid ""
-" eval `guestfish --listen`\n"
+" eval \"`guestfish --listen`\"\n"
" pid1=$GUESTFISH_PID\n"
-" eval `guestfish --listen`\n"
+" eval \"`guestfish --listen`\"\n"
" pid2=$GUESTFISH_PID\n"
" ...\n"
" guestfish --remote=$pid1 cmd\n"
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:761
+#: ../fish/guestfish.pod:795
msgid "REMOTE CONTROL DETAILS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:763
+#: ../fish/guestfish.pod:797
msgid ""
"Remote control happens over a Unix domain socket called "
"C</tmp/.guestfish-$UID/socket-$PID>, where C<$UID> is the effective user ID "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:767
+#: ../fish/guestfish.pod:801
msgid "Guestfish client and server versions must match exactly."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:769
+#: ../fish/guestfish.pod:803
msgid "PREPARED DISK IMAGES"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:771
+#: ../fish/guestfish.pod:805
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. "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:777
+#: ../fish/guestfish.pod:811
msgid ""
"The new disk is called C<test1.img> for the first I<-N>, C<test2.img> for "
"the second and so on. Existing files in the current directory are "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:781
+#: ../fish/guestfish.pod:815
msgid ""
"The type briefly describes how the disk should be sized, partitioned, how "
"filesystem(s) should be created, and how content should be added. "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:789
+#: ../fish/guestfish.pod:823
msgid "To list the available types and any extra parameters they take, run:"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:793
+#: ../fish/guestfish.pod:827
msgid ""
"Note that the prepared filesystem is not mounted. You would usually have to "
"use the C<mount /dev/sda1 /> command or add the I<-m /dev/sda1> option."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:797
+#: ../fish/guestfish.pod:831
msgid ""
"If any I<-N> or I<--new> options are given, the guest is automatically "
"launched."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:802
+#: ../fish/guestfish.pod:836
msgid "Create a 100MB disk with an ext4-formatted partition:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:804
+#: ../fish/guestfish.pod:838
#, no-wrap
msgid ""
" guestfish -N fs:ext4\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:806
+#: ../fish/guestfish.pod:840
msgid "Create a 32MB disk with a VFAT-formatted partition, and mount it:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:808
+#: ../fish/guestfish.pod:842
#, no-wrap
msgid ""
" guestfish -N fs:vfat:32M -m /dev/sda1\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:810
+#: ../fish/guestfish.pod:844
msgid "Create a blank 200MB disk:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:812
+#: ../fish/guestfish.pod:846
#, no-wrap
msgid ""
" guestfish -N disk:200M\n"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:814
+#: ../fish/guestfish.pod:848
msgid "PROGRESS BARS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:816
+#: ../fish/guestfish.pod:850
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:820
+#: ../fish/guestfish.pod:854
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 "
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:824
+#: ../fish/guestfish.pod:858
#, no-wrap
msgid ""
" ><fs> copy-size /large-file /another-file 2048M\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:827
+#: ../fish/guestfish.pod:861
msgid ""
"The spinner on the left hand side moves round once for every progress "
"notification received from the backend. This is a (reasonably) golden "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:834
+#: ../fish/guestfish.pod:868
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>, "
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:839
+#: ../fish/guestfish.pod:873
msgid "GUESTFISH COMMANDS"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:841
+#: ../fish/guestfish.pod:875
msgid ""
"The commands in this section are guestfish convenience commands, in other "
"words, they are not part of the L<guestfs(3)> API."
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:844
+#: ../fish/guestfish.pod:878
msgid "help"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:846
+#: ../fish/guestfish.pod:880
#, no-wrap
msgid ""
" help\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:849
+#: ../fish/guestfish.pod:883
msgid ""
"Without any parameter, this lists all commands. With a C<cmd> parameter, "
"this displays detailed help for a command."
msgstr ""
# type: =head2
-#: ../fish/guestfish.pod:852
+#: ../fish/guestfish.pod:886
msgid "quit | exit"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:854
+#: ../fish/guestfish.pod:888
msgid "This exits guestfish. You can also use C<^D> key."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:856
+#: ../fish/guestfish.pod:890
msgid "@FISH_COMMANDS@"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:858
+#: ../fish/guestfish.pod:892
msgid "COMMANDS"
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:862 ../test-tool/libguestfs-test-tool.pod:83
+#: ../fish/guestfish.pod:896 ../test-tool/libguestfs-test-tool.pod:83
msgid "EXIT CODE"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:864
+#: ../fish/guestfish.pod:898
msgid ""
"guestfish returns 0 if the commands completed without error, or 1 if there "
"was an error."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:871
+#: ../fish/guestfish.pod:905
msgid "EDITOR"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:873
+#: ../fish/guestfish.pod:907
msgid ""
"The C<edit> command uses C<$EDITOR> as the editor. If not set, it uses "
"C<vi>."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:876
+#: ../fish/guestfish.pod:910
msgid "GUESTFISH_PID"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:878
+#: ../fish/guestfish.pod:912
msgid ""
"Used with the I<--remote> option to specify the remote guestfish process to "
"control. See section L</REMOTE CONTROL GUESTFISH OVER A SOCKET>."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:882
+#: ../fish/guestfish.pod:916
msgid "HEXEDITOR"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:884
+#: ../fish/guestfish.pod:918
msgid ""
"The L</hexedit> command uses C<$HEXEDITOR> as the external hex editor. If "
"not specified, the external L<hexedit(1)> program is used."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:888
+#: ../fish/guestfish.pod:922
msgid "HOME"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:890
+#: ../fish/guestfish.pod:924
msgid ""
"If compiled with GNU readline support, various files in the home directory "
"can be used. See L</FILES>."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:899
+#: ../fish/guestfish.pod:933
msgid ""
"Set C<LIBGUESTFS_DEBUG=1> to enable verbose messages. This has the same "
"effect as using the B<-v> option."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:911
+#: ../fish/guestfish.pod:945
msgid ""
"Set the path that guestfish uses to search for kernel and initrd.img. See "
"the discussion of paths in L<guestfs(3)>."
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:922
+#: ../fish/guestfish.pod:956
msgid "Set C<LIBGUESTFS_TRACE=1> to enable command traces."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:924
+#: ../fish/guestfish.pod:958
msgid "PAGER"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:926
+#: ../fish/guestfish.pod:960
msgid ""
"The C<more> command uses C<$PAGER> as the pager. If not set, it uses "
"C<more>."
msgstr ""
# type: =head1
-#: ../fish/guestfish.pod:941 ../test-tool/libguestfs-test-tool.pod:88
+#: ../fish/guestfish.pod:975 ../test-tool/libguestfs-test-tool.pod:88
msgid "FILES"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:945
+#: ../fish/guestfish.pod:979
msgid "$HOME/.guestfish"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:947
+#: ../fish/guestfish.pod:981
msgid ""
"If compiled with GNU readline support, then the command history is saved in "
"this file."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:950
+#: ../fish/guestfish.pod:984
msgid "$HOME/.inputrc"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:952
+#: ../fish/guestfish.pod:986
msgid "/etc/inputrc"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:954
+#: ../fish/guestfish.pod:988
msgid ""
"If compiled with GNU readline support, then these files can be used to "
"configure readline. For further information, please see "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:958
+#: ../fish/guestfish.pod:992
msgid "To write rules which only apply to guestfish, use:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:960
+#: ../fish/guestfish.pod:994
#, no-wrap
msgid ""
" $if guestfish\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:964
+#: ../fish/guestfish.pod:998
msgid ""
"Variables that you can set in inputrc that change the behaviour of guestfish "
"in useful ways include:"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:969
+#: ../fish/guestfish.pod:1003
msgid "completion-ignore-case (default: on)"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:971
+#: ../fish/guestfish.pod:1005
msgid ""
"By default, guestfish will ignore case when tab-completing paths on the "
"disk. Use:"
msgstr ""
# type: verbatim
-#: ../fish/guestfish.pod:974
+#: ../fish/guestfish.pod:1008
#, no-wrap
msgid ""
" set completion-ignore-case off\n"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:976
+#: ../fish/guestfish.pod:1010
msgid "to make guestfish case sensitive."
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:980
+#: ../fish/guestfish.pod:1014
msgid "test1.img"
msgstr ""
# type: =item
-#: ../fish/guestfish.pod:982
+#: ../fish/guestfish.pod:1016
msgid "test2.img (etc)"
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:984
+#: ../fish/guestfish.pod:1018
msgid ""
"When using the C<-N> or C<--new> option, the prepared disk or filesystem "
"will be created in the file C<test1.img> in the current directory. The "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:993
+#: ../fish/guestfish.pod:1027
msgid ""
"L<guestfs(3)>, L<http://libguestfs.org/>, L<virt-cat(1)>, L<virt-df(1)>, "
"L<virt-edit(1)>, L<virt-list-filesystems(1)>, L<virt-list-partitions(1)>, "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:1017 ../test-tool/libguestfs-test-tool.pod:124 ../fuse/guestmount.pod:234 ../inspector/virt-inspector.pl:598 ../tools/virt-edit.pl:370 ../tools/virt-win-reg.pl:518 ../tools/virt-df.pl:657 ../tools/virt-ls.pl:251 ../tools/virt-resize.pl:1516 ../tools/virt-list-filesystems.pl:206 ../tools/virt-cat.pl:203 ../tools/virt-tar.pl:300 ../tools/virt-rescue.pl:285 ../tools/virt-make-fs.pl:567 ../tools/virt-list-partitions.pl:273
+#: ../fish/guestfish.pod:1051 ../test-tool/libguestfs-test-tool.pod:124 ../fuse/guestmount.pod:241 ../inspector/virt-inspector.pl:598 ../tools/virt-edit.pl:370 ../tools/virt-win-reg.pl:518 ../tools/virt-df.pl:657 ../tools/virt-ls.pl:251 ../tools/virt-resize.pl:1516 ../tools/virt-list-filesystems.pl:206 ../tools/virt-cat.pl:203 ../tools/virt-tar.pl:300 ../tools/virt-rescue.pl:285 ../tools/virt-make-fs.pl:567 ../tools/virt-list-partitions.pl:273
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 "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:1022 ../test-tool/libguestfs-test-tool.pod:129 ../fuse/guestmount.pod:239 ../inspector/virt-inspector.pl:603 ../tools/virt-edit.pl:375 ../tools/virt-win-reg.pl:523 ../tools/virt-df.pl:662 ../tools/virt-ls.pl:256 ../tools/virt-resize.pl:1521 ../tools/virt-list-filesystems.pl:211 ../tools/virt-cat.pl:208 ../tools/virt-tar.pl:305 ../tools/virt-rescue.pl:290 ../tools/virt-make-fs.pl:572 ../tools/virt-list-partitions.pl:278
+#: ../fish/guestfish.pod:1056 ../test-tool/libguestfs-test-tool.pod:129 ../fuse/guestmount.pod:246 ../inspector/virt-inspector.pl:603 ../tools/virt-edit.pl:375 ../tools/virt-win-reg.pl:523 ../tools/virt-df.pl:662 ../tools/virt-ls.pl:256 ../tools/virt-resize.pl:1521 ../tools/virt-list-filesystems.pl:211 ../tools/virt-cat.pl:208 ../tools/virt-tar.pl:305 ../tools/virt-rescue.pl:290 ../tools/virt-make-fs.pl:572 ../tools/virt-list-partitions.pl:278
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 "
msgstr ""
# type: textblock
-#: ../fish/guestfish.pod:1027 ../test-tool/libguestfs-test-tool.pod:134 ../fuse/guestmount.pod:244 ../inspector/virt-inspector.pl:608 ../tools/virt-edit.pl:380 ../tools/virt-win-reg.pl:528 ../tools/virt-df.pl:667 ../tools/virt-ls.pl:261 ../tools/virt-resize.pl:1526 ../tools/virt-list-filesystems.pl:216 ../tools/virt-cat.pl:213 ../tools/virt-tar.pl:310 ../tools/virt-rescue.pl:295 ../tools/virt-make-fs.pl:577 ../tools/virt-list-partitions.pl:283
+#: ../fish/guestfish.pod:1061 ../test-tool/libguestfs-test-tool.pod:134 ../fuse/guestmount.pod:251 ../inspector/virt-inspector.pl:608 ../tools/virt-edit.pl:380 ../tools/virt-win-reg.pl:528 ../tools/virt-df.pl:667 ../tools/virt-ls.pl:261 ../tools/virt-resize.pl:1526 ../tools/virt-list-filesystems.pl:216 ../tools/virt-cat.pl:213 ../tools/virt-tar.pl:310 ../tools/virt-rescue.pl:295 ../tools/virt-make-fs.pl:577 ../tools/virt-list-partitions.pl:283
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 "
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:196
+#: ../fuse/guestmount.pod:194
+msgid "See also L<guestfish(1)/OPENING DISKS FOR READ AND WRITE>."
+msgstr ""
+
+# type: textblock
+#: ../fuse/guestmount.pod:198
msgid "Enable SELinux support for the guest."
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:200
+#: ../fuse/guestmount.pod:202
msgid "Enable verbose messages from underlying libguestfs."
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:204
+#: ../fuse/guestmount.pod:206
msgid "Display the program version and exit."
msgstr ""
+# type: textblock
+#: ../fuse/guestmount.pod:210
+msgid ""
+"This option does nothing at the moment. See L<guestfish(1)/OPENING DISKS "
+"FOR READ AND WRITE>."
+msgstr ""
+
# type: =item
-#: ../fuse/guestmount.pod:206
+#: ../fuse/guestmount.pod:213
msgid "B<-x> | B<--trace>"
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:208
+#: ../fuse/guestmount.pod:215
msgid "Trace libguestfs calls."
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:210
+#: ../fuse/guestmount.pod:217
msgid "This also stops the daemon from forking into the background."
msgstr ""
# type: textblock
-#: ../fuse/guestmount.pod:216
+#: ../fuse/guestmount.pod:223
msgid ""
"L<guestfish(1)>, L<virt-inspector(1)>, L<virt-cat(1)>, L<virt-edit(1)>, "
"L<virt-tar(1)>, L<guestfs(3)>, L<http://libguestfs.org/>, "
# type: =item
#: ../tools/virt-rescue.pl:175
-msgid "B<--network MB>"
+msgid "B<--network>"
msgstr ""
# type: textblock
"Project-Id-Version: libguestfs.master\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: \n"
"Last-Translator: Héctor Daniel Cabrera <logan@fedoraproject.org>\n"
"Language-Team: Fedora Spanish <trans-es@lists.fedoraproject.org>\n"
" -V|--version Muestra la versión y finaliza\n"
"Para mayor información, vea la página man %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: falló al crear manipulador\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID no era un número: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
"%s: remote: $GUESTFISH_PID debe estar definido con el PID del proceso "
"remoto\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: opción extensa desconocida: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: sólo puede ofrecerse un parámetro -f\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr ""
"%s: no es posible utilizar al mismo tiempo las opciones --listen y --remote\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: parámetros extra de la línea de comando con marca --listen\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr ""
"%s no es posible utilizar al mismo tiempo las opciones --listen y --file\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
"guestfish: no es posible acceder a la base de datos termcap o terminfo.\n"
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr "guestfish: el tipo de terminal \"%s\" no ha sido definido.\n"
-#: fish/fish.c:625
+#: fish/fish.c:630
#, c-format
msgid ""
"\n"
" 'quit' para abandonar la shell\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: doble cuota no finalizada\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr ""
"%s: los argumentos del comando no están separados por un espacio en blanco\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: cuota simple no finalizada\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: error interno analizando cadena en '%s'\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: demasiados argumentos\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: comando vacío en la línea de comando\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "muestra una lista de comandos o asistencia sobre un comando"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "salir de guestfish"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - abandonar guestfish\n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr "%s comando no conocido, utilice -h para listar todos los comandos\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"Para obtener una lista de comandos: guestfish -h\n"
"Para obtener la documentación completa: man guestfish\n"
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "Cuota problemática en la cadena \"%s\"\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr "Ingrese la llave o la frase de acceso (\"%s\"): "
" -v|--verbose Mensajes detallados\n"
" -V|--version Muestra la versión y finaliza\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: debe poseer al menos una opción -a, y al menos una opción -m\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr ""
msgid "{filename}: could not read initrd format"
msgstr "{filename}: no es posible leer formato initrd"
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"no es posible hallar un supermin de libguestfs adecuado, o algún dispositivo "
"ordinario en LIBGUESTFS_PATH (ruta de búsqueda: %s)"
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "crea un directorio temporal"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "crea un directorio temporal"
-#: src/appliance.c:517
+#: src/appliance.c:522
msgid "external command failed, see earlier error messages"
msgstr "falló el comando externo, vea mensajes de errores anteriores"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: error: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "no se pudo analizar el tamaño de arranque"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr "no es posible resolver %%SYSTEMROOT%% de Windows"
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "no se pudo analizar el tamaño de arranque"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr "no existen datos de inspección: invoque primero a guestfs_inspect_os"
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"%s: no se ha encontrado un dispositivo raíz: sólo invoque esta función con "
"un dispositivo raíz previamente obtenido mediante guestfs_inspect_os"
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr ""
"Project-Id-Version: libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-02-02 13:45+0530\n"
"Last-Translator: Sweta Kothari <swkothar@redhat.com>\n"
"Language-Team: Gujarati\n"
" -V|--version આવૃત્તિને દર્શાવો અને બહાર નીકળો\n"
"વધારે જાણકારી માટે, મુખ્યપાનું %s(1) ને જુઓ.\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: હેન્ડલ ને બનાવવાનું નિષ્ફળ\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID એ નંબર ન હતો: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr "%s: દૂરસ્થ: $GUESTFISH_PID એ દૂરસ્થ પ્રક્રિયાનાં PID ને સુયોજિત કરવુ જ પડશે\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: અજ્ઞાત લાંબો વિકલ્પ: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: ફક્ત એક -f પરિમાણને આપી શકાય છે\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: સરખા સમયે --listen અને --remote વિકલ્પોને વાપરી શકાતા નથી\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: --listen ફ્લેગ સાથે આદેશ વાક્ય પર વધારાનાં પરિમાણો\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: સરખા સમયે --listen અને --file વિકલ્પોને વાપરી શકાતુ નથી\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, fuzzy, c-format
msgid ""
"\n"
" શેલને બહાર નીકળવા માટે 'quit'\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: અંત ન બમણા અવતરણચિહ્નો \n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: આદેશ દલીલો એ ખાલી જગ્યા દ્દારા અલગ થયેલ નથી\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: અંત ન આવેલ એક અવતરણ ચિહ્ન\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: આંતરિક ભૂલ '%s' પર શબ્દમાળાનું પદચ્છેદન કરી રહી છે\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: ઘણીબધી દલીલો છે\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: આદેશ વાક્ય પર ખાલી આદેશ\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "આદેશોની યાદીને દર્શાવો અથવા આદેશ પર મદદ "
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "guestfish માંથી બહાર નીકળો"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" મદદ\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - guestfish માંથી બહાર નીકળો\n"
" બહાર નીકળો\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr "%s: આદેશ જાણીતો નથી, બધા આદેશોની યાદી માટે -h ને વાપરો\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "શબ્દમાળા \"%s\" માં દૂર થતો અવતરણચિહ્ન\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -v|--verbose વર્બોસ સંદેશાઓages\n"
" -V|--version આવૃત્તિને દર્શાવોsઅને બહાર નીકળોexit\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: ઓછામાં ઓછુ એક -a અને -m વિકલ્પ પર હોવુ જ જોઇએ\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s: યજમાન ફાઇલસિસ્ટમમાં માઉન્ટબિંદુને સ્પષ્ટ કરવુ જ પડશે\n"
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "કામચલાઉ ડિરેક્ટરીને બનાવો"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "કામચલાઉ ડિરેક્ટરીને બનાવો"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch નિષ્ફળ, પહેલાનાં ભૂલ સંદેશાઓને જૂઓ"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: ભૂલ: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "વિશિષ્ટ માપ '%s' નું પદચ્છેદન કરી શકાતુ નથી\n"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "વિશિષ્ટ માપ '%s' નું પદચ્છેદન કરી શકાતુ નથી\n"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr "qemu ઉપપ્રક્રિયા શરૂ થાય પછી આદેશ વાક્યને બદલી શકાતુ નથી"
"Project-Id-Version: libguestfs.master.libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-02-16 12:57+0530\n"
"Last-Translator: Rajesh Ranjan <rranjan@redhat.com>\n"
"Language-Team: Hindi <Red Hat>\n"
" -V|--version Display version and exit\n"
"For more information, see the manpage %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: नियंत्रण बनाने में विफल\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID was not a number: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: unknown long option: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: only one -f parameter can be given\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: cannot use --listen and --remote options at the same time\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: extra parameters on the command line with --listen flag\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: cannot use --listen and --file options at the same time\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, fuzzy, c-format
msgid ""
"\n"
" 'quit' को शेल को छोड़ने के लिए\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: unterminated double quote\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: कमांड तर्क खाली स्थान से अलग नहीं\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: unterminated single quote\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: internal error parsing string at '%s'\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: too many arguments\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: empty command on command line\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "कमांड पर मदद या कमांड की सूची दिखाएँ"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "quit guestfish"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - quit guestfish\n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr "%s: command not known, use -h to list all commands\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "स्ट्रिंग में \"%s\" रवअवे उद्धरण\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: must have at least one -a and at least one -m option\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s: तुम्हें मेजबान फाइल सिस्टम में कोई माउंटप्वाइंट को जरूर निर्दिष्ट करना चाहिए\n"
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "एक अस्थायी निर्देशिका बनाएँ"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "एक अस्थायी निर्देशिका बनाएँ"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch विफल, पहले की त्रुटि संदेश देखें"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: error: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "आकार विशिष्टता '%s' विश्लेषित नहीं कर सका\n"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "आकार विशिष्टता '%s' विश्लेषित नहीं कर सका\n"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr "कमांड लाइन को qemu उप प्रक्रिया के लॉन्च के बाद बदला नहीं जा सकता है"
"Project-Id-Version: libguestfs 1.0.83\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-02-24 11:56+0530\n"
"Last-Translator: Shankar Prasad <svenkate@redhat.com>\n"
"Language-Team: kn-IN <>\n"
" -V|--version Display version and exit\n"
"For more information, see the manpage %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ಹ್ಯಾಂಡಲ್ ಅನ್ನು ನಿರ್ಮಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID ಒಂದು ಸಂಖ್ಯೆಯಾಗಿಲ್ಲ: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr "%s: remote: $GUESTFISH_PID ಅನ್ನು ದೂರಸ್ಥ ಪ್ರಕ್ರಿಯೆಯ PID ಗೆ ಹೊಂದಿಸಬೇಕು\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: ಗೊತ್ತಿರದ ಉದ್ದನೆಯ ಆಯ್ಕೆ: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: ಕೇವಲ ಒಂದು -f ನಿಯತಾಂಕವನ್ನು ಒದಗಿಸಬಹುದು\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: --listen ಹಾಗು --remote ಆಯ್ಕೆಗಳನ್ನು ಒಟ್ಟಿಗೆ ಬಳಸುವಂತಿಲ್ಲ\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: --listen ಫ್ಲಾಗ್ಗಾಗಿ ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ಹೆಚ್ಚುವರಿ ನಿಯತಾಂಕಗಳು\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: --listen ಹಾಗು --file ಆಯ್ಕೆಗಳನ್ನು ಒಟ್ಟಿಗೆ ಬಳಸುವಂತಿಲ್ಲ\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, fuzzy, c-format
msgid ""
"\n"
" ಶೆಲ್ನಿಂದ ನಿರ್ಗಮಿಸಲು 'quit' ಅನ್ನು ಬಳಸಿ\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: ಅಂತ್ಯಗೊಳಿಸದೆ ಇರುವ ಜೋಡಿ ಉದ್ಧರಣ ಚಿಹ್ನೆ(ಕೋಟ್)\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: ಆಜ್ಞೆಯ ಆರ್ಗುಮೆಂಟ್ಗಳ ನಡುವೆ ಖಾಲಿ ಜಾಗಗಳು ಇರುವಂತಿಲ್ಲ\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: ಅಂತ್ಯಗೊಳಿಸದೆ ಇರುವ ಒಂದೆ ಒಂದು ಉದ್ಧರಣ ಚಿಹ್ನೆ(ಕೋಟ್)\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: '%s' ನಲ್ಲಿ ವಾಕ್ಯವನ್ನು ಪಾರ್ಸ್ ಮಾಡುವಲ್ಲಿ ಆಂತರಿಕ ದೋಷ\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: ಅಗತ್ಯಕ್ಕಿಂತಲೂ ಹೆಚ್ಚು ಚರಪರಿಮಾಣಗಳು (ಆರ್ಗ್ಯೂಮೆಂಟ್)\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: ಆಜ್ಞಾ ಸಾಲಿನಲ್ಲಿ ಯಾವುದೆ ಆಜ್ಞೆ ಇಲ್ಲ\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "ಆಜ್ಞೆಗಳ ಒಂದು ಪಟ್ಟಿಯನ್ನು ತೋರಿಸು ಅಥವ ಒಂದು ಆಜ್ಞೆಯ ನೆರವನ್ನು ತೋರಿಸು"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "guestfish ಇಂದ ನಿರ್ಗಮಿಸು"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - guestfish ಇಂದ ನಿರ್ಗಮಿಸು \n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr "%s: ಆಜ್ಞೆಯು ತಿಳಿದಿಲ್ಲ, ಎಲ್ಲಾ ಆಜ್ಞೆಗಳ ಪಟ್ಟಿಯನ್ನು ತೋರಿಸಲು -h ಉಪಯೋಗಿಸಿ\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "\"%s\" ಎಂಬ ವಾಕ್ಯದಲ್ಲಿ ರನ್ಅವೆ ಕೋಟ್\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -v|--verbose ವರ್ಬೋಸ್ ಸಂದೇಶಗಳು\n"
" -V|--version ಆವೃತ್ತಿಯನ್ನು ತೋರಿಸಿ ನಿರ್ಗಮಿಸು\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: ಕನಿಷ್ಟ ಒಂದು -a ಹಾಗು ಕನಿಷ್ಟ ಒಂದು -m ಆಯ್ಕೆಯನ್ನು ಹೊಂದಿರಬೇಕು\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s: ಆತಿಥೇಯ ಕಡತವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಒಂದು ಆರೋಹಣಾ ತಾಣವನ್ನು ನೀವು ಸೂಚಿಸಬೇಕು\n"
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "ಒಂದು ತಾತ್ಕಾಲಿಕ ಕೋಶವನ್ನು ರಚಿಸು"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "ಒಂದು ತಾತ್ಕಾಲಿಕ ಕೋಶವನ್ನು ರಚಿಸು"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch ವಿಫಲಗೊಂಡಿದೆ, ಹಿಂದಿನ ದೋಷ ಸಂದೇಶಗಳನ್ನು ನೋಡಿ"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: ದೋಷ: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "ಗಾತ್ರದ ವಿಶಿಷ್ಟತೆ '%s' ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ \n"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "ಗಾತ್ರದ ವಿಶಿಷ್ಟತೆ '%s' ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ \n"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr "qemu ಉಪಪ್ರಕ್ರಿಯೆಯನ್ನು ಆರಂಭಿಸಿದ ನಂತರ ಆಜ್ಞಾ ಸಾಲನ್ನು ಬದಲಾಯಿಸುವಂತಿಲ್ಲ"
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: libguestfs 1.6.1\n"
+"Project-Id-Version: libguestfs 1.6.2\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"For more information, see the manpage %s(1).\n"
msgstr ""
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr ""
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr ""
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr ""
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr ""
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr ""
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr ""
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr ""
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr ""
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, c-format
msgid ""
"\n"
"\n"
msgstr ""
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr ""
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr ""
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr ""
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr ""
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr ""
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr ""
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr ""
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr ""
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help\n"
msgstr ""
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
" quit\n"
msgstr ""
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr ""
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr ""
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -x|--trace Trace guestfs API calls\n"
msgstr ""
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr ""
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr ""
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, c-format
msgid "failed to create temporary cache directory: %m"
msgstr ""
-#: src/appliance.c:441
+#: src/appliance.c:446
#, c-format
msgid "error renaming temporary cache directory: %m"
msgstr ""
-#: src/appliance.c:517
+#: src/appliance.c:522
msgid "external command failed, see earlier error messages"
msgstr ""
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr ""
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+msgid "could not parse /etc/fstab or empty file"
+msgstr ""
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, c-format
+msgid "could not parse integer in version number: %s"
+msgstr ""
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr ""
"Project-Id-Version: libguestfs.master.libguestfs.ml\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-02-02 18:35+0530\n"
"Last-Translator: Ani Peter | അനി പീറ്റര് <apeter@redhat.com>\n"
"Language-Team: Swathanthra Malayalam Computing | സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ് <smc-"
" -V|--version Display version and exit\n"
"For more information, see the manpage %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ഹാന്ഡില് ഉണ്ടാക്കുന്നതില് പരാജയപ്പെട്ടു\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID ഒരു നംബറല്ല: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr "%s: remote: റിമോട്ട് പ്രക്രിയയുടെ PID-ലേക്ക് $GUESTFISH_PID സജ്ജമാക്കേണം\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: അപരിചിതമായ ലോങ് ഉപാധി: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: ഒരു -f പരാമീറ്റര് മാത്രമേ പാടുള്ളൂ\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: ഒരേ സമയത്തു് --listen, --remote എന്നീ ഉപാധികള് ഉപയോഗിക്കുവാന് സാധ്യമല്ല\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: --listen ഫ്ലാഗിനൊപ്പം കമാന്ഡ് ലൈനില് അധികമായ പരാമീറ്ററുകള്\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: ഒരേ സമയത്തു് --listen, --file എന്നീ ഉപാധികള് ഉപയോഗിക്കുവാന് സാധ്യമല്ല\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, fuzzy, c-format
msgid ""
"\n"
" ഷെല്ലില് നിന്നും പുറത്തു് കടക്കുന്നതിനായി 'quit'\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: അപൂര്ണ്ണമായ ഡബിള് കോട്ട്\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: കമാന്ഡ് ആര്ഗ്യുമെന്റുകള് വൈറ്റ്സ്പെയിസ് ഉപയോഗിച്ചു് വേര്തിരിച്ചിട്ടില്ല\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: അപൂര്ണ്ണമായ സിംഗിള് കോട്ട്\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: '%s'-ല് സ്ട്രിങ് പാഴ്സ് ചെയ്യുമ്പോള് ഇന്റേര്ണല് പിശക്\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: അനവധി ആര്ഗ്യുമെന്റുകള്\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: കമാന്ഡ് ലൈനില് കാലിയായ കമാന്ഡ്\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "കമാന്ഡുകളുടെ ഒരു പട്ടിക അല്ലെങ്കില് ഒരു കമാന്ഡിനുള്ള സഹായം കാണിക്കുക"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "guestfish-ല് നിന്നും പുറത്തു് കടക്കുക"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - quit guestfish\n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr "%s: കമാന്ഡ് അപരിചിതം, എല്ലാ കമാന്ഡുകളും ലഭ്യമാക്കുന്നതിനായി -h ഉപയോഗിക്കുക\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "Runaway quote in string \"%s\"\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: കുറഞ്ഞതു് ഒരു -a ഉപാധിയും ഒരു -m ഉപാധിയും ആവശ്യമുണ്ടു്\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s: ഹോസ്റ്റ് ഫയല്സിസ്റ്റത്തില് ഒരു മൌണ്ട് പോയിന്റ് നല്കണം\n"
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "ഒരു താല്ക്കാലിക ഡയറക്ടറി ഉണ്ടാക്കുക"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "ഒരു താല്ക്കാലിക ഡയറക്ടറി ഉണ്ടാക്കുക"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch പരാജയപ്പെട്ടു, മുമ്പുള്ള പിശക് സന്ദേശങ്ങള് കാണുക"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: പിശക്: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "വ്യാപ്തിയുടെ വിവരണം '%s' പാഴ്സ് ചെയ്യുവാന് സാധ്യമായില്ല\n"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "വ്യാപ്തിയുടെ വിവരണം '%s' പാഴ്സ് ചെയ്യുവാന് സാധ്യമായില്ല\n"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr "qemu ഉപപ്രക്രിയ വിന്യസിച്ചശേഷം കമാന്ഡ് ലൈനില് മാറ്റം വരുത്തുവാന് സാധ്യമല്ല"
"Project-Id-Version: mr\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-02-03 19:10+0530\n"
"Last-Translator: Sandeep Shedmake <sshedmak@redhat.com>\n"
"Language-Team: Marathi <fedora-trans-mr@redhat.com>\n"
" -V|--version Display version and exit\n"
"For more information, see the manpage %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: हँडल निर्माण करण्यास अशक्य\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID क्रमांक प्रमाणे आढळले नाही: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr "%s: रिमोट: $GUESTFISH_PID यांस रिमोट कार्याच्या PID करीता सेट केले पाहिजे\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: अपरिचीत लाँग पर्याय: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: फक्त एकच -f घटक दिले जाऊ शकते\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: --listen व --remote पर्याय एकाच वेळी वापरणे अशक्य\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: --listen फ्लॅगसह आदेश ओळीवरील अगाऊ घटके\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: --listen व --file पर्यायचा वापर एकाचवेळी करणे अशक्य\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, fuzzy, c-format
msgid ""
"\n"
" शेल पासून बाहेर पडण्यासाठी 'quit' करा\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: न ओळखलेले डबल क्वोट\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: आदेश घटके वाईटस्पेस द्वारे विभाजीत नाही\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: न ओळखलेले सींगल क्वोट\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: '%s' येथील अक्षरसंच वाचतेवेळी आंतरीक त्रुटी आढळली\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: खूप जास्त घटके आढळले\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: आदेश ओळवर रिकामे आदेश आढळले\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "आदेश सूची किंवा आदेशकरीता मदत दाखवा"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "guestfish पासून बाहेर पडा"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - guestfish पासून बाहेर पडा\n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr "%s: आदेश परिचीत नाही, सर्व आदेश दाखवण्यासाठी -h याचा वापर करा\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "\"%s\" अक्षरमाळामध्ये रनअव्हे शब्द आढळले\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: किमान एक -a व किमान एक -m पर्याय असायला हवे\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s: यजमान फाइलप्रणालीत तुम्ही माऊंटपॉईंट निर्देशीत करायला हवे\n"
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "तात्पूर्ती डिरेक्ट्री निर्माण करा"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "तात्पूर्ती डिरेक्ट्री निर्माण करा"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch अपयशी, पूर्वीचे त्रुटी संदेश पहा"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: त्रुटी: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "आकार संरचना '%s' वाचणे अशक्य\n"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "आकार संरचना '%s' वाचणे अशक्य\n"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr "qemu उपकार्य सुरू केल्यावर आदेश ओळ बदलणे अशक्य आहे"
"Project-Id-Version: libguestfs 1.5.4\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-09-02 15:28+0200\n"
"Last-Translator: Geert Warrink <geert.warrink@onsnet.nu>\n"
"Language-Team: Fedora\n"
" -V|--version Laat versie zien en sluit af\n"
"Voor meer informatie, bekijk de man pagina %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: hendel aanmaken mislukte\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID was geen getal: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
"%s: remote: $GUESTFISH_PID moet ingesteld worden op de PID van het proces op "
"afstand\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: onbekende lange optie: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: er kan slechts een -f parameter opgegeven worden\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr ""
"%s: de --listen en --remote opties kunnen niet tegelijkertijd gebruikt "
"worden\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: extra parameters op de commando regel met --listen vlag\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr ""
"%s: de --listen en --file opties kunnen niet tegelijkertijd gebruikt worden\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, c-format
msgid ""
"\n"
" 'quit' om de shell te verlaten\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: niet afgesloten dubbel aanhalingsteken\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: commando argumenten niet gescheiden door spaties\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: niet afgesloten enkel aanhalingsteken\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: interne fout bij ontleden van tekenreeks op '%s'\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: teveel argumenten\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: leeg commando op commando regel\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "laat een lijst van commando's of hulp over een commando zien"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "sluit guestfish af"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - sluit guestfish af\n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr "%s: commando niet bekend, gebruik -h om alle commando's te tonen\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"Voor een lijst commando's: guestfish -h\n"
"Voor complete documentatie: man guestfish\n"
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "Los aanhalingsteken in tekenreeks \"%s\"\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr "Vul sleutel of wachtzin in (\"%s\"): "
" -v|--verbose Breedsprakige boodschappen\n"
" -V|--version Laat versie zien en sluit af\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: moet tenminste een -a en tenminste een -m optie hebben\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr ""
msgid "{filename}: could not read initrd format"
msgstr "{filename}: kon initrd formaat niet lezen"
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"kon geen geschikte libguestfs supermin of gewoon toestel vinden op "
"LIBGUESTFS_PATH (zoek pad: %s)"
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "maak een tijdelijke map aan"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "maak een tijdelijke map aan"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch mislukte, bekijk de eerdere fout boodschap"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: foutr: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+msgid "could not parse /etc/fstab or empty file"
+msgstr ""
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr "Kan Windows %%SYSTEMROOT%% niet oplossen"
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, c-format
+msgid "could not parse integer in version number: %s"
+msgstr ""
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr "geen inspectie data: roep eerst guestfs_inspect_os aan"
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"%s: root apparaat niet gevonden: roep deze functie alleen aan met een root "
"apparaat eerder teruggegeven door guestfs_inspect_os"
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr ""
"Project-Id-Version: libguestfs.master.or\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-02-01 18:17+0530\n"
"Last-Translator: Manoj Kumar Giri <mgiri@redhat.com>\n"
"Language-Team: Oriya <oriya-it@googlegroups.com>\n"
" -V|--version ସଂସ୍କରଣ ଦର୍ଶାନ୍ତୁ ଏବଂ ପ୍ରସ୍ଥାନ କରନ୍ତୁ\n"
"ଅଧିକ ସୂଚନା ପାଇଁ, man ପୃଷ୍ଠା ଦେଖନ୍ତୁ %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ନିୟନ୍ତ୍ରଣ ପ୍ରସ୍ତୁତ କରିବାରେ ବିଫଳ ହୋଇଛି\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID ଗୋଟିଏ ସଂଖ୍ୟା ନୁହଁ: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr "%s: ସୁଦୂର: $GUESTFISH_PID ନିଶ୍ଚିତ ଭାବରେ PID ରେ ସୁଦୂର ପଦ୍ଧତିରେ ସେଟ ହୋଇଛି\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: ଅଜଣା ଲମ୍ବା ବିକଳ୍ପ: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: କେବଳ ଗୋଟିଏ -f ପ୍ରାଚଳ ଦିଆହୋଇଛି\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: --listen ଏବଂ --remote ବିକଳ୍ପଗୁଡ଼ିକୁ ଏକ ସମୟରେ ବ୍ୟବହାର କରିପାରିବେ ନାହିଁ\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: ନିର୍ଦ୍ଦେଶ ନାମାରେ --listen ସୂଚକ ସହିତ ଅତିରିକ୍ତ ପ୍ରଚଳଗୁଡ଼ିକ\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: --listen ଏବଂ --file ବିକଳ୍ପଗୁଡ଼ିକୁ ଏକା ସମୟରେ ବ୍ୟବହାର କରିପାରିବେ ନାହିଁ\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, fuzzy, c-format
msgid ""
"\n"
" 'quit' shellରୁ ପ୍ରସ୍ଥାନ କରିବା ପାଇଁ\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: ସମାପ୍ତ ହୋଇନଥିବା ଦ୍ୱିତୀୟ କୋଟ\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: ନିର୍ଦ୍ଦେଶ ସ୍ୱତନ୍ତ୍ରଚରଗୁଡ଼ିକ ଖାଲିସ୍ଥାନ ଦ୍ୱାରା ପୃଥକ ହୋଇନାହିଁ\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: ଅସମାପ୍ତ ଏକକ କୋଟ\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: '%s' ରେ ଆଭ୍ୟନ୍ତରୀଣ ତ୍ରୁଟି ବିଶ୍ଳେଷଣ ବାକ୍ୟଖଣ୍ଡ\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: ଅତ୍ୟଧିକ ସ୍ୱତନ୍ତ୍ରଚର\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: ନିର୍ଦ୍ଦେଶ ନାମରେ ଖାଲି ନିର୍ଦ୍ଦେଶ\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "ନିର୍ଦ୍ଦେଶମାନଙ୍କର ଗୋଟିଏ ତାଲିକା ଦର୍ଶାନ୍ତୁ ଅଥବା ଗୋଟିଏ ନିର୍ଦ୍ଦେଶରେ ସହାୟତା ଦେଖାନ୍ତୁ"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "guestfish ରୁ ପ୍ରସ୍ଥାନ କରନ୍ତୁ"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" ସହାୟତା cmd\n"
" ସହାୟତା\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"ପ୍ରସ୍ଥାନ କରନ୍ତୁ - guestfish ରୁ ପ୍ରସ୍ଥାନ କରନ୍ତୁ\n"
" ପ୍ରସ୍ଥାନ କରନ୍ତୁ\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr ""
"%s: ନିର୍ଦ୍ଦେଶଟି ପରିଚିତ ନୁହଁ, ସମସ୍ତ ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକୁ ତାଲିକାଭୁକ୍ତ କରିବା ପାଇଁ -h କୁ ବ୍ୟବହାର କରନ୍ତୁ\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "ବାକ୍ୟଖଣ୍ଡ \"%s\" ରେ ପଳାୟନ ଟିପ୍ପଣୀ\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -v|--verbose ଭର୍ବୋଜ ସନ୍ଦେଶଗୁଡ଼ିକ\n"
" -V|--version ସଂସ୍କରଣ ଦର୍ଶାନ୍ତୁ ଏବଂ ପ୍ରସ୍ଥାନ କରନ୍ତୁ\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: ନିଶ୍ଚିତ ଭାବରେ ଗୋଟିଏ -a ଏବଂ ଅତିକମରେ ଗୋଟିଏ -m ବିକଳ୍ପ ଥିବା ଉଚିତ\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s: ଆପଣଙ୍କୁ ହୋଷ୍ଟ ଫାଇଲତନ୍ତ୍ରରେ ଗୋଟିଏ ସ୍ଥାପନ ବିନ୍ଦୁ ଉଲ୍ଲେଖ କରିବାକୁ ହେବ\n"
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "ଗୋଟିଏ ଅସ୍ଥାୟୀ ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରନ୍ତୁ"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "ଗୋଟିଏ ଅସ୍ଥାୟୀ ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରନ୍ତୁ"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch ବିଫଳ ହୋଇଛି, ପୂର୍ବର ତ୍ରୁଟି ସନ୍ଦେଶଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: ତ୍ରୁଟି: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "ଆକାର ବିଶେଷ ଦ୍ରଷ୍ଟବ୍ୟ '%s' କୁ ବିଶ୍ଳେଷଣ କରିପାରିଲା ନାହିଁ\n"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "ଆକାର ବିଶେଷ ଦ୍ରଷ୍ଟବ୍ୟ '%s' କୁ ବିଶ୍ଳେଷଣ କରିପାରିଲା ନାହିଁ\n"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr "qemu ଉପପଦ୍ଧତି ଆରମ୍ଭ ହେବା ପରେ ନିର୍ଦ୍ଦେଶନାମାକୁ ପରିବର୍ତ୍ତନ କରିପାରିବେ ନାହିଁ"
"Project-Id-Version: libguestfs 1.0.81\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-01-29 12:50+0530\n"
"Last-Translator: Jaswinder Singh <jsingh@redhat.com>\n"
"Language-Team: Punjabi/Panjabi <kde-i18n-doc@kde.org>\n"
" -V|--version Display version and exit\n"
"For more information, see the manpage %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ਹੈਂਡਲ ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID was not a number: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: unknown long option: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: only one -f parameter can be given\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: cannot use --listen and --remote options at the same time\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: extra parameters on the command line with --listen flag\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: cannot use --listen and --file options at the same time\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, fuzzy, c-format
msgid ""
"\n"
" 'quit' to quit the shell\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: unterminated double quote\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: ਕਮਾਂਡ ਆਰਗੂਮੈਂਟ ਸਪੇਸ ਨਾਲ ਵੱਖ ਨਹੀਂ ਕੀਤਾ\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: unterminated single quote\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: internal error parsing string at '%s'\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: too many arguments\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: empty command on command line\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "ਕਮਾਂਡਾਂ ਦੀ ਸੂਚੀ ਜਾਂ ਕਮਾਂਡ ਬਾਰੇ ਸਹਾਇਤਾ ਵੇਖਾਓ"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "quit guestfish"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - quit guestfish\n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr "%s: command not known, use -h to list all commands\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "ਸਤਰ \"%s\" ਵਿੱਚ ਗਲਤ ਸ਼ਬਦਾਵਲੀ ਹੈ\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: must have at least one -a and at least one -m option\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s: ਤੁਹਾਨੂੰ ਹੋਸਟ ਫਾਇਲ-ਸਿਸਟਮ ਵਿੱਚ ਮਾਊਂਟਪੁਆਂਇਟ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ\n"
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "ਆਰਜੀ ਡਾਇਰੈਕਟਰੀ ਬਣਾਓ"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "ਆਰਜੀ ਡਾਇਰੈਕਟਰੀ ਬਣਾਓ"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch ਫੇਲ ਹੋਇਆ, ਪਹਿਲੇ ਗਲਤੀ ਸੁਨੇਹੇ ਵੇਖੋ"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: error: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "ਅਕਾਰ ਨਿਰਧਾਰਨ '%s' ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਦਾ\n"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "ਅਕਾਰ ਨਿਰਧਾਰਨ '%s' ਨੂੰ ਪਾਰਸ ਨਹੀਂ ਕਰ ਸਕਦਾ\n"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr "ਕਮਾਂਡ ਲਾਈਨ ਨੂੰ qemu ਅਧੀਨ-ਕਾਰਜ ਚਾਲੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸੋਧਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-10-23 13:41+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <trans-pl@lists.fedoraproject.org>\n"
" -V|--version Wyświetla wersję i kończy działanie\n"
"Aby dowiedzieć się więcej, proszę zobaczyć stronę podręcznika %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: utworzenie programu obsługi nie powiodło się\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID nie był liczbą: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr ""
"%s: zdalnie: $GUESTFISH_PID musi być ustawiony na PID zdalnego procesu\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: nieznana długa opcja: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: można podać tylko jeden parametr -f\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: nie można używać opcji --listen i --remote w tym samym czasie\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: dodatkowe parametry wiersza poleceń za pomocą flagi --listen\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: nie można używać opcji --listen i --file w tym samym czasie\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
"guestfish: nie można uzyskać dostępu do bazy danych termcap lub terminfo.\n"
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr "guestfish: typ terminala \"%s\" nie jest określony.\n"
-#: fish/fish.c:625
+#: fish/fish.c:630
#, c-format
msgid ""
"\n"
" \"quit\", aby zakończyć powłokę\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: niezakończony podwójny cudzysłów\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: parametry poleceń nie są oddzielone spacjami\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: niezakończony pojedynczy cudzysłów\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: wewnętrzny błąd przetwarzania ciągu \"%s\"\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: za dużo parametrów\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: puste polecenie wiersza poleceń\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "wyświetla listę poleceń lub pomoc polecenia"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "kończy działanie programu guestfish"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help polecenie\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - kończy działanie programu guestfish\n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr ""
"%s: nieznane polecenie, należy użyć -h, aby wyświetlić listę wszystkich "
"poleceń\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"Lista poleceń: guestfish -h\n"
"Pełna dokumentacja: man guestfish\n"
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "Cytat ucieczki w ciągu \"%s\"\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr "Proszę podać klucz lub hasło (\"%s\"): "
" -v|--verbose Wyświetla więcej komunikatów\n"
" -V|--version Wyświetla wersję i kończy działanie\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: musi posiadać co najmniej jedną opcję -a i co najmniej jedną -m\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s: należy podać punkt montowania w systemie plików gospodarza\n"
msgid "{filename}: could not read initrd format"
msgstr "{filename}: nie można odczytać formatu initrd"
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"nie można odnaleźć żadnego przyrządu biblioteki libguestfs typu \"supermin\" "
"lub \"ordinary\" w LIBGUESTFS_PATH (ścieżka wyszukiwania: %s)"
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "tworzy katalog tymczasowy"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "tworzy katalog tymczasowy"
-#: src/appliance.c:517
+#: src/appliance.c:522
msgid "external command failed, see earlier error messages"
msgstr ""
"zewnętrzne polecenie nie powiodło się, proszę zobaczyć wcześniejsze "
"komunikaty błędów"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: błąd: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "nie można przetworzyć rozmiaru partycji startowej"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr "nie można rozwiązać %%SYSTEMROOT%% systemu Windows"
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "nie można przetworzyć rozmiaru partycji startowej"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr "brak danych badania: najpierw należy wywołać guestfs_inspect_os"
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"%s: nie odnaleziono urządzenia root: należy wywoływać tę funkcję tylko z "
"urządzeniem root poprzednio zwróconym przez guestfs_inspect_os"
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr ""
"Project-Id-Version: libguestfs 1.0.81\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-01-29 13:38+0530\n"
"Last-Translator: I. Felix <ifelix@redhat.com>\n"
"Language-Team: ta_IN <kde-i18n-doc@kde.org>\n"
" -V|--version Display version and exit\n"
"For more information, see the manpage %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: ஹாண்டிலை உருவாக்க முடியவில்லை\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID ஆனது எண் இல்லை: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr "%s: remote: $GUESTFISH_PID க்கு தொலை செயற்பாட்டைPID க்கு அமை\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: தெரியாத நீண்ட விருப்பம்: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: ஒரே ஒரு -f அளவுரு கொடுக்கப்படலாம்\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: cannot use --listen and --remote options at the same time\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: extra parameters on the command line with --listen flag\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: --listen மற்றும் --file விருப்பங்களை அதே நேரத்தில் பயன்படுத்த முடியாது\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, fuzzy, c-format
msgid ""
"\n"
" 'quit' to quit the shell\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: unterminated double quote\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: கட்டளை விவாதங்கள் வொயிட்ஸ்பேஸ்ஸால் பிரிக்கப்படவில்லை\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: unterminated single quote\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: அகப்பிழையை '%s' சரத்தில் பகுக்கிறது\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: அதிக விவாதங்கள்\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: கட்டளை வரியில் காலியான கட்டளை\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "கட்டளைகளின் ஒரு பட்டியலைக் காட்டு அல்லது ஒரு கட்டளையில் உதவு"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "guestfishஐ நிறுத்து"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - guestfishஐ நிறுத்து\n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr ""
"%s: கட்டளை என்னவென்று தெரியவில்லை, அனைத்து கட்டளைகளையும் பட்டியலிட -hஐ பயன்படுத்து\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "Runaway quote in string \"%s\"\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr ""
"%s: விருப்பத்தில் குறைந்தபட்சம் ஒரு -a மற்றும் குறைந்தபட்சம் ஒரு -m ஐ பெற்றிருக்க வேண்டும்\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s: புரவல கோப்புமுறைமையில் ஒரு ஏறும்புள்ளியை நீங்கள் குறிப்பிட வேண்டும்\n"
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "ஒரு தற்காலிக அடைவினை உருவாக்கு"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "ஒரு தற்காலிக அடைவினை உருவாக்கு"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch தோல்வியுற்றது, முந்தைய பிழைச் செய்தியைப் பார்"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: error: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "'%s'க்கான பகுப்பு அளவை குறிப்பிட முடியவில்லை\n"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "'%s'க்கான பகுப்பு அளவை குறிப்பிட முடியவில்லை\n"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr "command line cannot be altered after qemu subprocess launched"
"Project-Id-Version: libguestfs.master.libguestfs\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2010-11-05 15:20+0000\n"
+"POT-Creation-Date: 2010-11-18 12:58+0000\n"
"PO-Revision-Date: 2010-01-27 20:03+0530\n"
"Last-Translator: Krishna Babu K <kkrothap@redhat.com>\n"
"Language-Team: Telugu <en@li.org>\n"
" -V|--version Display version and exit\n"
"For more information, see the manpage %s(1).\n"
-#: fish/fish.c:201 fuse/guestmount.c:975
+#: fish/fish.c:202 fuse/guestmount.c:976
#, c-format
msgid "guestfs_create: failed to create handle\n"
msgstr "guestfs_create: సంభాలికను సృష్టించుటకు విఫలమైంది\n"
-#: fish/fish.c:238
+#: fish/fish.c:239
#, c-format
msgid "%s: --listen=PID: PID was not a number: %s\n"
msgstr "%s: --listen=PID: PID సంఖ్య కాదు: %s\n"
-#: fish/fish.c:245
+#: fish/fish.c:246
#, c-format
msgid ""
"%s: remote: $GUESTFISH_PID must be set to the PID of the remote process\n"
msgstr "%s: remote: $GUESTFISH_PID అనునది రిమోట్ కార్యక్రమము యొక్క PIDకు అమర్చాలి\n"
-#: fish/fish.c:267 fuse/guestmount.c:1020
+#: fish/fish.c:268 fuse/guestmount.c:1021
#, c-format
msgid "%s: unknown long option: %s (%d)\n"
msgstr "%s: తెలియని long ఐచ్చికము: %s (%d)\n"
-#: fish/fish.c:291
+#: fish/fish.c:292
#, c-format
msgid "%s: only one -f parameter can be given\n"
msgstr "%s: ఒక -f పారామితి మాత్రమే యివ్వగలము\n"
-#: fish/fish.c:441
+#: fish/fish.c:446
#, c-format
msgid "%s: cannot use --listen and --remote options at the same time\n"
msgstr "%s: ఒకే సమయం వద్ద --listen మరియు --remote ఐచ్చికాలను వుపయోగించలేము\n"
-#: fish/fish.c:449
+#: fish/fish.c:454
#, c-format
msgid "%s: extra parameters on the command line with --listen flag\n"
msgstr "%s: --listen ఫ్లాగ్తో ఆదేశ వరుసపై అదనపు పారామితులు\n"
-#: fish/fish.c:455
+#: fish/fish.c:460
#, c-format
msgid "%s: cannot use --listen and --file options at the same time\n"
msgstr "%s: ఒకే సమయంలో --listen మరియు --file ఐచ్చికాలను వుపయోగించలేము\n"
-#: fish/fish.c:512
+#: fish/fish.c:517
#, c-format
msgid "guestfish: could not access termcap or terminfo database.\n"
msgstr ""
-#: fish/fish.c:516
+#: fish/fish.c:521
#, c-format
msgid "guestfish: terminal type \"%s\" not defined.\n"
msgstr ""
-#: fish/fish.c:625
+#: fish/fish.c:630
#, fuzzy, c-format
msgid ""
"\n"
" 'quit' షెల్ నిష్క్రమించుటకు\n"
"\n"
-#: fish/fish.c:712
+#: fish/fish.c:717
#, c-format
msgid "%s: unterminated double quote\n"
msgstr "%s: మూయని డబుల్ కోట్\n"
-#: fish/fish.c:718 fish/fish.c:735
+#: fish/fish.c:723 fish/fish.c:740
#, c-format
msgid "%s: command arguments not separated by whitespace\n"
msgstr "%s: వెట్స్పేస్ ద్వారా వేరుచేయబడిన కమాండ్ ఆర్గుమెంట్స్\n"
-#: fish/fish.c:729
+#: fish/fish.c:734
#, c-format
msgid "%s: unterminated single quote\n"
msgstr "%s: మూయని సింగిల్ కోట్\n"
-#: fish/fish.c:784
+#: fish/fish.c:789
#, c-format
msgid "%s: internal error parsing string at '%s'\n"
msgstr "%s: '%s'వద్ద స్ట్రింగును పార్శ్ చేయుటలో అంతర్గత దోషము\n"
-#: fish/fish.c:801
+#: fish/fish.c:806
#, c-format
msgid "%s: too many arguments\n"
msgstr "%s: చాలా యెక్కువ ఆర్గుమెంట్లు\n"
-#: fish/fish.c:830
+#: fish/fish.c:835
#, c-format
msgid "%s: empty command on command line\n"
msgstr "%s: ఆదేశ వరుసపై ఖాళీ ఆదేశము\n"
-#: fish/fish.c:971
+#: fish/fish.c:976
msgid "display a list of commands or help on a command"
msgstr "ఆదేశముల జాబితాను లేదా ఆదేశముపై సహాయమును ప్రదర్శించుము"
-#: fish/fish.c:973
+#: fish/fish.c:978
msgid "quit guestfish"
msgstr "guestfish నిష్క్రమించుము"
-#: fish/fish.c:984
+#: fish/fish.c:989
#, c-format
msgid ""
"help - display a list of commands or help on a command\n"
" help cmd\n"
" help\n"
-#: fish/fish.c:992
+#: fish/fish.c:997
#, c-format
msgid ""
"quit - quit guestfish\n"
"quit - guestfish నిష్క్రమించును\n"
" quit\n"
-#: fish/fish.c:997
+#: fish/fish.c:1002
#, c-format
msgid "%s: command not known, use -h to list all commands\n"
msgstr "%s: తెలియని ఆదేశము, అన్ని ఆదేశములను జాబితాచేయుటకు -h వుపయోగించుము\n"
-#: fish/fish.c:1013
+#: fish/fish.c:1018
#, c-format
msgid ""
"Did you mean to open a disk image? guestfish -a disk.img\n"
"For complete documentation: man guestfish\n"
msgstr ""
-#: fish/fish.c:1170
+#: fish/fish.c:1175
#, c-format
msgid "Runaway quote in string \"%s\"\n"
msgstr "\"%s\" స్ట్రింగునందు రన్యెవే స్ట్రింగ్\n"
-#: fish/fish.c:1506
+#: fish/fish.c:1511
#, c-format
msgid "Enter key or passphrase (\"%s\"): "
msgstr ""
" -v|--verbose Verbose messages\n"
" -V|--version Display version and exit\n"
-#: fuse/guestmount.c:1084
+#: fuse/guestmount.c:1089
#, fuzzy, c-format
msgid "%s: must have at least one -a/-d and at least one -m/-i option\n"
msgstr "%s: తప్పక కనీసం వొక -a మరియు వొక -m ఐచ్చికాన్ని కలిగివుండాలి\n"
-#: fuse/guestmount.c:1092
+#: fuse/guestmount.c:1097
#, c-format
msgid "%s: you must specify a mountpoint in the host filesystem\n"
msgstr "%s:హోస్టు ఫైల్సిస్టమ్ నందు మీరు తప్పక వొక మౌంట్పాయింట్ను తెలుపవలెను\n"
msgid "{filename}: could not read initrd format"
msgstr ""
-#: src/appliance.c:138
+#: src/appliance.c:142
#, c-format
msgid ""
"cannot find any suitable libguestfs supermin or ordinary appliance on "
"LIBGUESTFS_PATH (search path: %s)"
msgstr ""
-#: src/appliance.c:353
+#: src/appliance.c:358
#, fuzzy, c-format
msgid "failed to create temporary cache directory: %m"
msgstr "తాత్కాలిక డైరెక్టరీను సృష్టించుము"
-#: src/appliance.c:441
+#: src/appliance.c:446
#, fuzzy, c-format
msgid "error renaming temporary cache directory: %m"
msgstr "తాత్కాలిక డైరెక్టరీను సృష్టించుము"
-#: src/appliance.c:517
+#: src/appliance.c:522
#, fuzzy
msgid "external command failed, see earlier error messages"
msgstr "guestfs_launch విఫలమైంది, ముందలి దోషపు సందేశములను చూడుము"
+#: src/filearch.c:153
+#, c-format
+msgid "size of %s unreasonable (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/filearch.c:266
+msgid ""
+"file-architecture API not available since this version of libguestfs was "
+"compiled without PCRE or libmagic libraries"
+msgstr ""
+
#: src/guestfs.c:178
#, c-format
msgid "guestfs_close: called twice on the same handle\n"
msgid "libguestfs: error: %s\n"
msgstr "libguestfs: దోషము: %s\n"
-#: src/guestfs.c:762
+#: src/guestfs.c:778
#, c-format
msgid "<truncated, original size %zu bytes>"
msgstr ""
-#: src/inspect.c:1077
+#: src/inspect.c:388 src/inspect.c:1186 src/inspect.c:1229 src/inspect.c:1279
+#, c-format
+msgid "size of %s is unreasonably large (%<PRIi64> bytes)"
+msgstr ""
+
+#: src/inspect.c:591
+#, fuzzy
+msgid "could not parse /etc/fstab or empty file"
+msgstr "పరిమాణ వివరణలను పార్శ్ చేయలేకపోయింది '%s'\n"
+
+#: src/inspect.c:784
#, c-format
msgid "cannot resolve Windows %%SYSTEMROOT%%"
msgstr ""
-#: src/inspect.c:1293
+#: src/inspect.c:972
+#, fuzzy, c-format
+msgid "could not parse integer in version number: %s"
+msgstr "పరిమాణ వివరణలను పార్శ్ చేయలేకపోయింది '%s'\n"
+
+#: src/inspect.c:982
msgid "no inspection data: call guestfs_inspect_os first"
msgstr ""
-#: src/inspect.c:1305
+#: src/inspect.c:994
#, c-format
msgid ""
"%s: root device not found: only call this function with a root device "
"previously returned by guestfs_inspect_os"
msgstr ""
-#: src/inspect.c:1400
+#: src/inspect.c:1089
msgid "not a Windows guest, or systemroot could not be determined"
msgstr ""
+#: src/inspect.c:1288
+#, c-format
+msgid "%s: file is empty"
+msgstr ""
+
+#: src/inspect.c:1305
+msgid ""
+"inspection API not available since this version of libguestfs was compiled "
+"without PCRE or hivex libraries"
+msgstr ""
+
#: src/launch.c:94
msgid "command line cannot be altered after qemu subprocess launched"
msgstr "qemu వుపకార్యక్రమము ఆరంభించిన తర్వాత ఆదేశ వరుస మార్చబడలేదు"